1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【GitOps番外編】Cluster APIを試す

Last updated at Posted at 2022-03-21

背景

Tanzuを業務で少し触っているのですが、TanzuCluster APIを利用しているので、TanzuCluster APIへの理解を深めるため、本記事で軽く検証することにした。

環境

  • AWS EC2
    • Docker 20.10.13
    • Ubuntu 20.04.3
    • kind v0.12.0
    • clusterctl 1.1.3

手順

Cluster APIのドキュメントを参考に早速試してみる。

Kubectlをインストール

curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl
kubectl version --client

Kindをインストール

curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.12.0/kind-linux-amd64
chmod +x ./kind
sudo mv ./kind /usr/local/bin/

Kindの設定ファイルを作成する

cat > kind-cluster-with-extramounts.yaml <<EOF
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
nodes:
- role: control-plane
  extraMounts:
    - hostPath: /var/run/docker.sock
      containerPath: /var/run/docker.sock
EOF

上記で作成したKindの設定ファイルをもとに、Kindクラスタを作成する

kind create cluster --config kind-cluster-with-extramounts.yaml

clusterctlをインストール

curl -L https://github.com/kubernetes-sigs/cluster-api/releases/download/v1.1.3/clusterctl-linux-amd64 -o clusterctl
chmod +x ./clusterctl
sudo mv ./clusterctl /usr/local/bin/clusterctl
clusterctl version

管理クラスタを初期化する

今回はDockerを利用するので、下記のコマンドを実行する

clusterctl init --infrastructure docker

ワークロードクラスタを作成用のyamlファイルを作成する

clusterctl generate cluster capi-quickstart --flavor development \
  --kubernetes-version v1.23.3 \
  --control-plane-machine-count=3 \
  --worker-machine-count=3 \
> capi-quickstart.yaml

作成したyamlファイルをもとにワークロードクラスタを作成する

kubectl apply -f capi-quickstart.yaml

作成されたワークロードクラスタを確認する

capi-quickstartという名前のクラスタが作成されている

kind get clusters
capi-quickstart
kind

下記のコマンドでも確認可能。

kubectl get cluster
NAME              PHASE         AGE   VERSION
capi-quickstart   Provisioned   10m

ワークロードクラスタのkubeconfigを取得する

clusterctl get kubeconfig capi-quickstart > capi-quickstart.kubeconfig

取得したkubeconfigでpodの状態を確認する

 kubectl get po -A --kubeconfig capi-quickstart.kubeconfig
出力
NAMESPACE     NAME                                                          READY   STATUS    RESTARTS   AGE
kube-system   coredns-64897985d-f2xc5                                       0/1     Pending   0          2m53s
kube-system   coredns-64897985d-mr6pj                                       0/1     Pending   0          2m53s
kube-system   etcd-capi-quickstart-control-plane-tz29v                      1/1     Running   0          102s
kube-system   etcd-capi-quickstart-control-plane-v7zrq                      1/1     Running   0          2m59s
kube-system   kube-apiserver-capi-quickstart-control-plane-tz29v            1/1     Running   0          92s
kube-system   kube-apiserver-capi-quickstart-control-plane-v7zrq            1/1     Running   0          2m59s
kube-system   kube-controller-manager-capi-quickstart-control-plane-tz29v   1/1     Running   0          32s
kube-system   kube-controller-manager-capi-quickstart-control-plane-v7zrq   1/1     Running   0          2m59s
kube-system   kube-proxy-8pllk                                              1/1     Running   0          2m14s
kube-system   kube-proxy-9wzl8                                              1/1     Running   0          2m2s
kube-system   kube-proxy-dj5w7                                              1/1     Running   0          2m2s
kube-system   kube-proxy-kn5dt                                              1/1     Running   0          112s
kube-system   kube-proxy-mzbhk                                              1/1     Running   0          2m53s
kube-system   kube-scheduler-capi-quickstart-control-plane-tz29v            1/1     Running   0          102s
kube-system   kube-scheduler-capi-quickstart-control-plane-v7zrq            1/1     Running   0          3m

CLEAN UP

ワークロードクラスタの削除

kubectl delete cluster capi-quickstart

管理クラスタの削除

kind delete cluster

最後に

本記事ではCluster apiを試して、管理クラスタからワークロードクラスタを払い出すまでを実施してみた。次は、Cluster apiGitOpsを組み合わせて、Cluster の管理をGitで行ってみたい。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?