컨테이너 네트워크 인터페이스, 프록시 서버 및 TLS 인증서에 대한 글로벌 구성 설정을 사용하여 Tanzu Kubernetes Grid 서비스 v1alpha2 API를 사용자 지정하려면 예시를 참조하십시오.

v1alpha2 API를 사용하여 Tanzu Kubernetes Grid 서비스 구성

기본 CNI를 변경하고 글로벌 프록시 서버를 추가하고 신뢰할 수 있는 인증서를 추가하여 Tanzu Kubernetes Grid 서비스를 사용자 지정할 수 있습니다. Tanzu Kubernetes Grid 서비스 v1alpha1 API에 대한 구성 매개 변수의 내용을 참조하십시오.
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
경고: Tanzu Kubernetes Grid 서비스 규격을 편집하면 해당 서비스에서 프로비저닝된 모든 클러스터가 전체적으로 변경되며, 여기에는 수동으로 또는 자동으로 업그레이드되는 기존 클러스터 및 새 클러스터가 포함됩니다.

사전 요구 사항: 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 서비스 클러스터 네트워킹의 내용을 참조하십시오.

사용할 CNI를 명시적으로 지정하여 기본 CNI를 재정의할 수 있습니다. 또는 CNI용 TKG 서비스 컨트롤러를 편집하여 기본 CNI를 변경할 수 있습니다.
  1. 감독자 클러스터로 인증합니다.
    kubectl vsphere login --server=SVC-IP-ADDRESS --vsphere-username USERNAME
  2. 컨텍스트를 대상 vSphere 네임스페이스로 전환합니다.
    kubectl config use-context tkgs-cluster-ns
  3. 기본 CNI를 나열합니다.
    kubectl get tkgserviceconfigurations
    예제 결과:
    NAME                                 DEFAULT CNI
    tkg-service-configuration            antrea
    
  4. Tanzu Kubernetes Grid 서비스 규격을 편집하기 위해 로드합니다.
    kubectl edit tkgserviceconfigurations tkg-service-configuration

    KUBE_EDITOR 또는 EDITOR 환경 변수로 정의된 기본 텍스트 편집기에서 tkg-service-configuration 규격이 열립니다.

  5. spec.defaultCNI 값을 편집합니다.
    예를 들어, 변경 전:
    spec:
      defaultCNI: antrea
    변경 후:
    spec:
      defaultCNI: calico
  6. 변경 내용을 적용하려면 텍스트 편집기에서 파일을 저장합니다. 취소하려면 저장하지 않고 편집기를 닫습니다.

    텍스트 편집기에서 변경 내용을 저장하면 kubectltkg-service-configuration 서비스 규격을 업데이트합니다.

  7. 기본 CNI가 업데이트되었는지 확인합니다.
    kubectl get tkgserviceconfigurations
    기본 CNI가 업데이트됩니다. 기본 네트워크 설정으로 프로비저닝된 모든 클러스터는 기본 CNI를 사용합니다.
    NAME                                 DEFAULT CNI
    tkg-service-configuration            calico
    

글로벌 프록시 서버 구성

글로벌 프록시 서버를 사용하도록 설정하려면 프록시 서버 매개 변수를 TkgServiceConfiguration에 추가합니다. 필수 필드에 대한 설명은 Tanzu Kubernetes Grid 서비스 v1alpha1 API에 대한 구성 매개 변수 항목을 참조하십시오.
  1. 감독자 클러스터로 인증합니다.
    kubectl vsphere login --server=SVC-IP-ADDRESS --vsphere-username USERNAME
  2. 컨텍스트를 대상 vSphere 네임스페이스로 전환합니다.
    kubectl config use-context tkgs-cluster-ns
  3. 현재 구성을 가져옵니다.
    kubectl get tkgserviceconfigurations
    예제 결과:
    NAME                        DEFAULT CNI
    tkg-service-configuration   antrea
  4. Tanzu Kubernetes Grid 서비스 규격을 편집하기 위해 로드합니다.
    kubectl edit tkgserviceconfigurations tkg-service-configuration

    KUBE_EDITOR 또는 EDITOR 환경 변수로 정의된 기본 텍스트 편집기에서 tkg-service-configuration 규격이 열립니다.

  5. 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]
  6. 각 프록시 필드를 적절한 값으로 채웁니다. 각 필드에 대한 설명은 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]
  7. 변경 내용을 적용하려면 텍스트 편집기에서 파일을 저장합니다. 취소하려면 저장하지 않고 편집기를 닫습니다.

    텍스트 편집기에서 변경 내용을 저장하면 kubectltkg-service-configuration 서비스 규격에 정의된 구성으로 Tanzu Kubernetes Grid 서비스를 업데이트합니다.

  8. Tanzu Kubernetes Grid 서비스가 프록시 설정으로 업데이트되었는지 확인합니다.
    kubectl get tkgserviceconfigurations -o yaml
  9. 확인하려면 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

외부 개인 레지스트리 구성

Tanzu Kubernetes 클러스터를 외부 개인 레지스트리와 연결하기 위한 사용자 지정 인증서를 사용하여 Tanzu Kubernetes Grid 서비스를 구성할 수 있습니다. 자세한 내용은 Tanzu Kubernetes 클러스터에서 외부 컨테이너 레지스트리 사용의 내용을 참조하십시오.
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>>>>