按照以下说明在运行适用于 vSphere 8.x 的 TKr 的 TKG 服务 集群上安装 Contour with Envoy。
必备条件
请遵循以下必备条件。
创建 Contour 数据值
准备通过创建数据值文件来安装 Contour。
- 列出可用的 Contour 软件包版本。
tanzu package available get contour.tanzu.vmware.com -n tkg-system
或者,使用 kubectl:
kubectl -n tkg-system get packages | grep contour
注: 通常,应该使用最新版本,除非要求不同。 - 生成
contour-default-values.yaml
文件。tanzu package available get contour.tanzu.vmware.com/1.28.2+vmware.1-tkg.1 --default-values-file-output contour-data-values.yaml
其中:- 1.28.2+vmware.1-tkg.1 是目标软件包版本
- contour-data-values.yaml 是要生成的数据值文件的名称和路径
- 编辑
contour-data-values.yaml
文件。将 Envoy 服务设置为
LoadBalancer
以允许来自集群外部的流量访问 Kubernetes 服务。有关指导,请参阅以下示例。vi contour-data-values.yaml
--- infrastructure_provider: vsphere namespace: tanzu-system-ingress contour: configFileContents: {} useProxyProtocol: false replicas: 2 pspNames: "vmware-system-restricted" logLevel: info envoy: service: type: LoadBalancer annotations: {} externalTrafficPolicy: Cluster disableWait: false hostPorts: enable: true http: 80 https: 443 hostNetwork: false terminationGracePeriodSeconds: 300 logLevel: info certificates: duration: 8760h renewBefore: 360h
安装 Contour
完成以下步骤以安装 Contour ingress with Envoy。
- 为 Contour 软件包创建唯一的命名空间。
kubectl create ns tanzu-system-ingress
- 安装 Contour。
调整版本以满足要求。
tanzu package install contour -p contour.tanzu.vmware.com -v 1.28.2+vmware.1-tkg.1 --values-file contour-data-values.yaml -n tanzu-system-ingress
- 验证 Contour 安装。
tanzu package installed list -n tanzu-system-ingress
- 验证 Contour 和 Envoy 对象。
kubectl -n tanzu-system-ingress get all
NAME READY STATUS RESTARTS AGE pod/contour-777bdddc69-fqnsp 1/1 Running 0 102s pod/contour-777bdddc69-gs5xv 1/1 Running 0 102s pod/envoy-d4jtt 2/2 Running 0 102s pod/envoy-g5h72 2/2 Running 0 102s pod/envoy-pjpzc 2/2 Running 0 102s NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE service/contour ClusterIP 10.105.242.46 <none> 8001/TCP 102s service/envoy LoadBalancer 10.103.245.57 10.197.154.69 80:32642/TCP,443:30297/TCP 102s NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE daemonset.apps/envoy 3 3 3 3 3 <none> 102s NAME READY UP-TO-DATE AVAILABLE AGE deployment.apps/contour 2/2 2 2 102s NAME DESIRED CURRENT READY AGE replicaset.apps/contour-777bdddc69 2 2 2 102s
在此示例中,Envoy 服务具有外部 IP 地址 10.197.154.69。此 IP 地址从为
指定的 CIDR 范围获得。将为此 IP 地址创建新的负载均衡器实例。此负载均衡器的服务器池成员是 Envoy Pod。由于 Envoy Pod 会假定运行这些 Envoy Pod 的工作节点的 IP 地址,因此可以通过查询集群节点 (kubectl get nodes -o wide
),查看这些 IP 地址。
故障排除
根据需要参考以下主题。