首页 > 解决方案 > Kubernetes 绑定地址

问题描述

我之前在开发环境中设置了 kubernetes 集群,使用私有服务器没有任何问题。现在我在数据中心(hetzner)中创建了一个新集群,我已经尝试让一切正常工作了好几天,多次重新安装服务器,每次都面临同样的问题。我的大部分服务似乎都有网络问题,例如仪表板、dockerreg ui、...无法访问 Web 界面加载的资源。甚至将容器推送到私有 dockerreg 启动但几秒钟后停止并超时。如果我将任何服务配置到它们工作的节点端口有问题。

所以这可能是 kube-proxy 的问题。我所有的服务器(3 个主节点和 2 个工作节点)都有一个公共和私有 IP 地址。当我得到一个 pod 列表时,所有在主机 ip 上运行的那些,使用外部 ip 而不是内部 ip。

我如何绑定这些以仅使用内部 ip?

kubectl get pods -o wide -n kube-system

NAME                                       READY   STATUS    RESTARTS   AGE   IP                NODE             NOMINATED NODE   READINESS GATES
calico-kube-controllers-65b8787765-zj728   1/1     Running   2          12h   192.168.57.14     k8s-master-001   <none>           <none>
calico-node-cxn2p                          1/1     Running   1          12h   <external ip>     k8s-master-003   <none>           <none>
calico-node-k9g7n                          1/1     Running   1          12h   <external ip>     k8s-master-002   <none>           <none>
calico-node-mt8r7                          1/1     Running   2          12h   <external ip>     k8s-master-001   <none>           <none>
calico-node-pww9q                          1/1     Running   1          12h   <external ip>     k8s-worker-002   <none>           <none>
calico-node-wlg8g                          1/1     Running   2          12h   <external ip>     k8s-worker-001   <none>           <none>
coredns-5c98db65d4-lrzj8                   1/1     Running   0          12h   192.168.20.1      k8s-worker-002   <none>           <none>
coredns-5c98db65d4-s6tzv                   1/1     Running   1          12h   192.168.102.17    k8s-worker-001   <none>           <none>
etcd-k8s-master-001                        1/1     Running   2          12h   <external ip>     k8s-master-001   <none>           <none>
etcd-k8s-master-002                        1/1     Running   1          12h   <external ip>     k8s-master-002   <none>           <none>
etcd-k8s-master-003                        1/1     Running   1          12h   <external ip>     k8s-master-003   <none>           <none>
kube-apiserver-k8s-master-001              1/1     Running   2          12h   <external ip>     k8s-master-001   <none>           <none>
kube-apiserver-k8s-master-002              1/1     Running   2          12h   <external ip>     k8s-master-002   <none>           <none>
kube-apiserver-k8s-master-003              1/1     Running   1          12h   <external ip>     k8s-master-003   <none>           <none>
kube-controller-manager-k8s-master-001     1/1     Running   3          12h   <external ip>     k8s-master-001   <none>           <none>
kube-controller-manager-k8s-master-002     1/1     Running   1          12h   <external ip>     k8s-master-002   <none>           <none>
kube-controller-manager-k8s-master-003     1/1     Running   1          12h   <external ip>     k8s-master-003   <none>           <none>
kube-proxy-mlsnp                           1/1     Running   1          12h   <external ip>     k8s-master-003   <none>           <none>
kube-proxy-mzck9                           1/1     Running   2          12h   <external ip>     k8s-worker-001   <none>           <none>
kube-proxy-p7vfz                           1/1     Running   1          12h   <external ip>     k8s-master-002   <none>           <none>
kube-proxy-s55fr                           1/1     Running   2          12h   <external ip>     k8s-master-001   <none>           <none>
kube-proxy-tz6zn                           1/1     Running   1          12h   <external ip>     k8s-worker-002   <none>           <none>
kube-scheduler-k8s-master-001              1/1     Running   3          12h   <external ip>     k8s-master-001   <none>           <none>
kube-scheduler-k8s-master-002              1/1     Running   1          12h   <external ip>     k8s-master-002   <none>           <none>
kube-scheduler-k8s-master-003              1/1     Running   1          12h   <external ip>     k8s-master-003   <none>           <none>
traefik-ingress-controller-gxthm           1/1     Running   1          35m   192.168.57.15     k8s-master-001   <none>           <none>
traefik-ingress-controller-rdv8j           1/1     Running   0          35m   192.168.160.133   k8s-master-003   <none>           <none>
traefik-ingress-controller-w4t4t           1/1     Running   0          35m   192.168.1.133     k8s-master-002   <none>           <none>

我正在使用 CRIO 和 calico 运行 kubernetes 1.15.3。所有服务器都在 10.0.0.0/24 子网上

我希望在节点 ip 上运行的 pod 使用内部 ip 而不是外部 ip

--- 编辑 16/09/2019

使用以下命令初始化集群 sudo kubeadm init --config=kubeadm-config.yaml --upload-certs My kubeadm-config.yaml

apiVersion: kubeadm.k8s.io/v1beta2
kind: InitConfiguration
localAPIEndpoint:
  advertiseAddress: "10.0.0.2"
  bindPort: 6443
---
apiVersion: kubeadm.k8s.io/v1beta2
kind: ClusterConfiguration
kubernetesVersion: stable
controlPlaneEndpoint: "10.0.0.200:6443"
apiServer:
  certSANs:
  - "k8s.deb-ict.com"
networking:
  serviceSubnet: "10.96.0.0/12"
  podSubnet: "192.168.0.0/16"

标签: kubernetesproject-calico

解决方案


推荐阅读