kubecononfig 파일을 생성합니다
kubecononfig 파일을 사용하여 Astra Control Service에 클러스터를 추가할 수 있습니다. 추가하려는 클러스터 유형에 따라 특정 단계를 사용하여 클러스터에 대한 kubeconfig 파일을 수동으로 생성해야 할 수 있습니다.
Amazon EKS 클러스터용 kubbeconfig 파일을 생성합니다
다음 지침에 따라 아마존 EKS 클러스터에 대한 kubbeconfig 파일과 영구 토큰 암호를 생성하십시오. EKS에서 호스팅되는 클러스터에 영구 토큰 암호가 필요합니다.
-
아마존 문서의 지침에 따라 kubecononfig 파일을 생성합니다.
-
다음과 같이 서비스 계정을 생성합니다.
-
라는 서비스 계정 파일을 생성합니다
astracontrol-service-account.yaml
.필요에 따라 서비스 계정 이름을 조정합니다. 네임스페이스
kube-system
은(는) 이러한 단계에 필요합니다. 여기서 서비스 계정 이름을 변경하는 경우 다음 단계에서 동일한 변경 사항을 적용해야 합니다.
astracontrol-service-account.yaml
+
-
-
서비스 계정 적용:
-
을 생성합니다
ClusterRoleBinding
파일을 호출했습니다astracontrol-clusterrolebinding.yaml
.astracontrol-clusterrolebinding.yaml
-
클러스터 역할 바인딩을 적용합니다.
-
라는 서비스 계정 토큰 암호 파일을 생성합니다
astracontrol-secret.yaml
.astracontrol-secret.yaml
-
토큰 암호 적용:
-
토큰 암호 검색:
-
를 교체합니다
user
다음 예제에서와 같이 토큰이 있는 AWS EKS kubecononfig 파일의 섹션입니다.
AWS(ROSA) 클러스터에서 Red Hat OpenShift Service에 대한 kubeconfig 파일을 생성합니다
다음 지침에 따라 AWS(ROSA) 클러스터에서 Red Hat OpenShift Service에 대한 kubeconfig 파일을 생성합니다.
-
Rosa 클러스터에 로그인합니다.
-
서비스 계정 생성:
-
클러스터 역할 추가:
-
다음 예제를 사용하여 서비스 계정 암호 구성 파일을 만듭니다.
secret-astra-sa.yaml
-
비밀 만들기:
-
생성한 서비스 계정을 편집하고 Astra Control 서비스 계정 암호 이름을 에 추가합니다
secrets
섹션: -
교체 서비스 계정 암호를 나열합니다
<CONTEXT>
올바른 설치 상황:출력의 끝은 다음과 유사합니다.
"secrets": [ { "name": "astracontrol-service-account-dockercfg-dvfcd"}, { "name": "secret-astracontrol-service-account"} ]
의 각 요소에 대한 인덱스입니다
secrets
어레이는 0으로 시작합니다. 위의 예에서 의 인덱스입니다astracontrol-service-account-dockercfg-dvfcd
는 0이고 의 인덱스입니다secret-astracontrol-service-account
1입니다. 출력에서 서비스 계정의 인덱스 번호를 기록해 둡니다. 다음 단계에서는 이 인덱스 번호가 필요합니다. -
다음과 같이 kubecononfig를 생성합니다.
-
을 생성합니다
create-kubeconfig.sh
파일. 대치TOKEN_INDEX
다음 스크립트의 시작 부분에 올바른 값이 있습니다.create-kubeconfig.sh
-
Kubernetes 클러스터에 적용할 명령을 소스 하십시오.
-
-
(선택 사항) kubeconfig의 이름을 클러스터의 의미 있는 이름으로 바꿉니다.
mv kubeconfig-sa YOUR_CLUSTER_NAME_kubeconfig
다른 유형의 클러스터에 사용할 kubecononfig 파일을 생성합니다
다음 지침에 따라 Rancher, Upstream Kubernetes 및 Red Hat OpenShift 클러스터에 대한 제한적이거나 확장된 역할 kubeconfig 파일을 생성합니다.
kubeconfig를 사용하여 관리되는 클러스터의 경우 Astra Control Service에 대해 제한된 권한 또는 확장된 권한 관리자 역할을 선택적으로 생성할 수 있습니다.
다음 시나리오 중 하나가 사용자 환경에 적용되는 경우 이 절차를 통해 별도의 kubecononfig를 생성할 수 있습니다.
-
관리하는 클러스터에 대한 Astra Control 권한을 제한하려고 합니다
-
여러 개의 컨텍스트를 사용하며 설치 중에 구성된 기본 Astra Control kubecononfig를 사용할 수 없거나, 단일 컨텍스트의 제한된 역할은 사용자 환경에서 작동하지 않습니다
절차 단계를 완료하기 전에 관리하려는 클러스터에 대해 다음 사항을 확인해야 합니다.
-
A "지원되는 버전입니다" kubectl이 설치되어 있습니다.
-
Astra Control Service를 사용하여 추가하고 관리하려는 클러스터에 대한 kubectl 액세스
이 절차를 수행하려면 Astra Control Service를 실행하는 클러스터에 액세스할 필요가 없습니다. -
활성 컨텍스트에 대한 클러스터 관리자 권한으로 관리하려는 클러스터에 대한 활성 kubecononfig입니다
-
서비스 계정 생성:
-
라는 서비스 계정 파일을 생성합니다
astracontrol-service-account.yaml
.astracontrol-service-account.yaml
-
서비스 계정 적용:
-
-
Astra Control에서 클러스터를 관리할 수 있는 충분한 권한을 가진 다음 클러스터 역할 중 하나를 생성합니다.
제한된 클러스터 역할이 역할에는 Astra Control에서 관리할 클러스터를 관리하는 데 필요한 최소 권한이 포함되어 있습니다.
-
을 생성합니다
ClusterRole
호출되는 파일(예:astra-admin-account.yaml
.astra-admin-account.yaml
-
(OpenShift 클러스터에만 해당) 의 끝에 다음을 추가합니다
astra-admin-account.yaml
파일: -
클러스터 역할 적용:
-
-
클러스터 역할에 대한 클러스터 역할 바인딩을 서비스 계정에 생성합니다.
-
을 생성합니다
ClusterRoleBinding
파일을 호출했습니다astracontrol-clusterrolebinding.yaml
.astracontrol-clusterrolebinding.yaml
-
클러스터 역할 바인딩을 적용합니다.
-
-
토큰 암호 생성 및 적용:
-
라는 토큰 비밀 파일을 만듭니다
secret-astracontrol-service-account.yaml
.secret-astracontrol-service-account.yaml
-
토큰 암호 적용:
-
-
토큰 암호를 에 추가하여 서비스 계정에 추가합니다
secrets
배열(다음 예제의 마지막 줄):apiVersion: v1 imagePullSecrets: - name: astracontrol-service-account-dockercfg-48xhx kind: ServiceAccount metadata: annotations: kubectl.kubernetes.io/last-applied-configuration: | {"apiVersion":"v1","kind":"ServiceAccount","metadata":{"annotations":{},"name":"astracontrol-service-account","namespace":"default"}} creationTimestamp: "2023-06-14T15:25:45Z" name: astracontrol-service-account namespace: default resourceVersion: "2767069" uid: 2ce068c4-810e-4a96-ada3-49cbf9ec3f89 secrets: - name: astracontrol-service-account-dockercfg-48xhx - name: secret-astracontrol-service-account
-
교체 서비스 계정 암호를 나열합니다
<context>
올바른 설치 상황:출력의 끝은 다음과 유사합니다.
"secrets": [ { "name": "astracontrol-service-account-dockercfg-48xhx"}, { "name": "secret-astracontrol-service-account"} ]
의 각 요소에 대한 인덱스입니다
secrets
어레이는 0으로 시작합니다. 위의 예에서 의 인덱스입니다astracontrol-service-account-dockercfg-48xhx
는 0이고 의 인덱스입니다secret-astracontrol-service-account
1입니다. 출력에서 서비스 계정의 인덱스 번호를 기록해 둡니다. 다음 단계에서는 이 인덱스 번호가 필요합니다. -
다음과 같이 kubecononfig를 생성합니다.
-
을 생성합니다
create-kubeconfig.sh
파일. -
대치
TOKEN_INDEX
다음 스크립트의 시작 부분에 올바른 값이 있습니다.create-kubeconfig.sh
# Update these to match your environment. # Replace TOKEN_INDEX with the correct value # from the output in the previous step. If you # didn't change anything else above, don't change # anything else here. SERVICE_ACCOUNT_NAME=astracontrol-service-account NAMESPACE=default NEW_CONTEXT=astracontrol KUBECONFIG_FILE='kubeconfig-sa' CONTEXT=$(kubectl config current-context) SECRET_NAME=$(kubectl get serviceaccount ${SERVICE_ACCOUNT_NAME} \ --context ${CONTEXT} \ --namespace ${NAMESPACE} \ -o jsonpath='{.secrets[TOKEN_INDEX].name}') TOKEN_DATA=$(kubectl get secret ${SECRET_NAME} \ --context ${CONTEXT} \ --namespace ${NAMESPACE} \ -o jsonpath='{.data.token}') TOKEN=$(echo ${TOKEN_DATA} | base64 -d) # Create dedicated kubeconfig # Create a full copy kubectl config view --raw > ${KUBECONFIG_FILE}.full.tmp # Switch working context to correct context kubectl --kubeconfig ${KUBECONFIG_FILE}.full.tmp config use-context ${CONTEXT} # Minify kubectl --kubeconfig ${KUBECONFIG_FILE}.full.tmp \ config view --flatten --minify > ${KUBECONFIG_FILE}.tmp # Rename context kubectl config --kubeconfig ${KUBECONFIG_FILE}.tmp \ rename-context ${CONTEXT} ${NEW_CONTEXT} # Create token user kubectl config --kubeconfig ${KUBECONFIG_FILE}.tmp \ set-credentials ${CONTEXT}-${NAMESPACE}-token-user \ --token ${TOKEN} # Set context to use token user kubectl config --kubeconfig ${KUBECONFIG_FILE}.tmp \ set-context ${NEW_CONTEXT} --user ${CONTEXT}-${NAMESPACE}-token-user # Set context to correct namespace kubectl config --kubeconfig ${KUBECONFIG_FILE}.tmp \ set-context ${NEW_CONTEXT} --namespace ${NAMESPACE} # Flatten/minify kubeconfig kubectl config --kubeconfig ${KUBECONFIG_FILE}.tmp \ view --flatten --minify > ${KUBECONFIG_FILE} # Remove tmp rm ${KUBECONFIG_FILE}.full.tmp rm ${KUBECONFIG_FILE}.tmp
-
Kubernetes 클러스터에 적용할 명령을 소스 하십시오.
-
-
(선택 사항) kubeconfig의 이름을 클러스터의 의미 있는 이름으로 바꿉니다.
mv kubeconfig-sa YOUR_CLUSTER_NAME_kubeconfig