コンテンツにスキップ

クラスタを作成する

Kubernetesクラスタを作成するには、いくつかの方法があります。ここでは、最も一般的なkubeadmを使った方法を紹介します。

kubeadm

kubeadmはKubernetesのクラスタを構築するためのツールです。このツールを使うことで、簡単にKubernetesクラスタを構築することができます。

実施環境

  • OS: Ubuntu 22.04 LTS

インストール方法

  1. aptのパッケージ一覧を更新し、Kubernetesのaptリポジトリーを利用するのに必要なパッケージをインストールします:
1
2
3
sudo apt-get update
# apt-transport-httpsはダミーパッケージの可能性があります。その場合、そのパッケージはスキップできます
sudo apt-get install -y apt-transport-https ca-certificates curl gpg
  1. Kubernetesパッケージリポジトリーの公開署名キーをダウンロードします。
1
2
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
  1. Kubernetesのaptリポジトリーを追加します。
1
2
# これにより、/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
  1. aptのパッケージ一覧を更新し、kubeadmをインストールします。
1
2
3
sudo apt-get update
sudo apt-get install -y kubelet kubeadm kubectl
sudo apt-mark hold kubelet kubeadm kubectl

クラスタの作成

  1. swapをoffにします。
1
sudo swapoff -a
  1. kubeadm initコマンドを実行します。
1
sudo kubeadm init --pod-network-cidr=<CIDR>
ポッドネットワークCIDR

<CIDR>には、クラスタ内のポッドネットワークのCIDRを指定します。例えば、192.168.0.0/16です。 他によく使われるのは、10.244.0.0/16です。

  1. クラスタの設定をユーザーのホームディレクトリにコピーします。

    1
    2
    3
    mkdir -p $HOME/.kube
    sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
    sudo chown $(id -u):$(id -g) $HOME/.kube/config
    
  2. 環境変数を設定します。

    1
    export KUBECONFIG=$HOME/.kube/config
    
  3. ポッドネットワークを設定します。

例えば、Flannelを使う場合は以下のコマンドを実行します。

1
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
  1. クラスタの状態を確認します。
1
2
kubectl get nodes
kubectl get pods --all-namespaces

クラスタの削除

クラスタを削除するには、以下のコマンドを実行します。

1
sudo kubeadm reset

色々やった後に全部削除したくなったら

1
2
3
4
5
6
7
8
9
# すべての名前空間でリソースを削除
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

コメント