0

我正在尝试使用 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 设置集群

[使用 kubeadm 设置 kubernetes]

我的 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 命令时发生的错误

Helm 入口错误

感谢有人可以提供帮助,因为我知道原因是 pod 无法访问 kubernetes API。但这不是默认情况下应该由 kubernetes 启用吗?

我的 kubesystem pod 状态如下: kube 系统 pod

kubernetes官网提供的另一种解决方案:

1)用sidecar安装kube-proxy,我还是kubernetes的新手,我正在寻找如何用sidecar安装kube-proxy。感谢有人可以提供一个例子。

2)使用client-go,当我阅读这篇文章时我很困惑,似乎使用go命令来拉go脚本,我不知道它是如何与kubernetes pod一起工作的。

4

1 回答 1

1

你们是对的,我已经用数字海洋的水滴进行了测试,它按预期工作,我遇到了另一个错误是“禁止,不允许用户服务帐户”。看起来 pod 已经能够访问 kubernetes api。我还测试了 install istio,我之前遇到过同样的问题,现在它可以在数字海洋水滴中运行。

感谢你们。

于 2018-12-17T13:32:17.447 回答