华为云UCS-kubectl配置指南:安装并设置kubectl
安装并设置kubectl
以下操作以Linux环境为例,更多详情信息请参见安装和配置kubectl。
1、以下步骤需要在U CS 网格接入集群纳管的节点上操作。
2、以下步骤2执行asm-iam-authenticator generate-kubeconfig命名后会更新节点默认配置的config内容,建议执行以下命令备份config文件。
cp $HOME/.kube/config $HOME/.kube/config.backup
- 将下载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
- 配置 IAM 认证信息并持久化到本地。
- 将下载asm-iam-authenticator中下载的asm-iam-authenticator赋予可执行权限,并放到PATH目录下。
chmod +x ./asm-iam-authenticator
mv ./asm-iam-authenticator $PATH
- 初始化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。
- 使用AK/SK的方式配置IAM认证信息
- 将下载asm-iam-authenticator中下载的asm-iam-authenticator赋予可执行权限,并放到PATH目录下。
- 配置完成后,即可通过kubectl命令操作网格实例的相关资源。
例如,查看北京四的namespace资源。
kubectl get serviceentry -n xxx
执行上述命令后,提示如下类似信息:
- 当通过API访问公有云系统时,需要使用访问用户名密码或者密钥(AK/SK)进行身份认证并对请求进行加密,确保请求的机密性、完整性和请求双方身份的正确性。请妥善保存$HOME/.kube/config配置文件,确保访问密钥不被非法使用。
- 当开启cache缓存token提高访问性能时,token会以文件的方式保存在$HOME/.asm/cache的子目录下,请及时清理。
- 当发现访问密钥被非法使用(包括丢失、泄露等情况),可以自行删除或者通知管理员重置访问密钥,重新配置。
- 删除的访问密钥将无法恢复。