$ cat nginx.yaml apiVersion: apps/v1 kind: Deployment metadata: name: nginx-deployment labels: app: nginx spec: replicas: 2 selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: containers: - name: nginx image: nginx ports: - containerPort: 80 --- kind: Service apiVersion: v1 metadata: name: nginx-svc spec: selector: app: nginx ports: - protocol: TCP port: 80 $ kubectl get nodes NAME STATUS ROLES AGE VERSION ip-172-31-21-115.us-west-2.compute.internal Ready master 20m v1.11.2 ip-172-31-26-62.us-west-2.compute.internal Ready 19m v1.11.2 ip-172-31-29-204.us-west-2.compute.internal Ready 14m v1.11.2 $ kubectl get pods -o wide NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE nginx-deployment-966857787-22qq7 1/1 Running 0 11m 10.244.2.3 ip-172-31-29-204.us-west-2.compute.internal nginx-deployment-966857787-lv7dd 1/1 Running 0 11m 10.244.1.2 ip-172-31-26-62.us-west-2.compute.internal nginx-deployment-966857787-zkzg6 1/1 Running 0 11m 10.244.2.2 ip-172-31-29-204.us-west-2.compute.internal $ kubectl get svc NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE kubernetes ClusterIP 10.96.0.1 443/TCP 21m nginx-svc ClusterIP 10.105.205.10 80/TCP 11m
# docker exec -it 489b180f512b /bin/bash root@nginx-deployment-966857787-zkzg6:/# ifconfig eth0: flags=4163 mtu 8951 inet 10.244.2.2 netmask 255.255.255.0 broadcast 0.0.0.0 inet6 fe80::cc4d:61ff:fe8a:5aeb prefixlen 64 scopeid 0x20 root@nginx-deployment-966857787-zkzg6:/# ping 10.244.2.3 PING 10.244.2.3 (10.244.2.3) 56(84) bytes of data. 64 bytes from 10.244.2.3: icmp_seq=1 ttl=64 time=0.066 ms 64 bytes from 10.244.2.3: icmp_seq=2 ttl=64 time=0.055 ms ^C
root@nginx-deployment-966857787-zkzg6:/# ping 10.244.1.2 PING 10.244.1.2 (10.244.1.2) 56(84) bytes of data. ^C --- 10.244.1.2 ping statistics --- 2 packets transmitted, 0 received, 100% packet loss, time 1059ms
并且不能ping它在其他节点上的副本。
以下是主机接口:
# ifconfig cni0: flags=4163 mtu 8951 inet 10.244.2.1 netmask 255.255.255.0 broadcast 0.0.0.0 docker0: flags=4099 mtu 1500 inet 172.17.0.1 netmask 255.255.0.0 broadcast 172.17.255.255 eth0: flags=4163 mtu 9001 inet 172.31.29.204 netmask 255.255.240.0 broadcast 172.31.31.255 flannel.1: flags=4163 mtu 8951 inet 10.244.2.0 netmask 255.255.255.255 broadcast 0.0.0.0 lo: flags=73 mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 veth09fb984a: flags=4163 mtu 8951 inet6 fe80::d819:14ff:fe06:174c prefixlen 64 scopeid 0x20 veth87b3563e: flags=4163 mtu 8951 inet6 fe80::d09c:d2ff:fe7b:7dd7 prefixlen 64 scopeid 0x20 # ifconfig cni0: flags=4163 mtu 8951 inet 10.244.1.1 netmask 255.255.255.0 broadcast 0.0.0.0 docker0: flags=4099 mtu 1500 inet 172.17.0.1 netmask 255.255.0.0 broadcast 172.17.255.255 eth0: flags=4163 mtu 9001 inet 172.31.26.62 netmask 255.255.240.0 broadcast 172.31.31.255 flannel.1: flags=4163 mtu 8951 inet 10.244.1.0 netmask 255.255.255.255 broadcast 0.0.0.0 lo: flags=73 mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 veth9733e2e6: flags=4163 mtu 8951 inet6 fe80::8003:46ff:fee2:abc2 prefixlen 64 scopeid 0x20
节点上的进程:
# ps auxww|grep kube root 4059 0.1 2.8 43568 28316 ? Ssl 00:31 0:01 /usr/local/bin/kube-proxy --config=/var/lib/kube-proxy/config.conf root 4260 0.0 3.4 358984 34288 ? Ssl 00:31 0:00 /opt/bin/flanneld --ip-masq --kube-subnet-mgr root 4455 1.1 9.6 760868 97260 ? Ssl 00:31 0:14 /usr/bin/kubelet --bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --kubeconfig=/etc/kubernetes/kubelet.conf --config=/var/lib/kubelet/config.yaml --cgroup-driver=systemd --cni-bin-dir=/opt/cni/bin --cni-conf-dir=/etc/cni/net.d --network-plugin=cni
我发现问题了。
Flannel使用UDP端口8285和8472,这两个端口被AWS安全组阻止。我只打开了TCP端口。
我启用UDP端口8285和UDP端口8472以及TCP 6443、10250、10256。
以下是两位工作人员的日志,这将有助于强调这个问题: 工人-0: 工人2:
null null 在节点上:在节点上,我执行了命令,使用了从主服务器上的打印出来的命令
使用复制控制器,当我调度一个pod的2个(两个)副本时,我期望每个节点中各有1个(一个)副本。相反,我发现两个副本都是在同一个吊舱中创建的。这将使1个节点成为我需要避免的单点故障。 对于2个pod:节点A中的1个pod,节点B中的1个pod 对于3个吊舱:节点A中的2个吊舱,节点B中的1个吊舱,kubernetes可以根据资源可用性进行调度 有没有正确配置的建议吗?
我在一个有3个节点的kubernetes集群上运行nginx。 我想知道是否有任何好处,例如,有4个豆荚和限制他们的CPU/MEM约。节点容量的1/4相对于每个节点运行一个pod,限制CPU/MEM,以便pod可以使用整个节点的资源(为了简单起见,我们将cubernet服务排除在等式之外)。 我的感觉是,豆荚越少,开销就越小,每个节点使用1个豆荚应该是性能最好的? 提前致谢
我们有一个EKS集群,上面有4个节点和10个微服务(目前)。我们以前有2个节点,没有看到太多问题,但自从增加到4个,事情“随机”停止工作。我相信一个节点的吊舱不能与集群的另一个节点对话。
我已经在GCP上创建了一个K8s集群,并且部署了一个应用程序。 然后我把它缩放了一下: 如果节点是一样的,那么为什么IP不一样呢?