베어메탈용 GKE는 OpenStack Kubernetes 클라우드 제공업체를 지원합니다. 이 기능을 사용하면 OpenStack Load Balancing as a Service(LBaaS) 리소스를 자동으로 프로비저닝할 수 있습니다. 이러한 리소스는 MetalLB 리소스를 바꿔서 베어메탈용 Anthos 클러스터에서 실행되는 서비스를 다른 OpenStack 테넌트 또는 OpenStack 네트워크 외부에 쉽게 노출시킬 수 있습니다.
시작하기 전에
OpenStack LBaaS 리소스를 사용해야 하는 Anthos 클러스터를 결정합니다.
구성하려는 머신에 대해 액세스 권한이 있는지 확인합니다.
Kubernetes 문서에서 cloud-controller-manager 실행에 대해 자세히 알아보세요.
클러스터의 구성 파일 변경
OpenStack Kubernetes 클라우드 제공업체에서는 kubelet
이 다음 인수를 사용하여 모든 노드에서 실행되어야 합니다.
cloud-provider: "external"
Anthos 클러스터가 이 요구사항을 쉽게 충족하도록 하려면 baremetal.cluster.gke.io/external-cloud-provider: "true"
주석을 초기화하기 전 메타데이터 섹션 아래에 있는 클러스터의 구성 파일에 추가합니다.
구성 파일의 항목은 다음 예시와 비슷하게 표시됩니다.
apiVersion: baremetal.cluster.gke.io/v1
kind: Cluster
metadata:
name: cluster1
namespace: cluster-cluster1
annotations:
baremetal.cluster.gke.io/external-cloud-provider: "true"
spec:
..
다른 클라우드 플랫폼의 일부 클라우드 제공업체는 providerID
에 특별한 형식이 필요합니다. 베어메탈용 GKE는 각 머신에 대해 providerID
를 생성합니다. 형식은 baremetal://MACHINE_ADDRESS
와 같습니다. 다른 providerID
가 필요하면 IP 주소와 함께 각 노드에 대해 항목을 지정할 수 있습니다. 구성은 다음과 같습니다.
apiVersion: baremetal.cluster.gke.io/v1
kind: Cluster
metadata:
name: cluster1
namespace: cluster-cluster1
spec:
clusterNetwork:
pods:
cidrBlocks:
- 192.168.0.0/16
services:
cidrBlocks:
- 10.96.0.0/20
controlPlane:
nodePoolSpec:
nodes:
- address: 10.200.0.1
+ providerID: some-prefix://unique-string
- address: 10.200.0.2
+ providerID: some-prefix2://unique-string2
...
---
apiVersion: baremetal.cluster.gke.io/v1
kind: NodePool
metadata:
name: nodepool1
namespace: cluster-admin1
spec:
clusterName: admin1
nodes:
- address: 172.18.0.2
+ providerID: some-prefix3://unique-string3
구성 파일을 수정한 후 다음 명령어를 사용하여 클러스터를 초기화합니다.
bmctl create cluster -c cluster1
이제 cluster1
의 모든 노드가 필요한 인수 cloud-provider:
"external"
로 실행됩니다.
또한 모든 노드에서 다음 필드가 해당 구성 파일에 추가됩니다.
taints:
- effect: NoSchedule
key: node.cloudprovider.kubernetes.io/uninitialized
value: "true"
이러한 필드는 이 클러스터에서 클라우드 제공업체를 초기화한 후에 삭제됩니다.
kubelet
은 제공된 providerID
(이 노드에 지정된 경우)로 실행됩니다.