Ubuntu 22.04(Jammy Jellyfish)にKubernetesクラスターをインストールする方法に関する簡単なガイドをお探しですか?
このページのステップバイステップガイドでは、Kubeadmコマンドを使用してUbuntu22.04にKubernetesクラスターをインストールする方法を段階的に説明します。
Kubernetes は無料のオープンソースコンテナオーケストレーションツールで、k8sとも呼ばれます。 Kubernetesの助けを借りて、コンテナ化されたアプリケーションの自動展開、スケーリング、管理を実現できます。
Kubernetesクラスターは、アプリケーションワークロードがデプロイされるワーカーノードと、クラスター内のワーカーノードとポッドを管理するセットアップマスターノードで構成されます。
このガイドでは、1つのマスターノードと2つのワーカーノードを使用しています。 以下は、各ノードのシステム要件です。
- Ubuntu22.04の最小インストール
- 最小2GB以上のRAM
- 最小2CPUコア/または2vCPU
- /var以上に20GBの空きディスク容量
- 管理者権限を持つSudoユーザー
- 各ノードのインターネット接続
ラボのセットアップ
- マスターノード:192.168.1.173 – k8smaster.example.net
- 最初のワーカーノード:192.168.1.174 – k8sworker1.example.net
- 2番目のワーカーノード:192.168.1.175 – k8sworker2.example.net
遅滞なく、Kubernetesクラスターのインストール手順に飛び込みましょう
ステップ1)ホスト名を設定し、hostsファイルにエントリを追加します
マスターノードにログインし、hostnamectlコマンドを使用してホスト名を設定します。
$ sudo hostnamectl set-hostname "k8smaster.example.net" $ exec bash
ワーカーノードで、
$ sudo hostnamectl set-hostname "k8sworker1.example.net" // 1st worker node $ sudo hostnamectl set-hostname "k8sworker2.example.net" // 2nd worker node $ exec bash
各ノードの/etc/hostsファイルに次のエントリを追加します
192.168.1.173 k8smaster.example.net k8smaster 192.168.1.174 k8sworker1.example.net k8sworker1 192.168.1.175 k8sworker2.example.net k8sworker2
ステップ2)スワップを無効にしてカーネル設定を追加する
スワップオフの下で実行し、 sedコマンド スワップを無効にします。 すべてのノードで次のコマンドを実行してください。
$ sudo swapoff -a $ sudo sed -i '/ swap / s/^(.*)$/#1/g' /etc/fstab
次のカーネルモジュールをすべてのノードにロードします。
$ sudo tee /etc/modules-load.d/containerd.conf <<EOF overlay br_netfilter EOF $ sudo modprobe overlay $ sudo modprobe br_netfilter
Kubernetesに次のカーネルパラメータを設定し、その下で実行します teeコマンド
$ sudo tee /etc/sysctl.d/kubernetes.conf<<EOF net.bridge.bridge-nf-call-ip6tables = 1 net.bridge.bridge-nf-call-iptables = 1 net.ipv4.ip_forward = 1 EOF Reload the above changes, run
$ sudo sysctl --system
ステップ3)コンテナ化されたランタイムをインストールする
このガイドでは、Kubernetesクラスターにコンテナー化されたランタイムを使用しています。 したがって、containerdをインストールするには、最初にその依存関係をインストールします。
$ sudo apt install -y curl gnupg2 software-properties-common apt-transport-https ca-certificates Enable Ddcker repository $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - $ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
次に、次のaptコマンドを実行してcontainerdをインストールします
$ sudo apt update $ sudo apt install -y containerd.io
systemdをcgroupとして使用し始めるようにcontainerdを構成します。
$ containerd config default | sudo tee /etc/containerd/config.toml >/dev/null 2>&1 $ sudo sed -i 's/SystemdCgroup = false/SystemdCgroup = true/g' /etc/containerd/config.toml
コンテナサービスを再起動して有効にします
$ sudo systemctl restart containerd $ sudo systemctl enable containerd
ステップ4)Kubernetesのaptリポジトリを追加します
次のコマンドを実行して、Kubernetesのaptリポジトリを追加します
$ curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add - $ sudo apt-add-repository "deb http://apt.kubernetes.io/ kubernetes-xenial main"
ノート: このガイドの執筆時点では、Xenialは最新のKubernetesリポジトリですが、Ubuntu 22.04(Jammy Jellyfish)でリポジトリが利用可能な場合は、「apt-add-repository」コマンドでxenialワードを「jammy」に置き換える必要があります。
ステップ5)KubernetesコンポーネントKubectl、kubeadm、kubeletをインストールします
kubectl、kubelet、KubeadmユーティリティなどのKubernetesコンポーネントをすべてのノードにインストールします。 コマンドで次のセットを実行し、
$ sudo apt update $ sudo apt install -y kubelet kubeadm kubectl $ sudo apt-mark hold kubelet kubeadm kubectl
手順5)Kubeadmコマンドを使用してKubernetesクラスターを初期化する
これで、Kubernetesクラスターを初期化する準備が整いました。 次のKubeadmコマンドは、マスターノードからのみ実行してください。
$ sudo kubeadm init --control-plane-endpoint=k8smaster.example.net
上記のコマンドの出力、
上記の出力は、コントロールプレーンが正常に初期化されたことを確認します。 出力では、クラスターと対話するための一連のコマンドと、ワーカーノードがクラスターに参加するためのコマンドも取得しています。
したがって、クラスターとの対話を開始するには、マスターノードから次のコマンドを実行します。
$ mkdir -p $HOME/.kube $ sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config $ sudo chown $(id -u):$(id -g) $HOME/.kube/config
次に、次のkubectlコマンドを実行して、クラスターとノードのステータスを表示してみます。
$ kubectl cluster-info $ kubectl get nodes
出力、
両方のワーカーノードをクラスターに参加させます。コマンドは既に出力されています。ワーカーノードにコピーして貼り付けるだけです。
$ sudo kubeadm join k8smaster.example.net:6443 --token vt4ua6.wcma2y8pl4menxh2 --discovery-token-ca-cert-hash sha256:0494aa7fc6ced8f8e7b20137ec0c5d2699dc5f8e616656932ff9173c94962a36
両方のワーカーノードからの出力、
kubectlコマンドを使用して、マスターノードからノードのステータスを確認します。
$ kubectl get nodes
ご覧のとおり、ノードのステータスは’です。準備ができていない‘、それをアクティブにするために。 CNI(Container Network Interface)またはCalico、Flannel、Weave-netなどのネットワークアドオンプラグインをインストールする必要があります。
ステップ6)CalicoPodNetworkアドオンをインストールします
次のcurlおよびkubectlコマンドを実行して、マスターノードからCalicoネットワークプラグインをインストールします。
$ curl https://projectcalico.docs.tigera.io/manifests/calico.yaml -O $ kubectl apply -f calico.yaml
上記のコマンドの出力は次のようになります。
kube-system名前空間のポッドのステータスを確認します。
$ kubectl get pods -n kube-system
出力、
完璧です。ノードのステータスも確認してください。
$ kubectl get nodes
上記は、ノードがアクティブノードであることを示しています。 これで、Kubernetesクラスターが機能していると言えます。
ステップ7)Kubernetesのインストールをテストする
Kubernetesのインストールをテストするために、nginxベースのアプリケーションをデプロイしてアクセスしてみましょう。
$ kubectl create deployment nginx-app --image=nginx --replicas=2
nginx-appのデプロイのステータスを確認する
$ kubectl get deployment nginx-app NAME READY UP-TO-DATE AVAILABLE AGE nginx-app 2/2 2 2 68s $
デプロイメントをNodePortとして公開し、
$ kubectl expose deployment nginx-app --type=NodePort --port=80 service/nginx-app exposed $
次のコマンドを実行して、サービスステータスを表示します
$ kubectl get svc nginx-app $ kubectl describe svc nginx-app
上記のコマンドの出力、
次のコマンドを使用して、nginxベースのアプリケーションにアクセスします。
$ curl http://
$ curl http://192.168.1.174:31246
出力、
上記の素晴らしい出力は、nginxベースのアプリケーションにアクセスできることを確認しています。
このガイドは以上です。このガイドがお役に立てば幸いです。 以下のコメントセクションに質問やフィードバックを投稿してください。
また読む: Ubuntu22.04LTSで静的IPアドレスを構成する方法
。
The post Ubuntu22.04にKubernetesクラスターをインストールする方法 appeared first on Gamingsym Japan.