从集群生成配置文件

本文档介绍如何从现有集群生成一组配置文件。

创建集群的一种方法是使用 gkectl 命令行工具。首先,为集群创建一组配置文件。然后,运行以下某条命令:

  • gkectl create admin,用于创建管理员集群
  • gkectl create cluster,用于创建用户集群

随着时间的推移,您的原始配置文件可能会与集群的实际状态不同步。例如,如果您通过修改自定义资源来更新集群,则您的原始配置文件可能不是集群的准确表述。

创建集群的另一种方法是使用 Google Cloud 控制台,在这种情况下,您没有任何集群配置文件。之后,您可能需要集群配置文件,以便对集群进行某些更新。

如果您怀疑原始配置文件与集群不同步,或者没有配置文件,则可以使用 gkectl get-config 命令生成一组新配置文件,用于准确表述集群的当前状态。

您可以将 gkectl get-config 用于:

  • 用户集群
  • 没有高可用性控制平面的管理员集群。

您不能将 gkectl get-config具有高可用性控制平面的管理员集群搭配使用。

生成配置文件

如需为用户集群生成一组新的配置文件,请运行以下命令:

gkectl get-config cluster --kubeconfig ADMIN_CLUSTER_KUBECONFIG \
    --cluster-name USER_CLUSTER_NAME

替换以下内容:

  • ADMIN_CLUSTER_KUBECONFIG:管理员集群的 kubeconfig 文件的路径。

  • USER_CLUSTER_NAME:用户集群的名称

如需为管理员集群生成一组新的配置文件,请运行以下命令:

gkectl get-config admin --kubeconfig ADMIN_CLUSTER_KUBECONFIG \
    --bundle-path BUNDLE

替换以下内容:

  • ADMIN_CLUSTER_KUBECONFIG:管理员集群的 kubeconfig 文件

  • BUNDLE:GKE on VMware 软件包文件的路径。软件包文件位于管理员工作站上,通常位于 /var/lib/gke/bundles/gke-onprem-vsphere-VERSION-full.tgz 中。如果您还没有软件包文件,可以下载一个

默认情况下,生成的配置文件会写入当前目录的子目录。对于用户集群,输出目录名为 user-cluster-config-output。对于管理员集群,输出目录名为 admin-cluster-config-output

如果您希望将生成的文件放在其他目录中,可以使用 --output-dir 参数指定输出目录的路径。例如:

gkectl get-config cluster --kubeconfig my-kubeconfig \
    --cluster-name my-cluster \
    --output-dir /home/me/configuration/generated-files

如果默认输出目录或指定的输出目录中已有文件,则必须添加 --force 标志,以便新生成的文件将替换现有文件。否则,该命令将失败。例如:

gkectl get-config cluster --kubeconfig my-kubeconfig \
    --cluster-name my-cluster \
    --output-dir /home/me/configuration/generated-files
    --force

为管理员集群生成的文件

文件名说明
admin-cluster.yaml 管理员集群配置文件
始终生成
admin-cluster-creds.yaml 集群凭据文件
始终生成
component-access-key.json 您的组件访问服务账号的 JSON 密钥文件
始终生成
vcenter-ca-cert.pem vCenter 服务器的根证书
始终生成
admin-cluster-ipblock.yaml 集群节点的 IP 地址块文件
如果集群节点使用静态 IP 地址,则生成此文件
admin-seesaw-ipblock.yaml Seesaw 虚拟机的 IP 地址块文件
如果集群使用 Seesaw 负载均衡器,则生成此文件
connect-register-key.json 您的连接注册服务账号的 JSON 密钥文件
始终生成
private-registry-ca.crt 您的私有注册表服务器的根证书
如果集群使用私有注册表,则生成此证书
stackdriver-key.json 日志记录监控服务账号的 JSON 密钥文件
如果集群配置为将日志和指标导出到 Cloud LoggingCloud Monitoring,则生成此文件(集群配置文件中的 stackdriver 部分)
audit-logging-key.json 审核日志记录服务账号的 JSON 密钥文件
如果集群使用 Cloud Audit Logs,则生成此文件

为用户集群生成的文件

文件名说明
user-cluster.yaml 用户集群配置文件
始终生成
user-cluster-creds.yaml 集群凭据文件
在集群未使用准备好的凭据时生成此文件
vcenter-ca-cert.pem vCenter 服务器的根证书
始终生成
user-cluster-ipblock.yaml 集群节点的 IP 地址块文件
如果集群节点使用静态 IP 地址,则生成此文件
user-seesaw-ipblock.yaml Seesaw 虚拟机的 IP 地址块文件
如果集群使用 Seesaw 负载均衡器,则生成此文件
private-registry-ca.crt 您的私有注册表服务器的根证书
如果集群使用私有注册表,则生成此证书
component-access-key.json 组件访问服务账号的 JSON 密钥文件
如果集群未使用私有注册表,则生成此文件
connect-register-key.json 您的连接注册服务账号的 JSON 密钥文件
始终生成
stackdriver-key.json 日志记录监控服务账号的 JSON 密钥文件
如果集群配置为将日志和指标导出到 Cloud LoggingCloud Monitoring,则生成此文件(集群配置文件中的 stackdriver 部分)
audit-logging-key.json 审核日志记录服务账号的 JSON 密钥文件
如果集群使用 Cloud Audit Logs,则生成此文件
usage-metering-key.json 用量计量服务账号的 JSON 密钥文件
如果集群将用量数据存储在 BigQuery 数据集中,则生成此文件
secrets.yaml Secret 配置文件
如果集群使用准备好的凭据,则生成此文件
要生成此文件,您必须在 gkectl get-config cluster 命令中添加 --export-secrets-config 标志。
sni-cert.pem Kubernetes API 服务器的附加服务证书
如果集群配置为使用服务器名称指示 (SNI),则生成此证书
sni-key.json 附加服务证书的私钥文件
如果将集群配置为使用 SNI,则生成此文件