华为云UCS-kubectl配置指南:安装并设置kubectl

时间:2024-09-12 15:06:05

安装并设置kubectl

以下操作以Linux环境为例,更多详情信息请参见安装和配置kubectl

1、以下步骤需要在U CS 网格接入集群纳管的节点上操作。

2、以下步骤2执行asm-iam-authenticator generate-kubeconfig命名后会更新节点默认配置的config内容,建议执行以下命令备份config文件。

cp $HOME/.kube/config $HOME/.kube/config.backup

  1. 下载kubectl中下载的kubectl赋予可执行权限,并放到PATH目录下。

    chmod +x ./kubectl

    mv ./kubectl $PATH

    其中,$PATH为PATH路径(如/usr/local/bin),请替换为实际的值。

    您还可以通过如下命令查看kubectl的版本,如下所示。

    kubectl version --client=true

    Client Version: version.Info{Major:"1", Minor:"25", GitVersion:"v1.25.3", GitCommit:"434bfd82814af038ad94d62ebe59b133fcb50506", GitTreeState:"clean", BuildDate:"2022-10-12T10:57:26Z", GoVersion:"go1.19.2", Compiler:"gc", Platform:"linux/amd64"}
    Kustomize Version: v4.5.7

  2. 配置 IAM 认证信息并持久化到本地。

    1. 下载asm-iam-authenticator中下载的asm-iam-authenticator赋予可执行权限,并放到PATH目录下。

      chmod +x ./asm-iam-authenticator

      mv ./asm-iam-authenticator $PATH

    2. 初始化asm-iam-authenticator配置。

      初始化asm-iam-authenticator提供了AK/SK和用户名/密码两种方式,请选择其中一种执行。

      • 使用AK/SK的方式配置IAM认证信息

        asm-iam-authenticator generate-kubeconfig --iam-endpoint=https://$iam_endpoint --mesh-endpoint=https://$mesh_endpoint --mesh-region=$mesh_region --ak=xxxxxxx --sk=xxxxxx

        其中,

        iam_endpoint为IAM服务的Endpoint,请参见地区和终端节点

        mesh_endpoint为网格实例的Endpoint,获取方法请参见获取网格实例Endpoint

        mesh_region为网格所在区域;

        ak、sk的获取方法请参见获取AK/SK,ak为文件中Access Key部分,sk为文件中Secret Key部分。

        例如,iam_endpoint为https://iam.cn-north-4.myhuaweicloud.com,mesh_endpoint为https://xx.xx.xx.xx:5443, mesh_region为cn-north-4, ak的值为my-ak,sk的值为ABCDEFAK.. ,则命令如下所示:

        asm-iam-authenticator generate-kubeconfig --iam-endpoint=https://iam.cn-north-4.myhuaweicloud.com --mesh-endpoint=https://xx.xx.xx.xx:5443 --mesh-region=cn-north-4 --ak=my-ak --sk=ABCDEFAK..

        执行上述命令后,显示如下类似信息:

        Switched to context "asm-context-cn-north-4-my-ak"

        其中,asm-context-cn-north-4-my-ak为context名,可通过kubectl config get-contexts命令查看。

      • 使用用户名/密码的方式配置IAM认证信息

        asm-iam-authenticator generate-kubeconfig --iam-endpoint=https://$iam_endpoint --mesh-endpoint=https://$mesh_endpoint --mesh-region=$mesh_region --domain-name=xxxxxxx --user-name=xxxxxx --password='xxxxxx'

        其中,iam_endpoint为IAM服务的Endpoint,请参见地区和终端节点

        mesh_endpoint为网格实例的Endpoint,获取方法请参见获取网格实例Endpoint

        mesh_region为网格所在区域;

        domain-name为租户名,user-name为子用户名,password为子用户密码,请根据替换为实际的值。

        • 若无子用户,user-name与domain-name配置一致即可,也可以不添加user-name参数。
        • IAM的Endpoint请参见地区和终端节点,请注意需要使用与网格实例地区相同的Endpoint。
        • 在非安全的环境中使用kubectl,建议您完成此步骤后,使用环境变量的方式重新配置认证信息,具体参考非安全环境配置kubectl

  3. 配置完成后,即可通过kubectl命令操作网格实例的相关资源。

    例如,查看北京四的namespace资源。

    kubectl get serviceentry -n xxx

    执行上述命令后,提示如下类似信息:

  • 当通过API访问公有云系统时,需要使用访问用户名密码或者密钥(AK/SK)进行身份认证并对请求进行加密,确保请求的机密性、完整性和请求双方身份的正确性。请妥善保存$HOME/.kube/config配置文件,确保访问密钥不被非法使用。
  • 当开启cache缓存token提高访问性能时,token会以文件的方式保存在$HOME/.asm/cache的子目录下,请及时清理。
  • 当发现访问密钥被非法使用(包括丢失、泄露等情况),可以自行删除或者通知管理员重置访问密钥,重新配置。
  • 删除的访问密钥将无法恢复。
support.huaweicloud.com/usermanual-ucs/ucs_02_0070.html