请参考示例,以使用容器网络接口、代理服务器和 TLS 证书的全局配置设置来自定义 Tanzu Kubernetes Grid 服务 v1alpha2 API。
使用 v1alpha2 API 配置 Tanzu Kubernetes Grid 服务
apiVersion: run.tanzu.vmware.com/v1alpha2 kind: TkgServiceConfiguration metadata: name: tkg-service-v2-configuration-example spec: defaultCNI: antrea proxy: #supported format is `http://<user>:<pwd>@<ip>:<port>` httpProxy: http://admin:[email protected]:80 httpsProxy: http://admin:[email protected]:80 noProxy: [10.246.0.0/16,192.168.144.0/20,192.168.128.0/20] trust: additionalTrustedCAs: - name: CompanyInternalCA-1 data: LS0tLS1C...LS0tCg== #where "..." is the middle section of the long base64 string - name: CompanyInternalCA-2 data: MTLtMT1C...MT0tPg== defaultNodeDrainTimeout: 0
必备条件:配置 Kubectl 编辑
要扩展 Tanzu Kubernetes 集群,请使用命令 kubectl edit tanzukubernetescluster/CLUSTER-NAME
更新集群清单。kubectl edit 命令将在您的 KUBE_EDITOR 或 EDITOR 环境变量定义的文本编辑器中打开集群清单。有关设置环境变量的说明,请参阅为 Kubectl 指定默认的文本编辑器。
保存规范更改时,kubectl
将报告已成功记录编辑。要取消,只需关闭编辑器即可,无需进行保存。
配置默认的 CNI
Tanzu Kubernetes Grid 服务 提供用于 Tanzu Kubernetes 集群的默认容器网络接口 (CNI)。默认配置允许您创建集群,而无需指定 CNI。可以通过编辑服务规范来更改默认 CNI。
Tanzu Kubernetes Grid 服务 支持两个 CNI:Antrea 和 Calico,其中 Antrea 是默认值。有关详细信息,请参见Tanzu Kubernetes Grid 服务 集群网络连接。
- 向 主管集群 进行身份验证。
kubectl vsphere login --server=SVC-IP-ADDRESS --vsphere-username USERNAME
- 将上下文切换到目标 vSphere 命名空间。
kubectl config use-context tkgs-cluster-ns
- 列出默认 CNI。
kubectl get tkgserviceconfigurations
示例结果:NAME DEFAULT CNI tkg-service-configuration antrea
- 加载以编辑 Tanzu Kubernetes Grid 服务 规范。
kubectl edit tkgserviceconfigurations tkg-service-configuration
系统将在您的 KUBE_EDITOR 或 EDITOR 环境变量定义的默认文本编辑器中打开
tkg-service-configuration
规范。 - 编辑
spec.defaultCNI
值。例如,将spec: defaultCNI: antrea
更改为spec: defaultCNI: calico
- 要应用更改,请在文本编辑器中保存该文件。要取消,请在不保存的情况下关闭编辑器。
在文本编辑器中保存更改时,kubectl 会更新
tkg-service-configuration
服务规范。 - 验证默认 CNI 是否已更新。
kubectl get tkgserviceconfigurations
默认 CNI 已更新。使用默认网络设置置备的任何集群都将使用默认 CNI。NAME DEFAULT CNI tkg-service-configuration calico
配置全局代理服务器
TkgServiceConfiguration
。有关所需字段的描述,请参阅
用于 Tanzu Kubernetes Grid 服务 v1alpha1 API 的配置参数。
- 使用 主管集群 进行身份验证。
kubectl vsphere login --server=SVC-IP-ADDRESS --vsphere-username USERNAME
- 将上下文切换到目标 vSphere 命名空间。
kubectl config use-context tkgs-cluster-ns
- 获取当前配置。
kubectl get tkgserviceconfigurations
示例结果:NAME DEFAULT CNI tkg-service-configuration antrea
- 加载以编辑 Tanzu Kubernetes Grid 服务 规范。
kubectl edit tkgserviceconfigurations tkg-service-configuration
系统将在您的 KUBE_EDITOR 或 EDITOR 环境变量定义的默认文本编辑器中打开
tkg-service-configuration
规范。 - 将
spec.proxy
小节添加到每个必填字段,包括httpProxy
、httpsProxy
和noProxy
。apiVersion: run.tanzu.vmware.com/v1alpha1 kind: TkgServiceConfiguration metadata: ... name: tkg-service-configuration-example resourceVersion: "44170525" selfLink: /apis/run.tanzu.vmware.com/v1alpha1/tkgserviceconfigurations/tkg-service-configuration uid: 10347195-5f0f-490e-8ae1-a758a724c0bc spec: defaultCNI: antrea proxy: httpProxy: http://<user>:<pwd>@<ip>:<port> httpsProxy: http://<user>:<pwd>@<ip>:<port> noProxy: [SVC-POD-CIDRs, SVC-EGRESS-CIDRs, SVC-INGRESS-CIDRs]
- 在每个代理字段中填充相应的值。有关每个字段的描述,请参阅用于 Tanzu Kubernetes Grid 服务 v1alpha1 API 的配置参数。
所需的
noProxy
字段值来自 主管集群 上的工作负载网络。请参阅上一主题中有关从何处获取这些值的图片。例如:apiVersion: run.tanzu.vmware.com/v1alpha1 kind: TkgServiceConfiguration metadata: ... name: tkg-service-configuration-example resourceVersion: "44170525" selfLink: /apis/run.tanzu.vmware.com/v1alpha1/tkgserviceconfigurations/tkg-service-configuration uid: 10347195-5f0f-490e-8ae1-a758a724c0bc spec: defaultCNI: antrea proxy: httpProxy: http://user:[email protected]:3128 httpsProxy: http://user:[email protected]:3128 noProxy: [10.246.0.0/16,192.168.144.0/20,192.168.128.0/20]
- 要应用更改,请在文本编辑器中保存该文件。要取消,请在不保存的情况下关闭编辑器。
在文本编辑器中保存更改时,kubectl 将使用
tkg-service-configuration
服务规范定义的配置来更新 Tanzu Kubernetes Grid 服务。 - 验证是否已使用代理设置更新 Tanzu Kubernetes Grid 服务。
kubectl get tkgserviceconfigurations -o yaml
- 要进行验证,请置备 Tanzu Kubernetes 集群。请参见使用 TKGS v1alpha2 API 置备 Tanzu Kubernetes 集群的工作流。
使用以下命令确认集群正在使用代理。
kubectl get tkc CLUSTER-NAME -n NAMESPACE -o yaml
基于证书的代理配置
在某些环境中,使用代理服务器路由 Internet 流量是一项硬性要求。例如,监管力度很强的行业公司(如金融机构)要求所有 Internet 流量都通过企业代理。
您可以配置 Tanzu Kubernetes Grid 服务,以将 Tanzu Kubernetes 集群置备为使用代理服务器处理出站 HTTP/S 流量。有关详细信息,请参见用于 Tanzu Kubernetes Grid 服务 v1alpha1 API 的配置参数。
TkgServiceConfiguration
规范。
apiVersion: run.tanzu.vmware.com/v1alpha1 kind: TkgServiceConfiguration metadata: name: tkg-service-configuration-example spec: defaultCNI: antrea proxy: httpProxy: http://user:[email protected]:3128 httpsProxy: http://user:[email protected]:3128 noProxy: [10.246.0.0/16,192.168.144.0/20,192.168.128.0/20] trust: additionalTrustedCAs: - name: first-cert-name data: base64-encoded string of a PEM encoded public cert 1 - name: second-cert-name data: base64-encoded string of a PEM encoded public cert 2 defaultNodeDrainTimeout: 0
外部专用注册表配置
apiVersion: run.tanzu.vmware.com/v1alpha1 kind: TkgServiceConfiguration metadata: name: tkg-service-configuration-example spec: defaultCNI: antrea trust: additionalTrustedCAs: - name: harbor-vm-cert data: <<<base64-encoded string of a PEM encoded public cert>>>>