신뢰할 수 있는 추가 CA 인증서가 하나 이상 있는 v1beta1 클러스터를 프로비저닝하려면 이 예를 참조하십시오.
v1beta1 예: 신뢰할 수 있는 추가 CA 인증서가 있는 클러스터
Cluster v1beta1 API는 하나 이상의 신뢰할 수 있는 CA 인증서를 추가로 사용하여 클러스터를 프로비저닝하기 위한
trust변수를 제공합니다.
필드 | 설명 |
---|---|
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로 인코딩합니다.
- Linux:
base64 -w 0 ca.crt | base64 -w 0
- Windows: https://www.base64encode.org/.
절차: 새 클러스터
새 TKGS 클러스터에 신뢰할 수 있는 CA 인증서를 하나 이상 추가로 포함하려면 다음 절차를 완료합니다.
- CA 인증서의 컨텐츠를 이중 base64로 인코딩합니다.
- 값이 이중 base64로 인코딩된 PEM 형식의 CA 인증서인 데이터 맵 이름을 포함하는 Kubernetes 암호를 생성합니다.
- 클러스터 규격에서
trust.additionalTrustedCAs
변수를 데이터 맵의 이름으로 채웁니다. - 평소처럼 클러스터를 프로비저닝합니다.
Kubectl을 사용하여 TKG 클러스터를 프로비저닝하기 위한 워크플로의 내용을 참조하십시오.
- 클러스터가 성공적으로 프로비저닝되면 추가한 CA 인증서를 클러스터에서 신뢰합니다.
절차: 기존 클러스터
기존 클러스터에 신뢰할 수 있는 CA 인증서를 하나 이상 더 추가하려면 다음 절차를 완료합니다.
- CA 인증서의 컨텐츠를 이중 base64로 인코딩합니다.
- 값이 이중 base64로 인코딩된 PEM 형식의 CA 인증서인 데이터 맵 이름을 포함하는 Kubernetes 암호를 생성합니다.
- kubectl 편집을 구성했는지 확인합니다.
Kubectl용 텍스트 편집기 구성의 내용을 참조하십시오.
- 클러스터 규격을 편집합니다.
kubectl edit tanzukubernetescluster/tkgs-cluster-name
trust.additionalTrustedCAs
섹션을 규격에 추가합니다.- 이중 base64로 인코딩된 PEM 형식의 CA 인증서가 포함된 암호의 데이터 맵 이름으로
additionalTrustedCAs
필드를 채웁니다. - 텍스트 편집기에서 변경 내용을 저장하고 kubectl이 변경 내용을 등록했는지 확인합니다.
kubectl edit cluster/tkgs-cluster-name cluster.run.tanzu.vmware.com/tkgs-cluster-name edited
- 클러스터에 대해 롤링 업데이트가 시작되면 신뢰할 수 있는 CA 인증서가 추가됩니다.
TKG 서비스 클러스터를 위한 롤링 업데이트 모델 이해의 내용을 참조하십시오.
신뢰할 수 있는 추가 CA 인증서 확인
클러스터에 추가된 신뢰할 수 있는 추가 CA 인증서가 클러스터의 kubeconfig 파일에 포함됩니다.
인증서 순환
인증서를 순환하려면 새 암호를 생성하고 적절한 값으로 클러스터 규격을 편집합니다. 이렇게 하면 클러스터의 롤링 업데이트가 트리거됩니다.
참고: 시스템은
CLUSTER-NAME-user-trusted-ca-secret
에 대한 변경 내용을 모니터링하지 않습니다.
data
맵 값이 변경되어도 이러한 변경 내용이 클러스터에 반영되지 않습니다.
trust.additionalTrustCAs
에 대한 새 암호와 해당 데이터 맵
name
을 생성해야 합니다.
신뢰할 수 있는 추가 CA 인증서 문제 해결
추가적인 신뢰할 수 있는 CA 오류 문제 해결의 내용을 참조하십시오.
사용 사례
가장 일반적인 사용 사례는 컨테이너 레지스트리에 연결하기 위해 신뢰할 수 있는 다른 CA를 추가하는 것입니다. TKG 서비스 클러스터를 개인 컨테이너 레지스트리와 통합의 내용을 참조하십시오.