zoukankan      html  css  js  c++  java
  • 在node节点部署kubectl管理k8s集群

    感谢!原文链接:https://blog.csdn.net/sinat_35930259/article/details/79994078


    kubectl是k8s的客户端程序,也是k8s的命令行工具,kubectl提供了大量的子命令可以让用户和集群进行交互。
    kubectl不一定部署在master上,可在master或node节点上执行,用户通过kubectl连接到master上然后将命令通过master分发到集群的node节点上。

    默认情况下是在执行k8s集群安装的master节点,默认连接本地的apiserver。在其他master节点下,未执行HTTPS连接集群时会有如下报错:
    [root@k8smaster02 ~]# kubectl get pod
    The connection to the server localhost:8080 was refused - did you specify the right host or port?

    使用apiserver安全的HTTPS协议(8443)连接集群,操作如下:
    1、先将kubectl命令传到相应master或node节点上
    scp /usr/local/bin/kubectl root@k8node02:/usr/local/bin/kubectl

    2、将所需的证书传到相应master或node节点上
    scp admin*pem root@k8node02:/root
    scp ca.pem root@k8snode02:/root

    3、生成kubectl配置文件
    kubectl config set-cluster kubernetes --server=https://192.168.217.236:8443 --certificate-authority=/root/ca.pem
    Cluster "kubernetes" set.
    (创建完成后会生成一个.kube隐藏目录,并在其中生成一个config文件)

    4、设置用户项
    kubectl config set-credentials kubernetes-admin --certificate-authority=/root/ca.pem --client-key=/root/admin-key.pem --client-certificate=/root/admin.pem
    User "kubernetes-admin" set.

    5、设置环境项中默认上下文
    kubectl config set-context kubernetes-admin@kubernetes --cluster=kubernetes --user=kubernetes-admin
    Context "kubernetes-admin@kubernetes" created.

    6、设置默认环境项
    kubectl config use-context kubernetes-admin@kubernetes

    最终就在当前目录下.kube隐藏目录下生成了一个config文件,后面就是通过这个文件访问集群,其内容如下:

    [root@k8snode02 ~]# more /root/.kube/config 
    apiVersion: v1
    clusters:
    - cluster:
        certificate-authority: /root/ca.pem
        server: https://192.168.217.236:8443
      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: /root/admin.pem
        client-key: /root/admin-key.pem
    

    此时,kubectl在node节点上能正常连接到apiserver

    [root@k8snode02 ~]# kubectl get pod
    NAME      READY   STATUS    RESTARTS   AGE
    busybox   1/1     Running   42         41d
    

     

  • 相关阅读:
    jmeter测试接口--form表单提交请求(解决请求传参为空的问题)
    jmeter测试接口-打开很多TCP的连接数TIME_WAIT状态(Linux环境)导致报错的解决方法
    Jmeter 事务下的if控制器和无事务下的if控制器是否有不同 (业务实现3:2的补充)
    Jmeter if控制器的使用
    Jmeter 文件格式的参数化
    CentOS7学习笔记--tomcat9环境安装
    CentOS7学习笔记--PHP环境安装
    CentOS学习笔记—启动、ROOT密码
    虚拟机硬盘扩容
    win7如何设置某个软件不弹出用户账户控制
  • 原文地址:https://www.cnblogs.com/liuxc83/p/15021173.html
Copyright © 2011-2022 走看看