1.10. 클러스터 프록시 애드온 활성화
일부 환경에서는 관리형 클러스터가 방화벽 뒤에 있으며 hub 클러스터에서 직접 액세스할 수 없습니다. 액세스할 수 있도록 관리형 클러스터의 kube-api
서버에 액세스하도록 프록시 애드온을 설정하여 보다 안전한 연결을 제공할 수 있습니다.
필수 액세스: 편집기
hub 클러스터 및 관리 클러스터에 대한 클러스터 프록시 애드온을 구성하려면 다음 단계를 완료하십시오.
- Red Hat Advanced Cluster Management for Kubernetes hub 클러스터에서 클러스터 프록시 애드온을 활성화합니다. 자세한 내용은 고급 구성을 참조하십시오.
다음 단계를 완료하여 관리 클러스터
kube-apiserver
에 액세스하도록kubeconfig
파일을 구성합니다.관리 클러스터에 유효한 액세스 토큰을 제공합니다. 기본 서비스 계정이 default 네임스페이스에 있다고 가정하여 서비스 계정의 해당 토큰을 사용할 수 있습니다.
-
관리 클러스터의 컨텍스트를 사용하고 있는지 확인합니다.
managed-cluster.kubeconfig
라는 파일이 관리 클러스터의kubeconfig
파일이라고 가정합니다. 팁:--kubeconfig=managed-cluster.kubeconfig
가 있는 명령은 관리형 클러스터에서 실행되며 이 프로세스의 모든 명령은 동일한 콘솔에서 실행되어야 합니다. 다른 콘솔에서 명령을 실행하지 마십시오. 다음 명령을 실행하여 Pod에 액세스할 수 있는 서비스 계정에 역할을 추가합니다.
oc create role -n default test-role --verb=list,get --resource=pods --kubeconfig=managed-cluster.kubeconfig oc create rolebinding -n default test-rolebinding --serviceaccount=default:default --role=test-role --kubeconfig=managed-cluster.kubeconfig
다음 명령을 실행하여 서비스 계정 토큰의 보안을 찾습니다.
oc get secret -n default --kubeconfig=managed-cluster.kubeconfig | grep default-token
다음 명령을 실행하여 토큰을 복사합니다.
export MANAGED_CLUSTER_TOKEN=$(kubectl --kubeconfig=managed-cluster.kubeconfig -n default get secret <default-token> -o jsonpath={.data.token} | base64 -d)
default-token
을 보안 이름으로 교체합니다.
-
관리 클러스터의 컨텍스트를 사용하고 있는지 확인합니다.
Red Hat Advanced Cluster Management hub 클러스터에서
kubeconfig
파일을 구성합니다.다음 명령을 실행하여 hub 클러스터에서 현재
kubeconfig
파일을 내보냅니다.oc config view --minify --raw=true > cluster-proxy.kubeconfig
편집기로
서버
파일을 수정합니다. 이 예제에서는sed
를 사용할 때 명령을 사용합니다. OSX를 사용하는 경우별칭 sed=gsed
를 실행합니다.export TARGET_MANAGE_CLUSTER=<cluster1> export NEW_SERVER=https://$(oc get route -n open-cluster-management cluster-proxy-addon-user -o=jsonpath='{.spec.host}')/$TARGET_MANAGE_CLUSTER sed -i'' -e '/server:/c\ server: '"$NEW_SERVER"'' cluster-proxy.kubeconfig export CADATA=$(oc get configmap -n openshift-service-ca kube-root-ca.crt -o=go-template='{{index .data "ca.crt"}}' | base64) sed -i'' -e '/certificate-authority-data:/c\ certificate-authority-data: '"$CADATA"'' cluster-proxy.kubeconfig
cluster1
을 액세스하려는 관리형 클러스터 이름으로 교체합니다.다음 명령을 입력하여 원래 사용자 자격 증명을 삭제합니다.
sed -i'' -e '/client-certificate-data/d' cluster-proxy.kubeconfig sed -i'' -e '/client-key-data/d' cluster-proxy.kubeconfig sed -i'' -e '/token/d' cluster-proxy.kubeconfig
서비스 계정의 토큰을 추가합니다.
sed -i'' -e '$a\ token: '"$MANAGED_CLUSTER_TOKEN"'' cluster-proxy.kubeconfig
다음 명령을 실행하여 대상 관리 클러스터의 대상 네임스페이스에 있는 모든 Pod를 나열합니다.
oc get pods --kubeconfig=cluster-proxy.kubeconfig -n <default>
default
네임스페이스를 사용하려는 네임스페이스로 바꿉니다.
이제 hub 클러스터가 관리 클러스터의 kube-api
와 통신합니다.