개인 키를 사용하여 vmware-system-user
로 TKG 클러스터 노드에 SSH를 통해 연결할 수 있습니다.
SSH를 통해 vmware-system-user
사용자로 TKG 클러스터 노드에 연결할 수 있습니다. SSH 개인 키가 포함된 암호는 CLUSTER-NAME-ssh
라고 이름이 지정됩니다. Kubectl을 사용하여 TKG 클러스터 암호 얻기의 내용을 참조하십시오.
개인 키를 사용하여 SSH를 통해 TKG 클러스터 노드에 연결하려면 감독자에서 점프 박스(jump box) vSphere 포드를 생성합니다.
프로시저
- 감독자에 연결합니다.
- NAMESPACE라는 환경 변수를 생성합니다. 이 값은 대상 TKG 클러스터가 프로비저닝된 vSphere 네임스페이스의 이름입니다.
export NAMESPACE=VSPHERE-NAMESPACE
- Tanzu Kubernetes 클러스터가 프로비저닝된 vSphere 네임스페이스로 컨텍스트를 전환합니다.
kubectl config use-context $NAMESPACE
-
TKG-CLUSTER-NAME-ssh
암호 개체를 확인합니다.
- Docker Hub 레지스트리 자격 증명 암호를 생성합니다.
기본적으로 vSphere 포드(PhotonOS)를 생성하는 데 사용되는 이미지는 Docker Hub에서 끌어옵니다. 이미지를 끌어오려면 자격 증명 암호가 필요할 수 있습니다.
개인 레지스트리 자격 증명 암호 생성의 내용을 참조하십시오.
- 다음
jumpbox.yaml
을 사용하여 vSphere 포드를 생성합니다.
namespace
값
YOUR-NAMESPACE
를 대상 클러스터가 프로비저닝된
vSphere 네임스페이스로 바꿉니다.
secretName
값
YOUR-CLUSTER-NAME
-ssh를 대상 클러스터의 이름으로 바꿉니다.
apiVersion: v1
kind: Pod
metadata:
name: jumpbox
namespace: YOUR-NAMESPACE #REPLACE
spec:
containers:
- image: "photon:3.0"
name: jumpbox
command: [ "/bin/bash", "-c", "--" ]
args: [ "yum install -y openssh-server; mkdir /root/.ssh; cp /root/ssh/ssh-privatekey /root/.ssh/id_rsa; chmod 600 /root/.ssh/id_rsa; while true; do sleep 30; done;" ]
volumeMounts:
- mountPath: "/root/ssh"
name: ssh-key
readOnly: true
resources:
requests:
memory: 2Gi
volumes:
- name: ssh-key
secret:
secretName: YOUR-CLUSTER-NAME-ssh #REPLACE
imagePullSecrets:
- name: regcred
-
jumpbox.yaml
규격을 적용하여 포드를 배포합니다.
kubectl apply -f jumpbox.yaml
- 포드가 실행 중인지 확인합니다.
NAME READY STATUS RESTARTS AGE
jumpbox 1/1 Running 0 3h9m
참고:
vSphere 네임스페이스의 vCenter에도 jumpbox 포드가 보여야 합니다.
- 다음 명령 집합을 실행하여 대상 클러스터 노드의 IP 주소를 사용하여 환경 변수를 생성합니다.
- 대상 가상 시스템의 이름을 가져옵니다.
kubectl get virtualmachines
- 값이 대상 노드의 이름인 환경 변수
VMNAME
을 생성합니다.
export VMNAME=NAME-OF-THE-VIRTUAL-MACHINE
- 값이 대상 노드 VM의 IP 주소인 환경 변수
VMIP
를 생성합니다.
export VMIP=$(kubectl -n $NAMESPACE get virtualmachine/$VMNAME -o jsonpath='{.status.vmIp}')
- 다음 명령을 실행하여 점프 박스(jump box) 포드를 사용하여 SSH를 통해 클러스터 노드에 연결합니다.
kubectl exec -it jumpbox /usr/bin/ssh vmware-system-user@$VMIP
중요: 컨테이너를 생성하고 소프트웨어를 설치하는 데 약 60초가 걸립니다. "error executing command in container: container_linux.go:370: starting container process caused: exec: "/usr/bin/ssh": stat /usr/bin/ssh: no such file or directory"가 표시되면 몇 초 후에 명령을 다시 시도합니다.
- yes를 입력하여 호스트의 신뢰성을 확인합니다.
The authenticity of host '10.249.0.999 (10.249.0.999)' can't be established.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '10.249.0.999' (ECDSA) to the list of known hosts.
Welcome to Photon 3.0
- 대상 노드에
vmware-system-user
로 로그인되어 있는지 확인합니다.
예를 들어, 다음 출력은 사용자가 제어부 노드에 시스템 사용자로 로그인했음을 나타냅니다.
vmware-system-user@tkg-cluster-1-control-plane-66tbr [ ~ ]$
- 노드에서 원하는 작업을 수행합니다.
주의: 노드에서 kubelet 다시 시작과 같은 특정 작업을 수행하려면
sudo
또는
sudo su
를 사용해야 할 수 있습니다.
- 완료되면 exit를 입력하여 vSphere 포드의 SSH 세션에서 로그아웃합니다.
- 포드를 삭제하려면
kubectl delete pod jumpbox
명령을 실행합니다.
경고: 보안을 위해 작업을 완료한 후에는 jumpbox 포드를 삭제하는 것이 좋습니다. 필요하면 나중에 다시 생성할 수 있습니다.