クラスタを作成する
Kubernetesクラスタを作成するには、いくつかの方法があります。ここでは、最も一般的なkubeadmを使った方法を紹介します。
kubeadm
kubeadmはKubernetesのクラスタを構築するためのツールです。このツールを使うことで、簡単にKubernetesクラスタを構築することができます。
実施環境
インストール方法
- aptのパッケージ一覧を更新し、Kubernetesのaptリポジトリーを利用するのに必要なパッケージをインストールします:
| sudo apt-get update
# apt-transport-httpsはダミーパッケージの可能性があります。その場合、そのパッケージはスキップできます
sudo apt-get install -y apt-transport-https ca-certificates curl gpg
|
- Kubernetesパッケージリポジトリーの公開署名キーをダウンロードします。
| sudo mkdir -p -m 755 /etc/apt/keyrings
curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.31/deb/Release.key | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg
|
- Kubernetesのaptリポジトリーを追加します。
| # これにより、/etc/apt/sources.list.d/kubernetes.listにある既存の設定が上書きされます
echo 'deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.31/deb/ /' | sudo tee /etc/apt/sources.list.d/kubernetes.list
|
- aptのパッケージ一覧を更新し、kubeadmをインストールします。
| sudo apt-get update
sudo apt-get install -y kubelet kubeadm kubectl
sudo apt-mark hold kubelet kubeadm kubectl
|
クラスタの作成
- swapをoffにします。
- kubeadm initコマンドを実行します。
| sudo kubeadm init --pod-network-cidr=<CIDR>
|
ポッドネットワークCIDR
<CIDR>
には、クラスタ内のポッドネットワークのCIDRを指定します。例えば、192.168.0.0/16
です。
他によく使われるのは、10.244.0.0/16
です。
-
クラスタの設定をユーザーのホームディレクトリにコピーします。
| mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
|
-
環境変数を設定します。
| export KUBECONFIG=$HOME/.kube/config
|
-
ポッドネットワークを設定します。
例えば、Flannelを使う場合は以下のコマンドを実行します。
| kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
|
- クラスタの状態を確認します。
| kubectl get nodes
kubectl get pods --all-namespaces
|
クラスタの削除
クラスタを削除するには、以下のコマンドを実行します。
色々やった後に全部削除したくなったら
| # すべての名前空間でリソースを削除
kubectl delete --all all --namespace=default
kubectl delete --all all --namespace=kube-system
kubectl delete --all all --namespace=kube-flannel
kubectl delete --all all --namespace=argocd
helm uninstall argocd -n argocd
# 他のHelmリリースも削除する場合
# helm uninstall <release-name> -n <namespace>
kubeadm reset
|