[번역] Tanzu Kubernetes Grid from the tkg Command Line Interface

출처 : https://cormachogan.com/2020/07/06/tanzu-kubernetes-grid-from-the-tkg-command-line-interface/

vSphere with Kubernetes를 살펴보고, 간단한 매니페스트 파일이 있는 네임스페이스에 TKG(Tanzu Kubernetes Grid) "게스트" 클러스터를 어떻게 배치할 수 있는지 살펴본 후, 이제는 고객이 vSphere 인프라 위에 TKG 클러스터를 배치할 수 있는 다른 방법을 살펴봐야 할 때라고 생각했다. 즉, vSphere with Kubernetes 또는 VMware Cloud Foundation(VCF) 없이 TKG를 배포한다. 이 게시물에서는 TKG 관리 클러스터를 먼저 배치하기 위한 tkg 코맨드-라인 도구를 살펴보고, 이 툴을 사용하면 워크로드 TKG 클러스터를 추가로 구축하는 것이 얼마나 간단한지 알 수 있다.

tanzu-logo.png

현재, TKG에는 이미 많은 훌륭한 게시물이 있다. 다음은 William Lam(기술 예고편)에서 나온 것이다. 여기 또 다른 Chip ZollerKendrick Coleman의 멋진 것이 있다. tkg CLI를 통해 vSphere와 AWS 모두에 구축할 수 있지만, 이 게시물에서만 vSphere에 초점을 맞추겠다.

Cluster-API 및 종류

잡초를 너무 많이 제거하지 않고, 이 배치 메커니즘은 Cluster-API, 즉 "클러스터 생성, 구성 및 관리에 선언적인 쿠베르네츠 스타일의 API를 가져오는 쿠베르네츠 프로젝트"에 크게 의존한다. 간단한 Kubernetes 클러스터가 먼저 일어서고, 이 클러스터는 Cluster-API를 통해 보다 실질적인 Kubernetes 클러스터를 구축하는 데 사용되며, TKG Management 클러스터인 경우. 단순한 쿠베르네테스 클러스터는 Kind를 기반으로 한다. Kind는 도커 컨테이너 "노드"를 사용하여 로컬 쿠베르네츠 클러스터를 실행하는 도구다. 다음과 같은 시각화의 변형은 그것이 어떻게 서로 연결되는지 이해하는 데 많은 도움이 되었기 때문에 여기서 한 번 더 공유하겠다.

clusterapi.png

1. 사전 요구사항

TKG를 구축하기 위해 랩톱이나 데스크톱 또는 VM을 사용할 수 있어야 한다는 구상이다. 어떤 장치를 사용하기로 결정하든 클러스터를 성공적으로 배포하려면 다음과 같은 구성 요소가 필요하다.

  • 단말기에 Dicker를 설치해야 한다. 이것을 하는 데는 여러 가지 방법이 있다.
  • tkg CLI를 설치해야 한다. 이는 MyVMware에서 이용할 수 있다.
  • kubectl 바이너리도 이용할 수 있어야 할 것이다. 버전은 배치되는 TKG 클러스터의 버전에 따라 달라진다. 이것은 설치 시에 확인되고 보고된다.
  • 로드 밸런서/HA 프록시용 및 TKG 클러스터 VM용 이미지 2개가 필요하다. 이 기능은 VMware에서 제공되며, TKG를 배포할 vSphere 환경에 OVA를 배포하고 템플릿으로 변환한다. 이러한 기능은 MyVMware에서도 사용할 수 있다. 사용하는 tkg CLI 버전과 일치하는 올바른 OVA 버전을 사용하는지 확인한다.
  • SSH 공용 키의 복사본을 근처에 보관하십시오(대개 .ssh/id_rsa.pub 아래의 HOME 폴더에 있음 TKG 노드에는 비밀번호 인증이 설정되어 있지 않으므로 노드에 SSH를 사용할 수 있는 유일한 방법이다.

2. TKG 관리 클러스터 구축

tkg 명령줄 도구를 사용하여 관리 클러스터 배포를 시작하십시오. tkg init 명령은 부트스트랩 클러스터 생성을 시작한다. -u 옵션은 UI를 실행하여 인프라 유형을 선택할 수 있으며 관리 클러스터 세부 정보를 추가하십시오.

$ tkg version
Client:
        Version: v1.1.2
        Git commit: c1db5bed7bc95e2ba32cf683c50525cdff0f2396

$ tkg init -u

Logs of the command execution can also be found at: /tmp/tkg-20200702T123104396946940.log

Validating the pre-requisites...
Serving kickstart UI at http://127.0.0.1:8080

이 때 홈 폴더에 .tkg 폴더가 생성된다. 여기에는 부트스트랩 프로세스에서 사용할 여러 구성 요소가 포함되어 있다. 지금은 구성 YAML 파일을 이용해 TKG를 배치하는 방법도 있지만 UI를 통해 어떻게 하는지도 먼저 살펴보겠다. 데스크톱/랩톱/VM에서 브라우저를 열고 위에 표시된 것처럼 http:///127.0.0.1:8080을 가리키기만 한다.

TKG 관리 클러스터를 성공적으로 구축하기 위해 UI에서 제공해야 할 다양한 입력 정보를 검토해보자. 첫 번째 단계는 TKG가 배치될 인프라 유형을 선택하는 것이다. 현재 옵션으로는 vSphere와 AWS가 있다. 우리는 vSphere를 구축할 것이다.

1-TKG-Welcome.png

다음으로 vSphere에 대한 세부 정보, 즉 vCenter Server, 사용자 이름 및 암호를 추가한다. 입력하고, connect를 클릭하여 데스크톱/노트북/VM에서 환경에 연결할 수 있는지 확인한다.

2-TKG-IaaS-Provider.png

주의 사항 – vSphere 7.0 환경에 TKG를 배포하려고 한다. 이것은 지원되지 않으며, 다음의 메시지에는 분명히 다음과 같은 내용이 기재되어 있다. 작성 당시 7.0은 TKG 독립형으로 지원되는 플랫폼이 아니다. TKG 클러스터를 vSphere 7과 함께 사용하려면 vSphere with Kubernetes의 컨텍스트에서 TKG 클러스터를 사용해야 한다.

3-TKG-vSphere-7-warning.png

이 창의 마지막 단계는 TKG 관리 클러스터를 프로비저닝할 vSphere 인벤토리에서 데이터 센터를 선택하고 공개 키를 추가하여 TKG 노드에 SSH를 허용한다.

5-TKG-IaaS-post-connection-.png

Management Cluster Settings으로 이동하려면 Next를 클릭한다. 여기서 인스턴스 유형을 선택할 수 있다. Development를 선택하면 단일 제어부 노드와 단일 작업자 노드가 배치된다. Production이 선택되면 제어부 노드 3개와 작업자 노드 1개가 배포된다. 이때 관리 클러스터 이름을 추가하고(선택적으로) API Server 로드 밸런서(HA Proxy라고 함)를 선택한다. HA Proxy는 위의 필수 구성 요소에 나열된 템플릿으로 변환된 가져온 OVA입니다. 다른 버전의 TKG는 서로 다른 버전의 OVA에 의존하므로 OVA가 TKG 릴리스와 호환되는지 확인한다. 마지막으로 작업자 노드와 HA Proxy 리소스(또는 배포하려는 VM 크기를 선택)를 선택한다.

6-TKG-Mgmt-cluster-settings.png

다음 화면에서는 VM 폴더 및 데이터스토어와 같은 vSphere 리소스는다. 선택하고 Next를 클릭한다.

7-TKG-resources.png

다음으로, Kubernetes 노드에 대한 VM 네트워크를 선택한다. 이 네트워크는 DHCP를 사용할 수 있어야 하며 데스크톱/노트북/VM(TKG를 배포할 위치)에서도 연결할 수 있어야 한다. 이것은 나를 포함한 몇몇 사람들을 밖으로 끌어냈다. 클러스터 포드 및 서비스 CIDR은 기본값으로 유지될 수 있다.

8-TKG-k8s-network.png

마지막이지만 중요한 것은 Kubernetes 노드 OS 이미지의 OVA 템플릿을 선택한다. 이 OVA는 필수 구성 요소 단계에서 템플릿으로 다운로드, 배포 및 변환한 두 번째 OVA입니다. 마법사를 완료하려면 Next를 클릭한다.

9-TKG-OS-image.png

이제 구성을 검토한다.

10-TKG-Review-config.png

그리고 모든 것이 좋아 보이면 마지막 단계를 클릭하여 TKG 관리 클러스터를 구축하면 된다.

11-TKG-Confirm-Settings.png

12-TKG-Deploy-Start.png

그리고 이제 UI는 TKG Management Cluster 서기에 관련된 다양한 단계를 표시한다. 앞서 말한 것처럼 먼저 Kind 클러스터(도커를 사용하는 쿠베르네츠)가 일어선다. 그런 다음 vSphere에서 TKG 관리 클러스터를 불러오기 위해 선언적인 Kubernetes 스타일 API 요청을 하는 데 사용된다. 먼저 Kind 부트 스트랩 클러스터가 구성되어 있다.

13-TKG-Step-2-Logs.png

이때 데스크톱/랩톱/VM에서 Docker 명령을 실행하여 부트스트랩(kind) 클러스터를 확인한다.

$ docker ps
CONTAINER ID        IMAGE                                                COMMAND                 \
 CREATED             STATUS              PORTS                       NAMES

5192939d9c20        registry.tkg.vmware.run/kind/node:v1.18.3_vmware.1   "/usr/local/bin/entr…"  \
 13 minutes ago      Up 13 minutes       127.0.0.1:46861->6443/tcp   tkg-kind-brush57avu7rf0bd8ed0-control-plane

3단계는 부트스트랩 클러스터에 제공자(provider)를 설치하는 것이다. 제공자는 서로 다른 인프라에서 Cluster-API를 실행하는 데 필요한 구성 요소라고 생각할 수 있으며, 이 경우에는 vSphere가 해당된다.