我正在尝试使用 kubeadm 和 vagrant 设置一个 kubernetes 集群。当 Pod 尝试通过 kubernetes API 检索 configmap 时,我在安装 nginx 入口控制器时遇到错误。我环顾四周并尝试应用他们的解决方案,但仍然没有运气,这就是我发表这篇文章的原因。
环境:
我正在使用 vagrant 设置 2 个带有 ubuntu/xenial 图像的节点。
kmaster
-------------------------------------------
network:
Adapter1: NAT
Adapter2: HostOnly-network, IP:192.168.2.71
kworker1
-------------------------------------------
network:
Adapter1: NAT
Adapter2: HostOnly-network, IP:192.168.2.72
我按照 kubeadm 设置集群
我的 kube 集群初始化命令如下:
kubeadm init --pod-network-cidr=192.168.0.0/16 --apiserver-advertise-address=192.168.2.71
并应用 calico 网络插件策略:
kubectl apply -f \
https://docs.projectcalico.org/v3.4/getting-started/kubernetes/installation/hosted/etcd.yaml
kubectl apply -f \
https://docs.projectcalico.org/v3.4/getting-started/kubernetes/installation/hosted/calico.yaml
(Calico是我目前安装成功的一个插件,我会再发一篇关于flannel插件的帖子,插件无法访问服务)
我正在使用 helm 安装入口控制器,遵循教程 https://kubernetes.github.io/ingress-nginx/deploy/
这就是我在描述 pod 时应用 helm deploy 命令时发生的错误
感谢有人可以提供帮助,因为我知道原因是 pod 无法访问 kubernetes API。但这不是默认情况下应该由 kubernetes 启用吗?
kubernetes官网提供的另一种解决方案:
1)用sidecar安装kube-proxy,我还是kubernetes的新手,我正在寻找如何用sidecar安装kube-proxy。感谢有人可以提供一个例子。
2)使用client-go,当我阅读这篇文章时我很困惑,似乎使用go命令来拉go脚本,我不知道它是如何与kubernetes pod一起工作的。