• 使用kubectl config控制多个k8s集群


    在pipeline中的CD环节,有时候需要部署到不同的K8S集群,比如开发环境、测试环境、生产环境。此时可以使用kubectl config来进行多个集群的管理。

    • 开发环境集群
    • 生产环境集群
      为了方便,我们使用Jenkins本机作为agent来配置两个K8S集群的认证文件,达到可以在本机上操作两个集群的目的。

    scp root@192.168.2.29:/etc/kubernetes/admin.conf ~/.kube/config-work-prod
    scp root@10.61.150.19:/etc/kubernetes/admin.conf ~/.kube/config-work-dev

    我们已经完成了配置的拷贝,但是为了便于管理,我们需要对这些配置中的命名进行修改规范;我们要修改这两个配置文件,并着重关注三大要素:集群、上下文、用户;

    1. 修改集群名称

    2. 修改用户名称

    3. 更新上下文名称,关联对应用户及集群

    #dev
    - context:
        cluster: work-dev-cluster
        user: work-dev-admin
      name: kubernetes-dev
    
    #prod
    - context:
        cluster: work-prod-cluster
        user: work-dev-admin
      name: kubernetes-prod
    
    

    4. 将修改好的配置文件写入环境变量

    vim ~/.bash_profile
    export KUBECONFIG=$HOME/.kube/config-work-dev:$HOME/.kube/config-work-prod
    source ~/.bash_profile
    echo $KUBECONFIG
    kubectl config get-contexts
    
    CURRENT   NAME              CLUSTER            AUTHINFO           NAMESPACE
              kubernetes-dev    work-dev-cluster   work-dev-admin
              kubernetes-prod   kubernetes         kubernetes-admin
    

     

     

     

    5. 或取全局上下文

    kubectl config get-contexts

    6. 获取当前K8S上下文

    kubectl config current-context

    7. 切换当前上下文

    kubectl config use-context kubernetes-dev

    8. kubectl config 命令见帮助信息

    current-context 显示 current_context
    delete-cluster 删除 kubeconfig 文件中指定的集群
    delete-context 删除 kubeconfig 文件中指定的 context
    get-clusters 显示 kubeconfig 文件中定义的集群
    get-contexts 描述一个或多个 contexts
    rename-context Renames a context from the kubeconfig file.
    set 设置 kubeconfig 文件中的一个单个值
    set-cluster 设置 kubeconfig 文件中的一个集群条目
    set-context 设置 kubeconfig 文件中的一个 context 条目
    set-credentials 设置 kubeconfig 文件中的一个用户条目
    unset 取消设置 kubeconfig 文件中的一个单个值
    use-context 设置 kubeconfig 文件中的当前上下文
    view 显示合并的 kubeconfig 配置或一个指定的 kubeconfig 文件

    root@ubuntu:~/karmada# kubectl get clusters
    error: the server doesn't have a resource type "clusters"
    root@ubuntu:~/karmada# echo $KUBECONFIG
    /root/karmada/251.k8s.conf.in.ubuntu:/etc/kubernetes/admin.conf
    root@ubuntu:~/karmada# kubectl config get-contexts
    CURRENT   NAME                          CLUSTER             AUTHINFO            NAMESPACE
              karmada-apiserver251          karmada-apiserver   karmada-apiserver   
    *         kubernetes-admin@kubernetes   kubernetes          kubernetes-admin    
    root@ubuntu:~/karmada# kubectl get clusters
    error: the server doesn't have a resource type "clusters"
    root@ubuntu:~/karmada# 

    要执行export KUBECONFIG=/root/karmada/251.k8s.conf.in.ubuntu:/etc/kubernetes/admin.conf

    root@ubuntu:~/karmada# export KUBECONFIG=/root/karmada/251.k8s.conf.in.ubuntu:/etc/kubernetes/admin.conf
    root@ubuntu:~/karmada# kubectl get clusters
    NAME     VERSION   MODE   READY   AGE
    251k8s   v1.18.1   Push   True    19h
    root@ubuntu:~/karmada# 

    root@ubuntu:~/karmada# kubectl config get-contexts
    CURRENT   NAME                          CLUSTER                AUTHINFO            NAMESPACE
              k8s251                        kubernetes251          kubernetes-admin    
              karmada-apiserver251          karmada-apiserver251   karmada-apiserver   
    *         kubernetes-admin@kubernetes   kubernetes             kubernetes-admin    
    root@ubuntu:~/karmada# kubectl config use-context k8s251
    Switched to context "k8s251".
    root@ubuntu:~/karmada# kubectl get pods 
    NAME                    READY   STATUS    RESTARTS   AGE
    nginx-f89759699-c7hj6   1/1     Running   0          19h
    root@ubuntu:~/karmada# kubectl config use-context karmada-apiserver251
    Switched to context "karmada-apiserver251".
    root@ubuntu:~/karmada# kubectl get pods 
    No resources found in default namespace.
    root@ubuntu:~/karmada# kubectl get works
    No resources found in default namespace.
    root@ubuntu:~/karmada# kubectl get clusters
    NAME     VERSION   MODE   READY   AGE
    251k8s   v1.18.1   Push   True    19h
    root@ubuntu:~/karmada# kubectl config use-context kubernetes-admin@kubernetes
    Switched to context "kubernetes-admin@kubernetes".
    root@ubuntu:~/karmada# kubectl get pods 
    error: You must be logged in to the server (Unauthorized)
    root@ubuntu:~/karmada# 

    root@ubuntu:~/karmada# kubectl config use-context kubernetes-admin@kubernetes
    Switched to context "kubernetes-admin@kubernetes".
    root@ubuntu:~/karmada# kubectl get pods 
    NAME                           READY   STATUS    RESTARTS   AGE
    apache-app-84f76964b5-fgsc7    1/1     Running   3          10d
    apache-app-84f76964b5-kt5cx    1/1     Running   0          14d
    example-foo-54dc4db9fc-fmsqn   1/1     Running   3          10d
    nginx-app-56b5bb67cc-mkfct     1/1     Running   3          10d
    nginx-app-56b5bb67cc-s9jtk     1/1     Running   0          14d
    web2-7cdf5dffb-26xrn           1/1     Running   3          15d
    web3-c9654466d-xwb5j           1/1     Running   3          15d
    root@ubuntu:~/karmada# 
    root@ubuntu:~/karmada# kubectl config get-contexts
    CURRENT   NAME                          CLUSTER                AUTHINFO               NAMESPACE
              k8s251                        kubernetes251          kubernetes-admin251    
              karmada-apiserver251          karmada-apiserver251   karmada-apiserver251   
    *         kubernetes-admin@kubernetes   kubernetes             kubernetes-admin       
    root@ubuntu:~/karmada# 
    root@ubuntu:~/karmada# export KUBECONFIG=/root/karmada/251.k8s.conf.in.ubuntu:/etc/kubernetes/admin.conf
    root@ubuntu:~/karmada# kubectl config use-context karmada-apiserver251
    Switched to context "karmada-apiserver251".
    root@ubuntu:~/karmada# kubectl get clusters
    NAME     VERSION   MODE   READY   AGE
    251k8s   v1.18.1   Push   True    19h
    root@ubuntu:~/karmada# 
  • 相关阅读:
    ZR#330. 【18 提高 3】矿石(容斥)
    牛客NOIP提高组R1 C保护(主席树)
    BZOJ1026: [SCOI2009]windy数(数位dp)
    AtCoderBeginnerContest109题解
    BZOJ3679: 数字之积(数位dp)
    牛客NOIP普及组R1 C括号(dp)
    牛客NOIP提高组R1 A中位数(二分)
    BZOJ1576: [Usaco2009 Jan]安全路经Travel(最短路 并查集)
    ZRDay6A. 萌新拆塔(三进制状压dp)
    Python 入门教程 10 ---- Student Becomes the Teacher
  • 原文地址:https://www.cnblogs.com/dream397/p/15165339.html
Copyright © 2020-2023  润新知