신뢰할 수 있는 추가 CA 인증서가 하나 이상 있는 v1beta1 클러스터를 프로비저닝하려면 이 예를 참조하십시오.

v1beta1 예: 신뢰할 수 있는 추가 CA 인증서가 있는 클러스터

Cluster v1beta1 API는 하나 이상의 신뢰할 수 있는 CA 인증서를 추가로 사용하여 클러스터를 프로비저닝하기 위한 trust변수를 제공합니다.
표 1. v1beta1 API 신뢰 변수
필드 설명
trust 섹션 마커. 데이터를 허용하지 않습니다.
additionalTrustedCAs 섹션 마커. 각각에 대한 name이 있는 인증서 어레이를 포함합니다.
name 이중 base64로 인코딩된 PEM 형식의 CA 인증서가 포함된 Kubernetes 암호의 data 맵 필드에 대한 사용자 정의 이름입니다.
참고: 이중 base64 인코딩은 필수입니다. 컨텐츠가 이중 base6로 인코딩되지 않은 경우 결과 PEM 파일을 처리할 수 없습니다.
다음 예에서는 CA 인증서가 포함된 Kubernetes 암호를 v1beta1 API 클러스터 규격에 추가하는 방법을 보여 줍니다.
#cluster-with-trusted-private-reg-cert.yaml
apiVersion: cluster.x-k8s.io/v1beta1
kind: Cluster
metadata:
  name: cluster01
  namespace: tkgs-cluster-ns
spec:
  clusterNetwork:
    services:
      cidrBlocks: ["198.52.100.0/12"]
    pods:
      cidrBlocks: ["192.101.2.0/16"]
    serviceDomain: "cluster.local"
  topology:
    class: tanzukubernetescluster
    version: v1.26.5+vmware.2-fips.1-tkg.1
    controlPlane:
      replicas: 3
    workers:
      machineDeployments:
        - class: node-pool
          name: node-pool-01
          replicas: 3
    variables:
      - name: vmClass
        value: guaranteed-medium
      - name: storageClass
        value: tkgs-storage-profile
      - name: defaultStorageClass
        value: tkgs-storage-profile
      - name: trust
        value:
          additionalTrustedCAs:
          - name: additional-ca-1
다음 예에서는 신뢰할 수 있는 추가 CA 인증서가 포함된 Kubernetes 암호를 보여 줍니다.
#additional-ca-1.yaml
apiVersion: v1
data:
  additional-ca-1: TFMwdExTMUNSGlSzZ3Jaa...VVNVWkpRMEMwdExTMHRDZz09
kind: Secret
metadata:
  name: cluster01-user-trusted-ca-secret
  namespace: tkgs-cluster-ns
type: Opaque
형식 설명:
  • 암호의 data 맵 값은 CA 인증서의 이름(이 예에서는 additional-ca-1)인 사용자 정의 문자열이며, 값은 이중 base64로 인코딩된 PEM 형식의 CA 인증서입니다.
  • metadata 섹션에서 암호 이름은 CLUSTER-NAME-user-trusted-ca-secret이어야 합니다. 여기서 CLUSTER-NAME은 클러스터의 이름입니다. 이 암호는 클러스터와 동일한 vSphere 네임스페이스에서 생성해야 합니다.
CA 인증서의 컨텐츠를 이중 base64로 인코딩합니다.

절차: 새 클러스터

새 TKGS 클러스터에 신뢰할 수 있는 CA 인증서를 하나 이상 추가로 포함하려면 다음 절차를 완료합니다.
  1. CA 인증서의 컨텐츠를 이중 base64로 인코딩합니다.
  2. 값이 이중 base64로 인코딩된 PEM 형식의 CA 인증서인 데이터 맵 이름을 포함하는 Kubernetes 암호를 생성합니다.
  3. 클러스터 규격에서 trust.additionalTrustedCAs 변수를 데이터 맵의 이름으로 채웁니다.
  4. 평소처럼 클러스터를 프로비저닝합니다.

    Kubectl을 사용하여 TKG 클러스터를 프로비저닝하기 위한 워크플로의 내용을 참조하십시오.

  5. 클러스터가 성공적으로 프로비저닝되면 추가한 CA 인증서를 클러스터에서 신뢰합니다.

절차: 기존 클러스터

기존 클러스터에 신뢰할 수 있는 CA 인증서를 하나 이상 더 추가하려면 다음 절차를 완료합니다.
  1. CA 인증서의 컨텐츠를 이중 base64로 인코딩합니다.
  2. 값이 이중 base64로 인코딩된 PEM 형식의 CA 인증서인 데이터 맵 이름을 포함하는 Kubernetes 암호를 생성합니다.
  3. kubectl 편집을 구성했는지 확인합니다.

    Kubectl용 텍스트 편집기 구성의 내용을 참조하십시오.

  4. 클러스터 규격을 편집합니다.
    kubectl edit tanzukubernetescluster/tkgs-cluster-name
  5. trust.additionalTrustedCAs 섹션을 규격에 추가합니다.
  6. 이중 base64로 인코딩된 PEM 형식의 CA 인증서가 포함된 암호의 데이터 맵 이름으로 additionalTrustedCAs 필드를 채웁니다.
  7. 텍스트 편집기에서 변경 내용을 저장하고 kubectl이 변경 내용을 등록했는지 확인합니다.
    kubectl edit cluster/tkgs-cluster-name
    cluster.run.tanzu.vmware.com/tkgs-cluster-name edited
  8. 클러스터에 대해 롤링 업데이트가 시작되면 신뢰할 수 있는 CA 인증서가 추가됩니다.

    TKG 서비스 클러스터를 위한 롤링 업데이트 모델 이해의 내용을 참조하십시오.

신뢰할 수 있는 추가 CA 인증서 확인

클러스터에 추가된 신뢰할 수 있는 추가 CA 인증서가 클러스터의 kubeconfig 파일에 포함됩니다.

인증서 순환

인증서를 순환하려면 새 암호를 생성하고 적절한 값으로 클러스터 규격을 편집합니다. 이렇게 하면 클러스터의 롤링 업데이트가 트리거됩니다.
참고: 시스템은 CLUSTER-NAME-user-trusted-ca-secret에 대한 변경 내용을 모니터링하지 않습니다. data 맵 값이 변경되어도 이러한 변경 내용이 클러스터에 반영되지 않습니다. trust.additionalTrustCAs에 대한 새 암호와 해당 데이터 맵 name을 생성해야 합니다.

신뢰할 수 있는 추가 CA 인증서 문제 해결

추가적인 신뢰할 수 있는 CA 오류 문제 해결의 내용을 참조하십시오.

사용 사례

가장 일반적인 사용 사례는 컨테이너 레지스트리에 연결하기 위해 신뢰할 수 있는 다른 CA를 추가하는 것입니다. TKG 서비스 클러스터를 개인 컨테이너 레지스트리와 통합의 내용을 참조하십시오.