NTNX>日記

個人的な趣味による Nutanix Community Edition 日記。Japanese のみですみません。

CAPX Kubernetes クラスタで kube-vip LoadBalancer Service を作成してみる。

CAPX(Cluster API Provider Nutanix Cloud Infrastructure)の Workload Cluster で、kube-vip による LoadBalancer Service を作成してみます。

今回の内容です。

下記のあたりが参考になります。

CAPX の Wrokload Cluster の作成

下記の投稿の、「3. 環境設定(clusterctl.yaml)」の設定ファイルに少し追記して、Wrokload Cluster のを作成します。

今回の clusterctl.yaml ファイルは、下記のようになります。

  • 16~18行が追記されています。

gist.github.com

 

Workload Cluster「capx01」を作成し、Pod がすべて起動された状態にしておきます。

# kubectl --kubeconfig=kubeconfig.capx01 get nodes
NAME                     STATUS   ROLES           AGE   VERSION
capx01-kcp-25dt8         Ready    control-plane   63m   v1.26.7
capx01-wmd-2fcfz-zrg6n   Ready    <none>          61m   v1.26.7
# kubectl --kubeconfig=kubeconfig.capx01 get pods -A
NAMESPACE          NAME                                                READY   STATUS    RESTARTS   AGE
calico-apiserver   calico-apiserver-79b487d764-gjxbc                   1/1     Running   0          49m
calico-apiserver   calico-apiserver-79b487d764-mws4h                   1/1     Running   0          49m
calico-system      calico-kube-controllers-588c69c7c6-6rwd8            1/1     Running   0          51m
calico-system      calico-node-8sg4m                                   1/1     Running   0          51m
calico-system      calico-node-gqh6g                                   1/1     Running   0          51m
calico-system      calico-typha-6679489f5c-zn9w6                       1/1     Running   0          51m
calico-system      csi-node-driver-cp4tj                               2/2     Running   0          51m
calico-system      csi-node-driver-nmfqj                               2/2     Running   0          51m
kube-system        coredns-787d4945fb-6n8v9                            1/1     Running   0          63m
kube-system        coredns-787d4945fb-rxwz9                            1/1     Running   0          63m
kube-system        etcd-capx01-kcp-25dt8                               1/1     Running   0          63m
kube-system        kube-apiserver-capx01-kcp-25dt8                     1/1     Running   0          63m
kube-system        kube-controller-manager-capx01-kcp-25dt8            1/1     Running   0          63m
kube-system        kube-proxy-hfl8n                                    1/1     Running   0          63m
kube-system        kube-proxy-x6bzg                                    1/1     Running   0          61m
kube-system        kube-scheduler-capx01-kcp-25dt8                     1/1     Running   0          63m
kube-system        kube-vip-capx01-kcp-25dt8                           1/1     Running   0          63m
kube-system        nutanix-cloud-controller-manager-7946b47574-sjm2b   1/1     Running   0          63m
tigera-operator    tigera-operator-5db468f88d-cjbzk                    1/1     Running   0          53m

 

LoadBalancer Service の作成(kubectl のみ)

動作確認用の Pod を起動します。

# kubectl --kubeconfig=kubeconfig.capx01 run web2048 --image=gowatana/docker-2048
pod/web2048 created

そして、LoadBalancer Service を作成します。

# kubectl --kubeconfig=kubeconfig.capx01 expose pod web2048 --port=80 --target-port=80 --type=LoadBalancer --load-balancer-ip=192.168.12.202
service/web2048 exposed

LoadBalancer Service が作成されました。

# kubectl --kubeconfig=kubeconfig.capx01 get svc web2048
NAME         TYPE           CLUSTER-IP    EXTERNAL-IP      PORT(S)        AGE
web2048      LoadBalancer   172.19.24.4   192.168.12.202   80:30911/TCP   6s

Web ブラウザから EXTERNAL-IP のアドレス(192.168.12.202)にアクセスすると、Pod に接続できるはずです。

Pod と Service を削除しておきます。

# kubectl --kubeconfig=kubeconfig.capx01 delete svc web2048
service "web2048" deleted
kubectl --kubeconfig=kubeconfig.capx01 delete pod web2048
pod "web2048" deleted

LoadBalancer Service の作成(YAML)

この Pod と Service は、下記のような YAML でも作成できます。

web2048.yml

gist.github.com

kubectl で、下記のように適用します。

# kubectl --kubeconfig=kubeconfig.capx01 apply -f web2048.yml

以上。

©2023 gowatana
クリエイティブ・コモンズ・ライセンスこの 作品 は クリエイティブ・コモンズ 表示 4.0 国際 ライセンスの下に提供されています。