首页 文章

配置kubectl命令以访问azure上的远程kubernetes集群

提问于
浏览
13

我有一个在azure上运行的kubernetes集群 . 从本地kubectl命令访问集群的方法是什么 . 我提到here但是在kubernetes主节点上没有kube配置文件 . 此外,kubectl配置视图导致

apiVersion: v1
clusters: []
contexts: []
current-context: ""
kind: Config
preferences: {}
users: []

5 回答

  • 5

    找到了一种访问远程kubernetes集群的方法,而无需ssh到集群中的一个节点 . 您需要编辑〜/ .kube / config文件,如下所示:

    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
    
  • 36

    您还可以通过传入 --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/

  • 0

    你是如何设置集群的?要远程访问群集,您需要一个kubeconfig文件(看起来您没有),并且安装脚本会在群集部署过程中生成本地kubeconfig文件(因为您刚刚部署的群集不可用) . 如果其他人部署了群集,则应按照链接到的页面上的说明获取所需客户端凭据的副本以连接到群集 .

  • 0

    Azure安装程序仅在外部公开ssh端口 . 这可以在./output/kube_xxxxxxxxxx_ssh_conf下找到我所做的是通过添加一个ssh端口隧道来隧道ssh在我的机器上可用 . 进入上面的文件,然后在“host *”部分下添加另一行,如下图所示:

    LocalForward 8080 127.0.0.1:8080

    它将我的本地机器端口8080(其中kubectl搜索默认上下文)映射到主机监听api调用的远程机器8080端口 . 当您打开ssh到kube-00时,正常文档显示现在可以从您的本地kubectl进行调用而无需任何额外配置 .

  • 0

    我试图在与我最初创建kops集群的客户端不同的客户端上设置kubectl . 不确定这是否适用于Azure,但它适用于AWS支持的(kops)集群:

    kops / kubectl - how do i import state created on a another server?

相关问题