• 通过token认证的方式来加速OKE集群的访问


    通过token认证的方式来加速OKE集群的访问

    Oracle云的托管型Kubernetes集群(简称:OKE),可以通过OCI CLI命令来创建config文件,然后通过kubectl命令来访问OKE集群。

    OCI CLI创建的config文件里面的user信息实际上是一条获取token的OCI CLI命令,每次通过kubectl访问OKE集群时,这条OCI CLI命令都会被执行,这是一种非常安全的使用方式。但是,由于这条OCI CLI每次都会被执行,也带来了一些OKE集群访问上的迟延。

    这种情况下,我们可以使用token认证的方式,通过在config文件里面新加一个user信息和context信息来加速OKE集群的访问。

    首先,我们已经通过OCI CLI命令创建了config文件,可以通过cat命令查看config文件的内容,

    cat $HOME/.kube/config
    
    • 1

    输入结果如下(示例),

    apiVersion: v1
    clusters:
    - cluster:
        certificate-authority-data: (略)
        server: https://xxx.xxx.xxx.xxx:6443
      name: cluster-caupf5xf2pq
    contexts:
    - context:
        cluster: cluster-caupf5xf2pq
        user: user-caupf5xf2pq
      name: context-caupf5xf2pq
    current-context: caupf5xf2pq
    kind: Config
    preferences: {}
    users:
    - name: user-caupf5xf2pq
      user:
        exec:
          apiVersion: client.authentication.k8s.io/v1beta1
          args:
          - ce
          - cluster
          - generate-token
          - --cluster-id
          - ocid1.cluster.oc1.ap-chuncheon-1.略
          - --region
          - ap-chuncheon-1
          command: oci
          env: []
          interactiveMode: IfAvailable
          provideClusterInfo: false
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31

    确认基于OCI CLI认证方式时,执行kubectl命令的耗时情况,

    time kubectl get nodes
    
    • 1

    在这里插入图片描述

    设置一个环境变量OKECLUSTERNAME,它的值设置为OKE集群的名称,

    export OKECLUSTERNAME=
    
    • 1

    示例,

    export OKECLUSTERNAME=cluster-caupf5xf2pq
    
    • 1

    在kube-system的命名空间下面,创建一个名为oke-admin的ServiceAccount,

    cat <
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    为oke-admin赋予cluster-admin的ClusterRole,创建一个名为oke-admin-crb的ClusterRoleBinding,

    cat <
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    根据OKE集群的版本不同通过获取token的方式会有些不同。

    如果OKE集群的版本>=1.24(请确保kubectl的版本也必须>=1.24),执行下面命令创建并同时获取token,

    • –duration: 设置token的有效时间,请根据实际情况调整
    kubectl create token oke-admin --duration=999999h -n kube-system
    
    • 1

    如果OKE集群的版本<=1.23,执行下面命令获取token,

    • –duration: 设置token的有效时间,请根据实际情况调整
    kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep oke-admin | awk '{print $1}')
    
    • 1

    设置一个环境变量OKEADMINTOKEN,它的值设置为OKE集群的名称,

    export OKEADMINTOKEN=
    
    • 1

    在config文件中创建一个新的user信息oke-admin,token的值设置为OKEADMINTOKEN的值,

    kubectl config set-credentials oke-admin --token=$OKEADMINTOKEN
    
    • 1

    在config文件中创建一个新的context信息oke-admin@oke-cluster,cluster的值设置为OKECLUSTERNAME的值,user的值设置为oke-admin

    kubectl config set-context oke-admin@oke-cluster --cluster=$OKECLUSTERNAME --user=oke-admin
    
    • 1

    设置config文件中默认的context为oke-admin@oke-cluster

    kubectl config use-context oke-admin@oke-cluster
    
    • 1

    接下来,我们就可以执行下面命令来验证使用token认证的方式访问OKE集群的速度了。

    time kubectl get nodes
    
    • 1

    在这里插入图片描述

    完结!

  • 相关阅读:
    神经网络实现鸢尾花分类(Tensorflow2.0)
    GBase 8a MPP Cluster 硬件规划参考
    【云计算】云数据中心网络(六):私网连接
    循环购:复购越多分红越多,让你的用户活起来
    Vue中的基础指令
    Android 设计模式—模板方法模式
    免费数据 | 新库上线 | CnOpenData中国保险中介机构网点全集数据
    《MATLAB 神经网络43个案例分析》:第29章 极限学习机在回归拟合及分类问题中的应用研究——对比实验
    IP的基础知识、子网掩码、网关、CIDR
    最长回文子串问题---Manacher算法
  • 原文地址:https://blog.csdn.net/engchina/article/details/127423753