本主题概述了在使用 GKE On-Prem 时调用的命令,目的是为了方便您进行操作,并为 GKE On-Prem 文档提供补充。
方括号内的标志是可选的。Placeholder variables 是可变的。
kubectl
命令
另请参阅 kubectl
备忘单。
设置默认 kubeconfig 文件
export KUBECONFIG=[KUBECONFIG_PATH]
列出默认 kubeconfig 中的集群
kubectl get clusters
传入 --kubeconfig [KUBECONFIG_PATH]
以查看非默认 kubeconfig 中的集群。
列出默认 kubeconfig 中集群内的节点
kubectl get nodes
传入 --kubeconfig [KUBECONFIG_PATH]
以查看非默认 kubeconfig 中的集群。
列出所有命名空间中的所有容器
kubectl get pods --all-namespaces -o jsonpath="{..image}" |\ tr -s '[[:space:]]' '\n' |\ sort |\ uniq -c
gkectl
命令
另请参阅 gkectl
参考文档。
使用 gkectl
诊断集群问题
使用 gkectl diagnose
命令识别集群问题并与 Google 共享集群信息。请参阅诊断集群问题。
生成 GKE On-Prem 配置文件
gkectl create-config [--config [PATH]]
验证配置文件
gkectl check-config --config [PATH]
将 GKE On-Prem 映像推送到 Docker 注册表,并初始化节点操作系统映像
gkectl prepare --config [CONFIG_FILE] [--validate-attestations]
创建集群
gkectl create cluster --config [CONFIG_FILE]
Google Cloud 服务帐号
创建服务帐号
gcloud iam service-accounts create [SERVICE_ACCOUNT_NAME] --project [PROJECT_ID]
将 IAM 角色授予服务帐号
gcloud projects add-iam-policy-binding \ [PROJECT_ID] \ --member="serviceAccount:[SERVICE_ACCOUNT_NAME]@[PROJECT_ID].iam.gserviceaccount.com" \ --role="[ROLE_NAME]"
为服务帐号创建私钥
gcloud iam service-accounts keys create [KEY_FILE_NAME] \ --iam-account [SERVICE_ACCOUNT_NAME]@[PROJECT-ID].iam.gserviceaccount.com \ --project [PROJECT_ID]
激活服务帐号并以该帐号的身份执行 gcloud
、gsutil
命令
gcloud auth activate-service-account --key-file=[SERVICE_ACCOUNT_KEY_FILE]
管理员工作站
通过 SSH 连接到管理员工作站
在包含 Terraform 配置文件的目录中:
ssh -i ~/.ssh/vsphere_workstation ubuntu@$(terraform output ip_address)
或者,如果您只想使用其地址:
ssh -i ~/.ssh/vsphere_workstation ubuntu@[IP_ADDRESS]
将文件复制到管理员工作站
scp -i ~./ssh/vsphere_workstation [SOURCE_PATH] ubuntu@$(terraform output ip_address)
默认日志记录行为
对于 gkectl
和 gkeadm
,使用默认日志记录设置便已足够:
-
默认情况下,日志条目的保存方式如下:
- 对于
gkectl
,默认日志文件为/home/ubuntu/.config/gke-on-prem/logs/gkectl-$(date).log
,该文件与运行gkectl
的本地目录中的logs/gkectl-$(date).log
文件进行符号链接。 - 对于
gkeadm
,默认日志文件是运行gkeadm
的本地目录中的logs/gkeadm-$(date).log
。
- 对于
- 所有日志条目都会保存在日志文件中,即使它们不输出到终端(当
--alsologtostderr
为false
时)也是如此。 -v5
详细程度(默认)涵盖支持团队所需的所有日志条目。- 日志文件还包含已执行的命令和失败消息。
我们建议您在需要帮助时将日志文件发送给支持团队。
为日志文件指定非默认位置
要为 gkectl
日志文件指定非默认位置,请使用 --log_file
标志。您指定的日志文件不会与本地目录进行符号链接。
要为 gkeadm
日志文件指定非默认位置,请使用 --log_file
标志。
在管理员集群中查找 Cluster API 日志
如果虚拟机在管理员控制层面启动后无法启动,您可以通过在管理员集群中检查 Cluster API 控制器的日志来尝试进行调试:
在
kube-system
命名空间中找到 Cluster API 控制器 pod 的名称,其中 [ADMIN_CLUSTER_KUBECONFIG] 是管理员集群的 kubeconfig 文件的路径:kubectl --kubeconfig [ADMIN_CLUSTER_KUBECONFIG] -n kube-system get pods | grep clusterapi-controllers
打开 pod 的日志,其中 [POD_NAME] 是 pod 的名称。您可以选择使用
grep
或类似工具来搜索错误:kubectl --kubeconfig [ADMIN_CLUSTER_KUBECONFIG] -n kube-system logs [POD_NAME] vsphere-controller-manager
集群
获取管理员集群节点的 IP 地址
kubectl --kubeconfig [ADMIN_CLUSTER_KUBECONFIG] get nodes --output wide
获取用户集群节点的 IP 地址
kubectl --kubeconfig [USER_CLUSTER_KUBECONFIG] get nodes --output wide
通过 SSH 连接到集群节点
请参阅使用 SSH 连接到集群节点。