繁体   English   中英

使用Kubernetes的AKS:一旦通过Ubuntu上的azure-cli登录到集群,便无法连接到集群节点

[英]AKS using Kubernetes : not able to connect to cluster nodes once logged in to the cluster through azure-cli on Ubuntu

在创建集群并获取凭据后,尝试获取有关使用Kubernetes的AKS(Azure Connected Service)创建的节点的信息时遇到问题。

我在ubuntu linux机器上使用azure-cli。

遵循用于创建集群的网址: https//docs.microsoft.com/zh-cn/azure/aks/kubernetes-walkthrough

使用以下命令执行连接到集群后,使用命令kubectl get nodes时出现以下错误

az aks get-credentials --resource-group <resource_group_name> --name <cluster_name>

错误:

  kubectl get nodes

服务器错误(InternalError):服务器(“”)上的错误已阻止请求成功(获取节点)

我在使用时确实得到了相同的错误:

kubectl get pods -n kube-system -o=wide

当我通过以下命令作为另一个用户重新连接时,即

  mkdir -p $HOME/.kube

  sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config

  sudo chown $(id -u):$(id -g) $HOME/.kube/config

我将能够检索节点,即

 kubectl get nodes

NAME             STATUS    ROLES     AGE       VERSION

<host-name>   Ready     master    20m       v1.10.0



~$ kubectl get pods -n kube-system -o=wide

NAME                                   READY     STATUS    RESTARTS  AGE       
etcd-actaz-prod-nb1                      1/1       Running   0     

kube-apiserver-actaz-prod-nb1            1/1       Running   0

kube-controller-manager-actaz-prod-nb1   1/1       Running   0

kube-dns-86f4d74b45-4qshc                3/3       Running   0

kube-flannel-ds-bld76                    1/1       Running   0

kube-proxy-5s65r                         1/1       Running   0

kube-scheduler-actaz-prod-nb1            1/1       Running   0

但这实际上是覆盖文件$ HOME / .kube / config中新聚集的信息

当我们连接到AKS-cluster get-credentials命令let时,我是否丢失了某些东西,导致我出错

*Error from server (InternalError): an error on the server ("") has prevented the request from succeeding (get nodes)*

在你之后

az aks get-credentials -n群集名称-g资源组

如果应该已经合并到本地配置中:

/ home /用户名/.kube/config

你能检查你的配置吗

kubectl配置视图

并检查它是否指向正确的群集。

假设您在部署AKS时选择了默认配置。 因此,您需要创建SSH密钥对才能登录到AKS节点。

使用“ az vm用户更新”将上面创建的公钥推送到AKS节点{plz会帮助您了解需要传递什么所有开关。 很简单)

要创建到AKS节点的SSH连接,请在AKS群集中运行一个帮助程序窗格。 该帮助程序窗格为您提供对群集的SSH访问,然后对其他SSH节点进行访问。

要创建和使用此辅助容器,请完成以下步骤:-运行debian(或任何其他容器,如centos7等)容器映像并将终端会话附加到该映像。 该容器可用于与AKS集群中的任何节点创建SSH会话:kubectl run -it --rm --aks-ssh --image = debian

  • 基本的Debian映像不包含SSH组件。 apt-get更新&& apt-get安装openssh-client -y

  • 使用kubelet cmd复制私钥(在开始时创建的私钥)。 创建ssh对的计算机上必须存在kubelet工具包。 kubectl cp:/

  • 现在,您将在容器位置上看到私钥文件,将私钥权限更改为600,现在可以SSH AKS节点

希望这可以帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM