CNI(Container Network Interface), 프록시 서버 및 TLS 인증서를 비롯한 주요 기능에 대한 글로벌 설정을 사용하여 Tanzu Kubernetes Grid 서비스를 사용자 지정할 수 있습니다. 글로벌 기능을 구현하는 것과 클러스터당 기능을 구현하는 것의 장단점 및 고려 사항을 알고 있어야 합니다.

필요한 경우 글로벌 매개 변수를 사용하여 Tanzu Kubernetes Grid 서비스를 구성할 수 있습니다.

경고: Tanzu Kubernetes Grid 서비스 구성은 글로벌 작업입니다. 즉, TkgServiceConfiguration 규격을 변경하면 해당 서비스에서 프로비저닝된 모든 Tanzu Kubernetes 클러스터에 관련 변경 내용이 적용됩니다. 롤링 업데이트가 시작되면(수동으로 또는 업그레이드를 통해) 변경된 서비스 규격에 따라 클러스터가 업데이트됩니다.

TkgServiceConfiguration 규격

TkgServiceConfiguration 규격은 Tanzu Kubernetes Grid 서비스 인스턴스 구성을 위한 필드를 제공합니다.
apiVersion: run.tanzu.vmware.com/v1alpha1
kind: TkgServiceConfiguration
metadata:
  name: tkg-service-configuration-example
spec:
  defaultCNI: <antrea or calico>
  proxy:
    httpProxy: http://<user>:<pwd>@<ip>:<port>
    httpsProxy: http://<user>:<pwd>@<ip>:<port>
    noProxy: [<array of CIDRs to not proxy>]
  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>

TkgServiceConfiguration 규격 매개 변수

이 표에는 TkgServiceConfiguration 규격 매개 변수와 그에 대한 설명이 있습니다. 예제에 대해서는 Tanzu Kubernetes Grid 서비스 v1alpha1 API 구성 예시 항목을 참조하십시오.
필드 설명
defaultCNI antrea or calico 클러스터에서 사용할 기본 CNI입니다. 기본값은 antrea입니다. 지원되는 다른 CNI는 calico입니다.
proxy proxy 매개 변수의 섹션 마커입니다. proxy 매개 변수는 httpProxy, httpsProxy, noProxy입니다. 모든 매개 변수는 필수입니다. proxy 매개 변수가 누락된 경우에는 Tanzu Kubernetes 클러스터를 생성할 수 없습니다.
httpProxy http://<user>:<pwd>@<ip>:<port> 형식의 URI https 프로토콜을 허용하지 않습니다. https를 사용하는 경우 Tanzu Kubernetes 클러스터를 생성할 수 없습니다.
httpsProxy http://<user>:<pwd>@<ip>:<port> 형식의 URI https 프로토콜을 허용하지 않습니다. https를 사용하는 경우 Tanzu Kubernetes 클러스터를 생성할 수 없습니다.
noProxy

프록시를 사용하지 않을 CIDR 블록의 어레이입니다(예: [10.246.0.0/16,192.168.144.0/20,192.168.128.0/20]).

감독자 클러스터의 워크로드 네트워크에서 필요한 값을 가져옵니다(예: Pod CIDRs, Ingress CIDRsEgress CIDRs).

noProxy 어레이 필드에 포함할 값은 아래 이미지를 참조하십시오.

포드, 수신 및 송신을 위해 감독자 클러스터의 워크로드 네트워크에서 사용하는 서브넷에는 프록시를 사용하지 말아야 합니다.

감독자 클러스터의 서비스 CIDR을 noProxy 필드에 포함할 필요가 없습니다. Tanzu Kubernetes 클러스터는 그러한 서비스와 상호 작용하지 않습니다.

끝점 localhost127.0.0.1은 자동으로 프록시로 사용되지 않습니다. noProxy 필드에 추가할 필요가 없습니다.

Tanzu Kubernetes 클러스터의 포드 및 서비스 CIDR은 자동으로 프록시로 사용되지 않습니다. noProxy 필드에 추가할 필요가 없습니다.

trust trust 매개 변수의 섹션 마커입니다. 데이터를 허용하지 않습니다.
additionalTrustedCAs 각각 namedata가 있는 인증서 어레이를 허용합니다. 데이터를 허용하지 않습니다.
name 문자열 TLS 인증서의 이름입니다.
data 문자열 PEM으로 인코딩된 공용 인증서의 base64로 인코딩된 문자열입니다.

이미지에 표시된 대로 감독자 클러스터워크로드 네트워크에서 필요한 noProxy 값을 가져옵니다.

포드 CIDR, 수신 CIDR 및 송신 CIDR 값이 강조 표시된 [워크로드 네트워크] 창입니다.

글로벌 또는 클러스터별 구성 옵션을 사용하는 경우

TkgServiceConfigurationTanzu Kubernetes Grid 서비스 인스턴스로 프로비저닝된 모든 Tanzu Kubernetes 클러스터에 영향을 미치는 글로벌 규격입니다.

TkgServiceConfiguration 규격을 편집하기 전에, 글로벌 구성 대신 사용 사례를 충족할 수 있는 클러스터별 대안을 알고 있어야 합니다.
표 1. 글로벌 및 클러스터별 구성 옵션
설정 글로벌 옵션 클러스터별 옵션
기본 CNI TkgServiceConfiguration 규격을 편집합니다. Tanzu Kubernetes Grid 서비스 v1alpha1 API 구성 예시의 내용을 참조하십시오. 클러스터 규격에서 CNI를 지정합니다. 예를 들어 기본 CNI는 Antrea입니다. Calico를 사용하려면 클러스터 YAML에서 지정합니다. Tanzu Kubernetes Grid 서비스 v1alpha1 API를 사용하여 Tanzu Kubernetes 클러스터를 프로비저닝하는 예 항목을 참조하십시오.
프록시 서버 TkgServiceConfiguration 규격을 편집합니다. Tanzu Kubernetes Grid 서비스 v1alpha1 API 구성 예시의 내용을 참조하십시오. 클러스터 규격에 프록시 서버 구성 매개 변수를 포함합니다. Tanzu Kubernetes Grid 서비스 v1alpha1 API를 사용하여 Tanzu Kubernetes 클러스터를 프로비저닝하는 예의 내용을 참조하십시오.
트러스트 인증서 TkgServiceConfiguration 규격을 편집합니다. 외부 컨테이너 레지스트리 구성과 인증서 기반 프록시 구성이라는 두 가지 사용 사례가 있습니다. Tanzu Kubernetes Grid 서비스 v1alpha1 API 구성 예시 항목을 참조하십시오. 예, 클러스터별로 사용자 지정 인증서를 포함하거나 클러스터 규격에서 전체적으로 설정된 trust 설정을 재정의할 수 있습니다. Tanzu Kubernetes Grid 서비스 v1alpha1 API를 사용하여 Tanzu Kubernetes 클러스터를 프로비저닝하는 예의 내용을 참조하십시오.
참고: TkgServiceConfiguration에 글로벌 프록시가 구성된 경우 이 프록시 정보는 클러스터의 초기 배포 후 클러스터 매니페스트로 전파됩니다. 글로벌 프록시 구성은 클러스터를 생성할 때 프록시 구성 필드가 없는 경우에만 클러스터 매니페스트에 추가됩니다. 다시 말해, 클러스터별 구성이 우선하며 글로벌 프록시 구성을 덮어씁니다. 자세한 내용은 Tanzu Kubernetes Grid 서비스 v1alpha1 API에 대한 구성 매개 변수의 내용을 참조하십시오.

TkgServiceConfiguration 규격을 편집하기 전에 글로벌 수준에서 설정을 적용하는 결과에 대해 알고 있어야 합니다.

필드 적용 추가/변경된 경우 기존 클러스터에 미치는 영향 클러스터 생성 시 클러스터별 재정의 클러스터 업데이트 시 클러스터별 재정의
defaultCNI 전체적으로 없음 예, 클러스터 생성 시 글로벌 설정을 재정의할 수 있습니다. 아니요, 기존 클러스터의 CNI를 변경할 수 없습니다. 클러스터 생성 시 전체적으로 설정된 기본 CNI를 사용한 경우에는 변경할 수 없습니다.
proxy 전체적으로 없음 예, 클러스터 생성 시 글로벌 설정을 재정의할 수 있습니다. 예, U2+를 사용하면 클러스터 업데이트 시 글로벌 설정을 재정의할 수 있습니다.
trust 전체적으로 없음 예, 클러스터 생성 시 글로벌 설정을 재정의할 수 있습니다. 예, U2+를 사용하면 클러스터 업데이트 시 글로벌 설정을 재정의할 수 있습니다.

글로벌 구성 변경을 기존 클러스터에 전파

TkgServiceConfiguration의 글로벌 수준에서 지정한 설정은 기존 클러스터에 자동으로 전파되지 않습니다. 예를 들어 TkgServiceConfiguration에서 proxy 또는 trust 설정을 변경하는 경우 이미 프로비저닝된 클러스터에는 이러한 변경 사항이 영향을 주지 않습니다.

기존 클러스터에 글로벌 변경 내용을 전파하려면 Tanzu Kubernetes 클러스터에 패치를 적용하여 TkgServiceConfiguration에 대한 변경 내용을 클러스터가 상속하도록 해야 합니다.

예:
kubectl patch tkc <CLUSTER_NAME> -n <NAMESPACE> --type merge -p "{\"spec\":{\"settings\":{\"network\":{\"proxy\": null}}}}"
kubectl patch tkc <CLUSTER_NAME> -n <NAMESPACE> --type merge -p "{\"spec\":{\"settings\":{\"network\":{\"trust\": null}}}}"