개인 키를 사용하여 vmware-system-user
로 Tanzu Kubernetes 클러스터 노드에 SSH를 통해 연결할 수 있습니다.
SSH를 통해 vmware-system-user
사용자로 Tanzu Kubernetes 클러스터 노드에 연결할 수 있습니다. SSH 개인 키가 포함된 암호는 CLUSTER-NAME-ssh
라고 이름이 지정됩니다. 자세한 내용은 Tanzu Kubernetes 클러스터 암호 얻기의 내용을 참조하십시오.
개인 키를 사용하여 SSH를 통해 Tanzu Kubernetes 클러스터 노드에 연결하려면 감독자 클러스터에서 점프 박스(jump box) vSphere 포드를 생성합니다.
프로시저
- 감독자 클러스터에 연결합니다.
- NAMESPACE라는 환경 변수를 생성합니다. 이 값은 대상 Tanzu Kubernetes 클러스터가 프로비저닝된 vSphere 네임스페이스의 이름입니다.
export NAMESPACE=VSPHERE-NAMESPACE
- Tanzu Kubernetes 클러스터가 프로비저닝된 vSphere 네임스페이스로 컨텍스트를 전환합니다.
kubectl config use-context $NAMESPACE
-
TKGS-CLUSTER-NAME-ssh
암호 개체를 확인합니다.
- 다음
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
-
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@tkgs-cluster-1-control-plane-66tbr [ ~ ]$
- 노드에서 원하는 작업을 수행합니다.
주의: 노드에서 kubelet 다시 시작과 같은 특정 작업을 수행하려면
sudo
또는
sudo su
를 사용해야 할 수 있습니다.
- 완료되면 exit를 입력하여 vSphere 포드의 SSH 세션에서 로그아웃합니다.
- 포드를 삭제하려면
kubectl delete pod jumpbox
명령을 실행합니다.
경고: 보안을 위해 작업을 완료한 후에는 jumpbox 포드를 삭제하는 것이 좋습니다. 필요하면 나중에 다시 생성할 수 있습니다.