1.4 版。此版本全面受支持,针对影响 GKE On-Prem 的安全漏洞、曝光和问题提供了最新补丁程序及更新。如需了解详情,请参阅版本说明。这不是最新版本

GKE On-Prem 备忘单

本主题概述了在使用 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 共享集群信息。请参阅诊断集群问题

以 verbose 模式运行 gkectl 命令

-v5

gkectl 错误记录到 stderr

--alsologtostderr

生成 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]

激活服务帐号并以该帐号的身份执行 gcloudgsutil 命令

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 日志

即使未传入其调试标志,您也可以在以下管理员工作站目录中查看 gkectl 日志:

/home/ubuntu/.config/gke-on-prem/logs

在管理员集群中查找 Cluster API 日志

如果虚拟机在管理员控制层面启动后无法启动,您可以通过在管理员集群中检查 Cluster API 控制器的日志来尝试进行调试:

  1. kube-system 命名空间中找到 Cluster API 控制器 pod 的名称,其中 [ADMIN_CLUSTER_KUBECONFIG] 是管理员集群的 kubeconfig 文件的路径:

    kubectl --kubeconfig [ADMIN_CLUSTER_KUBECONFIG] -n kube-system get pods | grep clusterapi-controllers
  2. 打开 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 连接到集群节点

后续步骤