컨테이너 네트워크 인터페이스, 프록시 서버 및 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(Container Network Interface)를 제공합니다. 기본 구성을 사용하면 CNI를 지정하지 않고도 클러스터를 생성할 수 있습니다. 서비스 규격을 편집하여 기본 CNI를 변경할 수 있습니다.
Tanzu Kubernetes Grid 서비스는 두 가지(Antrea 및 Calico) CNI를 지원하며 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
규격이 열립니다. httpProxy
,httpsProxy
,noProxy
를 포함하여 각 필수 필드에spec.proxy
하위 섹션을 추가합니다.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
인증서 기반 프록시 구성
프록시 서버를 사용하여 인터넷 트래픽을 라우팅하는 것이 일부 환경에서는 엄격한 요구 사항입니다. 예를 들어, 금융 기관과 같이 규제가 엄격한 업계의 회사에서는 모든 인터넷 트래픽이 회사 프록시를 통과해야 합니다.
아웃바운드 HTTP/S 트래픽에 프록시 서버를 사용하는 Tanzu Kubernetes 클러스터를 프로비저닝하도록 Tanzu Kubernetes Grid 서비스를 구성할 수 있습니다. 자세한 내용은 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>>>>