在虚拟盒子上安装头盔

时间:2020-04-10 16:05:39

标签: kubernetes kubernetes-helm

我在“虚拟”框中有三个VM,每个虚拟机都有2个接口:

  • enp0s3正在进入互联网;
  • enp0s8是VM之间的通信。

我通过使用--apiserver-advertise-address=192.168.56.100参数强制enp0s8接口上的Kubernetes节点通信来启动Kubernetes,因为默认情况下它采用了enp0s3接口,并且Kubernetes集群工作正常。

我想以相同的方式安装Helm:强制在enp0s8接口上进行通信。如果我只做helm init然后做helm init --upgrade,我会发现它尝试连接到enp0s3而不是enp0s8上的Tiller:

george@kubernetes-master:~$ helm version
Client: &version.Version{SemVer:"v2.16.5", GitCommit:"89bd14c1541fa93a09492010030fd3699ca65a97", GitTreeState:"clean"}
Error: forwarding ports: error upgrading connection: error dialing backend: dial tcp 10.0.2.102:10250: connect: no route to host

我尝试了helm init的几个参数,但是找不到在第二个界面上启动头盔的成功参数。 知道怎么做,如果可能的话?

更新

我已经成功安装了Helm3,没有错误,但是我从第一个界面而不是第二个界面获得的pod的IP仍然是:

dante@kube-master:~$ kubectl get pods -o wide
NAME                                        READY   STATUS    RESTARTS   AGE   IP           NODE           NOMINATED NODE   READINESS GATES
my-release-nginx-ingress-57467494b4-z2g2w   1/1     Running   0          53s   10.244.2.2   kube-worker2   <none>           <none>

我已经使用以下命令部署了Nginx Helm图表:

dante@kube-master:~/.kube$ kubectl config view
apiVersion: v1
clusters:
- cluster:
    certificate-authority-data: DATA+OMITTED
    server: https://192.168.56.100:6443
  name: kubernetes
contexts:
- context:
    cluster: kubernetes
    user: kubernetes-admin
  name: kubernetes-admin@kubernetes
current-context: kubernetes-admin@kubernetes
kind: Config
preferences: {}
users:
- name: kubernetes-admin
  user:
    client-certificate-data: REDACTED
    client-key-data: REDACTED
dante@kube-master:~/.kube$ helm install my-ingress-controller nginx/nginx-ingress --kubeconfig /home/dante/.kube/config
NAME: my-ingress-controller
LAST DEPLOYED: Wed Apr 29 18:48:52 2020
NAMESPACE: default
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
The NGINX Ingress Controller has been installed.

您知道我如何使用Helm在第二个界面上部署Pod吗?

谢谢, 乔治

1 个答案:

答案 0 :(得分:0)

要调查哪里可能出现问题,请执行以下命令:

$ kubectl cluster-info

执行$ kubectl config view-调整它以指向正确的IP。看来Helm不允许绑定到传出IP。

然后检查防火墙状态:

$ systemctl status firewalld

运行以下命令来停止和禁用防火墙:

$ systemctl stop firewalld  
$ systemctl disable firewalld

建议:使用helm的最新版本-将头盔升级到 v3.1.0 。有一个特殊的插件可以执行此操作-helm-2to3。 要升级头盔,请遵循本文档中的步骤:helmv2-v3。 查看最新版头盔的更改:helm-v3

请看看:helm-kubernetes

类似的问题:conection-issue-helm