관리자 클러스터 만들기(기본)

이 페이지에서는 관리자 클러스터를 만드는 방법을 보여줍니다.

관리 워크스테이션에 SSH를 통해 연결

이전 주제에서는 gkeadm을 사용하여 관리 워크스테이션을 만들었습니다. gkeadm이 관리 워크스테이션에서 구성요소 액세스 서비스 계정을 활성화했습니다.

관리 워크스테이션에 SSH를 통해 연결에 나온 안내에 따라 관리 워크스테이션에 SSH를 통해 연결합니다.

관리자 워크스테이션에서 이 주제의 나머지 단계를 모두 수행합니다.

관리자 클러스터의 고정 IP 구성

관리자 클러스터에 사용할 고정 IP 주소를 지정하려면 admin-cluster-ipblock.yaml이라는 IP 블록 파일을 만듭니다. 이 실습에서는 관리자 클러스터에서 사용할 IP 주소 5개를 지정해야 합니다.

다음은 호스트 5개가 있는 IP 블록 파일의 예시입니다.

blocks:
  - netmask: 255.255.252.0
    gateway: 172.16.23.254
    ips:
    - ip: 172.16.20.10
      hostname: admin-host1
    - ip: 172.16.20.11
      hostname: admin-host2
    - ip: 172.16.20.12
      hostname: admin-host3
    - ip: 172.16.20.13
      hostname: admin-host4
    - ip: 172.16.20.14
      hostname: admin-host5

ips 필드는 IP 주소와 호스트 이름의 배열입니다. 이러한 주소는 GKE On-Prem이 관리자 클러스터 노드에 할당할 IP 주소와 호스트 이름입니다.

IP 블록 파일에서 관리자 클러스터 노드의 서브넷 마스크와 기본 게이트웨이도 지정합니다.

사용자 인증 정보 구성 파일 만들기

vCenter 사용자 계정의 사용자 이름과 비밀번호를 저장하는 admin-creds.yaml이라는 사용자 인증 정보 구성 파일을 만듭니다. 사용자 계정에 관리자 역할 또는 이에 상응하는 권한이 있어야 합니다.

다음은 사용자 인증 정보 구성 파일의 예시입니다.

apiVersion: v1
kind: "CredentialFile"
items:
- name: "vcenter-creds"
  username: "my-vcenter-account"
  password: "U$icUKEW#INE"

GKE On-Prem 구성 파일에서 채워진 필드

관리 워크스테이션을 만들admin-ws-config.yaml이라는 구성 파일을 입력했습니다. gkeadm 명령줄 도구에서 admin-ws-config.yaml 파일을 사용하여 관리 워크스테이션을 만들었습니다.

gkeadm이 관리 워크스테이션을 만들 때 admin-cluster.yaml이라는 또 다른 구성 파일이 생성되었습니다. 관리 워크스테이션에 있는 이 구성 파일은 관리자 클러스터를 만들기 위한 것입니다.

admin-cluster.yaml 파일에는 admin-ws-config.yaml 파일의 특정 필드와 동일하거나 밀접한 관련이 있는 필드 여러 개가 있습니다. 이러한 필드의 값은 이미 admin-cluster.yaml 파일에 채워져 있습니다.

admin-ws-config.yaml 파일에 입력된 값에 따라 admin-cluster.yaml에는 이미 채워진 필드가 있습니다.

vCenter:
  address:
  datacenter:
  cluster:
  network:
    vCenter:
      networkName:
  resourcePool:
  datastore:
  caCertPath:
proxy:
  url:
gcrKeyPath:

admin-cluster.yaml의 다른 여러 필드에는 기본값이나 생성된 값이 채워집니다. 예를 들면 다음과 같습니다.

bundlePath:
loadbalancer
  seesaw:
    cpus:
    memoryMB:
    enableHA:
stackdriver:
  projectID:
  serviceAccountKeyPath:

admin-cluster.yaml 파일에서 채워진 값을 변경하지 않고 그대로 둡니다.

관리자 클러스터 구성 파일의 남은 부분 작성

그런 다음 admin-cluster.yaml 파일의 남은 필드를 작성해야 합니다.

vCenter.credentials.fileRef.path

문자열. 사용자 인증 정보 구성 파일의 경로입니다. 예를 들면 다음과 같습니다.

vCenter:
  credentials:
    fileRef:
      path: "admin-creds.yaml"

vCenter.credentials.fileRef.entry

문자열. vCenter 사용자 계정의 사용자 이름과 비밀번호가 저장된 사용자 인증 정보 구성 파일의 사용자 인증 정보 블록의 이름입니다. 예를 들면 다음과 같습니다.

vCenter:
  credentials:
    fileRef:
      entry: "vcenter-creds"

vCenter.dataDisk

문자열. GKE On-Prem은 관리자 클러스터에 대해 Kubernetes 객체 데이터를 저장할 가상 머신 디스크(VMDK)를 만듭니다. 설치 프로그램에서 자동으로 VMDK를 만들지만 vCenter.dataDisk 필드에 VMDK 이름을 제공해야 합니다. 예를 들면 다음과 같습니다.

vCenter:
  dataDisk: "my-disk.vmdk"
vSAN Datastore: VMDK에 폴더 만들기

vSAN Datastore를 사용하는 경우 VMDK를 폴더에 두어야 합니다. 폴더는 수동으로 미리 만들어야 합니다. 이렇게 하려면 govc를 사용하여 폴더를 만들면 됩니다.

govc datastore.mkdir -namespace=true my-gke-on-prem-folder

그런 다음 vCenter.dataDisk를 폴더가 포함된 VMDK 경로로 설정합니다. 예를 들면 다음과 같습니다.

vDenter:
dataDisk: "my-gke-on-prem-folder/my-disk.vmdk"

network.ipMode.type

문자열. "static"으로 설정합니다.

network:
  ipMode:
    type: "static"

network.ipBlockFilePath

문자열. 고정 IP 주소를 사용 중이므로 고정 IP 구성의 설명대로 IP 블록 파일이 있어야 합니다. network.ipBlockFilePath를 IP 블록 파일의 경로로 설정합니다. 예를 들면 다음과 같습니다.

network:
  ipBlockFilePath: "/my-config-directory/admin-cluster-ipblock.yaml"

network.serviceCIDRnetwork.podCiDR

문자열. 관리자 클러스터에는 서비스에 사용할 IP 주소 범위와 pod에 사용할 IP 주소 범위가 있어야 합니다. 이러한 범위는 network.serviceCIDRnetwork.podCIDR 필드로 지정됩니다. 이러한 필드는 기본값으로 채워집니다. 필요에 따라 채워진 값을 원하는 값으로 변경할 수 있습니다.

서비스 및 pod 범위는 겹치지 않아야 합니다. 또한 서비스 및 pod 범위는 클러스터의 노드에 사용되는 IP 주소와 겹치지 않아야 합니다.

예:

network:
  serviceCIDR: "10.96.232.0/24"
  podCIDR: "192.168.0.0/16"

loadBalancer.vips

문자열. loadBalancer.vips.controlPlaneVIP의 값을 관리자 클러스터의 Kubernetes API 서버에 부하 분산기에서 구성한 IP 주소로 설정합니다. loadBalancer.vips.addonsVIP의 값을 부하분산기에 부가기능용으로 구성하기 위해 선택한 IP 주소로 설정합니다. 예를 들면 다음과 같습니다.

loadBalancer:
  vips:
    controlplaneVIP: "203.0.113.3"
    addonsVIP: "203.0.113.4"

loadBalancer.kind

문자열. "Seesaw"으로 설정합니다. 예를 들면 다음과 같습니다.

loadBalancer:
  kind: "Seesaw"

loadBalancer.seesaw.ipBlockFilePath

문자열. Seesaw VM의 IP 블록 파일 경로로 설정합니다.

예를 들면 다음과 같습니다.

loadbalancer:
  seesaw:
    ipBlockFilePath: "admin-seesaw-ipblock.yaml"

loadBalancer.seesaw.vird

정수. Seesaw VM의 가상 라우터 식별자입니다. 이 ID는 VLAN 내에서 고유해야 합니다. 유효한 범위는 1~255입니다. 예를 들면 다음과 같습니다.

loadBalancer:
  seesaw:
    vrid: 125

loadBalancer.seesaw.masterIP

문자열. Seesaw VM에서 공지하는 사용자가 선택한 IP 주소입니다. 예를 들면 다음과 같습니다.

loadBalancer:
  seesaw:
    masterIP: "172.16.20.21"

loadBalancer.seesaw.enableHA

부울. false로 설정합니다. 예를 들면 다음과 같습니다.

loadBalancer:.
  seesaw:
    enableHA: false

proxy.url

문자열. 관리 워크스테이션 구성 파일에 proxyURL 값을 입력하면 이 필드는 이미 동일한 값으로 채워져 있습니다.

관리자 클러스터와 사용자 클러스터가 관리 워크스테이션에서 다른 프록시 뒤에 있으면 클러스터에서 사용할 프록시 서버의 HTTP 주소로 설정합니다. 포트 번호가 스키마의 기본 포트와 동일하더라도 포트 번호를 포함해야 합니다. 예를 들면 다음과 같습니다.

proxy:
  url: "http://my-proxy.example.local:80"

proxy.noProxy

문자열. IP 주소, IP 주소 범위, 호스트 이름, 프록시 서버를 거치지 않아야 하는 도메인 이름의 목록입니다. GKE On-Prem이 이러한 주소, 호스트 또는 도메인 중 하나에 요청을 보내면 해당 요청이 직접 전송됩니다. 예를 들면 다음과 같습니다.

proxy:
  noProxy: "10.151.222.0/24, my-host.example.local,10.151.2.1"

stackdriver.clusterLocation

문자열. 로그를 저장할 Google Cloud 리전입니다. 온프렘 데이터 센터와 가까운 리전을 선택하는 것이 좋습니다. 예를 들면 다음과 같습니다.

stackdriver:
  clusterLocation: "us-central1"

stackdriver.enableVPC

부울. 클러스터의 네트워크가 VPC로 제어되는 경우 stackdriver.enableVPCtrue로 설정합니다. 이렇게 하면 모든 원격 분석이 Google의 제한된 IP 주소를 통해 이동합니다. 그렇지 않으면 false로 설정합니다. 예를 들면 다음과 같습니다.

stackdriver:
  enableVPC: false

관리자 클러스터 구성 파일의 추가 필드

관리자 클러스터 구성 파일에는 이 주제에 표시된 필드 외에 여러 필드가 있습니다. 구성 파일의 필드에 대한 자세한 설명은 관리자 클러스터 구성 파일을 참조하세요.

관리자 클러스터 구성 파일 유효성 검사

관리자 클러스터 구성 파일을 수정한 후 gkectl check-config를 실행하여 파일이 유효하고 클러스터 생성에 사용될 수 있는지 확인합니다.

gkectl check-config --config admin-cluster.yaml

명령어로 FAILURE 메시지가 반환될 경우 문제를 해결하고 파일을 다시 검사해야 합니다.

시간이 오래 걸리는 검사를 건너뛰려면 --fast 플래그를 전달합니다. 개별 검사를 건너뛰려면 --skip-validation-xxx 플래그를 사용합니다. check-config 명령어에 대해 자세히 알아보려면 실행 전 검사 실행을 참조하세요.

gkectl prepare 실행

gkectl prepare를 실행하여 vSphere 환경을 초기화합니다.

gkectl prepare --config admin-cluster.yaml

부하 분산기 만들기

Seesaw 부하 분산기의 VM을 만들고 구성합니다.

gkectl create loadbalancer --config admin-cluster.yaml

관리자 클러스터 만들기

관리자 클러스터를 만듭니다.

gkectl create admin --config admin-cluster.yaml