kubernetes - 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"
解决方案
推荐阅读
- javascript - 使用 JScript 格式化数字
- python - keras sequence().predict(x_test) 只为两个类返回 1 列
- javascript - 根据每个数组项内的值重复数组项 x 次数
- python - Django:处理定期付款时为客户和付款推荐的模型定义
- javascript - 如何使用 chart.js 在折线图中编辑自定义工具提示?
- kubernetes - 无法将工作节点加入 k8 主节点
- fortran - 如何在 Fortran 中做出正确的数据声明?
- javascript - 如何在 Javascript 中一次打开多个窗口?
- java - java.net.HttpURLConnection 默认超时记录在哪里?
- database - group by 子句中的预聚合是如何完成的 - Teradata