我有一个在azure上运行的kubernetes集群。从本地kubectl命令访问集群的方式是什么?我提到here,但在kubernetes主节点上没有kube配置文件。此外,kubectl配置查看结果配置kubectl命令以访问azure上的远程kubernetes集群
apiVersion: v1
clusters: []
contexts: []
current-context: ""
kind: Config
preferences: {}
users: []
我有一个在azure上运行的kubernetes集群。从本地kubectl命令访问集群的方式是什么?我提到here,但在kubernetes主节点上没有kube配置文件。此外,kubectl配置查看结果配置kubectl命令以访问azure上的远程kubernetes集群
apiVersion: v1
clusters: []
contexts: []
current-context: ""
kind: Config
preferences: {}
users: []
找到一种方法来访问远程kubernetes群集,而不需要向群集中的某个节点发送ssh。您需要编辑〜/ .kube /配置如下文件:通过执行
apiVersion: v1
clusters:
- cluster:
server: http://<master-ip>:<port>
name: test
contexts:
- context:
cluster: test
user: test
name: test
然后设置背景:
kubectl config use-context test
在这之后,你应该能够与集群进行交互。
注意:要添加认证和下面的链接键的使用:http://kubernetes.io/docs/user-guide/kubeconfig-file/
或者,你也可以尝试下面的命令
kubectl config set-cluster test-cluster --server=http://<master-ip>:<port> --api-version=v1
kubectl config use-context test-cluster
您是如何设置您的群集的?要远程访问集群,您需要一个kubeconfig文件(它看起来像没有),并且安装脚本生成一个本地kubeconfig文件作为集群部署过程的一部分(因为否则刚部署的集群不可用) 。如果其他人部署了群集,则应按照链接页面上的说明获取所需客户端凭据的副本以连接到群集。
Azure的设置只公开了SSH端口外。 这可以在./output/kube_xxxxxxxxxx_ssh_conf 下找到。我所做的就是通过添加一个ssh端口隧道来隧道SSH,以便在我的机器上使用。 走进上面的文件,并在“主机*”部分添加另一条线,如波纹管:
LocalForward 8080 127.0.0.1:8080
它映射在我的本地机的8080端口(其中kubectl搜索默认上下文)发送到远程机器8080端口,其中主设备监听api呼叫。 当你打开ssh到kube-00时,正常的文档显示,现在可以在没有任何额外配置的情况下从你的本地kubectl进行调用。
您还可以通过传入--kubeconfig
参数来定义kubeconfig的文件路径。
例如,将远程Kubernetes主机的~/.kube/config
复制到本地项目的~/myproject/.kube/config
。在~/myproject
中,您可以通过运行kubectl get pods --kubeconfig ./.kube/config
列出远程Kubernetes服务器的容器。
请注意,从远程Kubernetes服务器复制简单的kubectl config view
的值不够,因为它不会显示配置文件的秘密。相反,您必须执行类似cat ~/.kube/config
或使用scp
来获取完整的文件内容。
参见:https://kubernetes.io/docs/tasks/administer-cluster/share-configuration/
我试图建立kubectl从我创建的KOPS集群最初是从一个不同的客户端上。不知道这是否会在Azure上运行,但它的工作的AWS支持(KOPS)集群:
kops/kubectl - how do i import state created on a another server?
我使用下面的链接,弹出一个集群http://kubernetes.io/docs/getting-started-guides/coreos/azure /但找不到kubeconfig文件的指针。 –
通读本示例,它看起来像演练,您可以在主节点上运行'kubectl'命令。你能登录到master并尝试运行那里的命令吗? –
是的,我可以从主节点访问集群。但是我需要帮助远程访问它(不需要ssh主控节点)。 –