我已经通过带有命名空间redis1的Helm并使用端口6379 26379在K8S集群中安装了redis。
我通过Helm和命名空间redis2并使用端口6380,26380在同一个K8S集群中安装了另一个redis。
redis1工作正常,但出现redis2错误:
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal Scheduled 30m default-scheduler Successfully assigned redis2/redis-redis-ha-server-0 to worker3
Normal Pulled 30m kubelet Container image "redis:v5.0.6-alpine" already present on machine
Normal Created 30m kubelet Created container config-init
Normal Started 30m kubelet Started container config-init
Normal Pulled 29m kubelet Container image "redis:v5.0.6-alpine" already present on machine
Normal Created 29m kubelet Created container redis
Normal Started 29m kubelet Started container redis
Normal Killing 28m (x2 over 29m) kubelet Container sentinel failed liveness probe, will be restarted
Normal Pulled 28m (x3 over 29m) kubelet Container image "redis:v5.0.6-alpine" already present on machine
Normal Created 28m (x3 over 29m) kubelet Created container sentinel
Normal Started 28m (x3 over 29m) kubelet Started container sentinel
Warning Unhealthy 14m (x25 over 29m) kubelet Liveness probe failed: dial tcp xx.xxx.x.xxx:26380: connect: connection refused
Warning BackOff 4m56s (x85 over 25m) kubelet Back-off restarting failed container我之前在同一个集群中以同样的方式安装了rabbitmq,它可以正常工作。所以我希望我可以对redis使用同样的方法。
请告诉我该怎么做。
发布于 2021-07-15 17:07:00
由于@David Maze在评论区解决了这个问题,我决定提供一个社区Wiki答案,以便更好地向其他社区成员提供可见性。
Kubernetes中的服务允许应用程序接收流量,并且可以以不同的方式公开,因为有不同类型的Kubernetes服务(请参阅:Overview of Kubernetes Services)。在默认ClusterIP类型的情况下,它在群集中的内部IP上公开服务(每个服务也有其自己的IP地址),并使服务只能从群集内访问。每个服务都有自己的IP地址,所以如果它们在同一个端口上侦听(但每个服务都在自己的IP地址上),这是可以的。
下面是一个简单的例子来说明可以有两个(或更多)服务在同一个端口( 80端口)上侦听。
我已经创建了两个部署(app1和app2),并使用相同的端口号通过ClusterIP服务公开了它:
$ kubectl create deploy app-1 --image=nginx
deployment.apps/app-1 created
$ kubectl create deploy app-2 --image=nginx
deployment.apps/app-2 created
$ kubectl expose deploy app-1 --port=80
service/app-1 exposed
$ kubectl expose deploy app-2 --port=80
service/app-2 exposed
$ kubectl get pod,svc
NAME READY STATUS RESTARTS
pod/app-1-5d9ccdb595-x5s55 1/1 Running 0
pod/app-2-7747dcb588-trj8d 1/1 Running 0
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S)
service/app-1 ClusterIP 10.8.12.54 <none> 80/TCP
service/app-2 ClusterIP 10.8.11.181 <none> 80/TCP 最后,我们可以检查它是否如预期的那样工作:
$ kubectl run test --image=nginx
pod/test created
$ kubectl exec -it test -- bash
root@test:/# curl 10.8.12.54:80
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
...
root@test:/# curl 10.8.11.181:80
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
...https://stackoverflow.com/questions/68375303
复制相似问题