GNU/Linux >> Linux の 問題 >  >> Ubuntu

kubeadmを使用してUbuntu20.04でKubernetesクラスターをセットアップする

Kubernetesは、コンピューターアプリケーションのデプロイ、スケーリング、管理を自動化するためのオープンソースのコンテナーオーケストレーションシステムです。

開始する前に、ソフトウェアが最新であることを確認してください

sudo apt apdate
sudo apt upgrade

インストール

次のパッケージをすべてのマシンにインストールします。

  • kubeadm :クラスターをブートストラップするコマンド。
  • kubelet :クラスター内のすべてのマシンで実行され、PODやコンテナーの起動などを行うコンポーネント。
  • kubectl :クラスターと通信するためのコマンドラインutil。
sudo apt-get update && sudo apt-get install -y apt-transport-https curl
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
cat <<EOF | sudo tee /etc/apt/sources.list.d/kubernetes.list
deb https://apt.kubernetes.io/ kubernetes-xenial main
EOF
sudo apt-get update
sudo apt-get install -y kubelet kubeadm kubectl
sudo apt-mark hold kubelet kubeadm kubectl

インストールされているバージョンを確認する

kubectl version --client

kubeadm version

出力:

[email protected]:~$ kubectl version --client
Client Version: version.Info{Major:"1", Minor:"22", GitVersion:"v1.22.0", GitCommit:"c2b5237ccd9c0f1d600d3072634ca66cefdf272f", GitTreeState:"clean", BuildDate:"2021-08-04T18:03:20Z", GoVersion:"go1.16.6", Compiler:"gc", Platform:"linux/amd64"}
[email protected]:~$ kubeadm version
kubeadm version: &version.Info{Major:"1", Minor:"22", GitVersion:"v1.22.0", GitCommit:"c2b5237ccd9c0f1d600d3072634ca66cefdf272f", GitTreeState:"clean", BuildDate:"2021-08-04T18:02:08Z", GoVersion:"go1.16.6", Compiler:"gc", Platform:"linux/amd64"}

スワップをオフにします。

sudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab
sudo swapoff -a

sysctlを構成します。

sudo modprobe overlay
sudo modprobe br_netfilter

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

sudo sysctl --system

ContainerdContainerランタイムのインストール

sudo apt-get install -y containerd

コンテナを構成してサービスを開始する

sudo mkdir -p /etc/containerd
sudo containerd config default > /etc/containerd/config.toml

起動時にサービスを開始して開始できるようにする

sudo systemctl enable --now containerd

# check status
sudo systemctl status containerd

サービスが実行されている必要があります

containerd.service - containerd container runtime
     Loaded: loaded (/lib/systemd/system/containerd.service; enabled; vendor preset: enabled)
     Active: active (running) since Wed 2021-08-04 20:27:51 UTC; 7min ago
       Docs: https://containerd.io
   Main PID: 8159 (containerd)
      Tasks: 12
     Memory: 23.3M
     CGroup: /system.slice/containerd.service
             └─8159 /usr/bin/containerd

Aug 04 20:27:51 ub-kubeadm containerd[8159]: time="2021-08-04T20:27:51.784407330Z" level=info msg="loading plugin \"io.containerd.grpc>
Aug 04 20:27:51 ub-kubeadm containerd[8159]: time="2021-08-04T20:27:51.785605392Z" level=info msg=serving... address=/run/containerd/c>
Aug 04 20:27:51 ub-kubeadm containerd[8159]: time="2021-08-04T20:27:51.785639559Z" level=info msg=serving... address=/run/containerd/c>
Aug 04 20:27:51 ub-kubeadm containerd[8159]: time="2021-08-04T20:27:51.787585658Z" level=info msg="containerd successfully booted in 0>
Aug 04 20:27:51 ub-kubeadm containerd[8159]: time="2021-08-04T20:27:51.801146245Z" level=info msg="Start subscribing containerd event"
Aug 04 20:27:51 ub-kubeadm containerd[8159]: time="2021-08-04T20:27:51.804843058Z" level=info msg="Start recovering state"
Aug 04 20:27:51 ub-kubeadm containerd[8159]: time="2021-08-04T20:27:51.805094249Z" level=info msg="Start event monitor"
Aug 04 20:27:51 ub-kubeadm containerd[8159]: time="2021-08-04T20:27:51.805193238Z" level=info msg="Start snapshots syncer"
Aug 04 20:27:51 ub-kubeadm containerd[8159]: time="2021-08-04T20:27:51.805282655Z" level=info msg="Start cni network conf syncer"
Aug 04 20:27:51 ub-kubeadm containerd[8159]: time="2021-08-04T20:27:51.805369362Z" level=info msg="Start streaming server"

マスターノードを初期化する

kubeletサービスを有効にして開始します。

sudo systemctl enable --now kubelet

必要なコンテナイメージをプルする:

sudo kubeadm config images pull

クラスタエンドポイントのDNS名を設定するか、レコードを/etc/hostsに追加します ファイル。

192.168.20.7 k8s.citizix.local

クラスターの作成:

sudo kubeadm init \
  --pod-network-cidr=192.168.0.0/16 \
  --control-plane-endpoint=k8s.citizix.local

これが完了すると、k8sが稼働しているはずです。このパスからkubeconfig管理ファイルを取得します/etc/kubernetes/admin.conf

mkdir ~/.kube
sudo cp /etc/kubernetes/admin.conf ~/.kube/admin.conf
sudo chown ${USER}.${GROUP} ~/.kube/admin.conf
chmod 400 ~/.kube/admin.conf

クラスタステータスを確認します:

kubectl cluster-info

マスターノードの準備ができていることを確認します:

kubectl get nodes -o wide

インストール出力のコマンドを使用して、マスターノードを追加できます:

kubeadm join k8s-cluster.computingforgeeks.com:6443 --token sr4l2l.2kvot0pfalh5o4ik \
    --discovery-token-ca-cert-hash sha256:c692fb047e15883b575bd6710779dc2c5af8073f7cab460abd181fd3ddb29a18 \
    --control-plane

ワーカーノードを追加

コントロールプレーンの準備ができたら、スケジュールされたワークロードを実行するためにワーカーノードをクラスターに追加できます。

エンドポイントアドレスがDNSにない場合は、レコードを/ etc/hostsに追加します。

$ sudo vim /etc/hosts
192.168.20.7 k8s.citizix.local

与えられたjoinコマンドは、ワーカーノードをクラスターに追加するために使用されます。

kubeadm join k8s-cluster.computingforgeeks.com:6443 \
  --token sr4l2l.2kvot0pfalh5o4ik \
  --discovery-token-ca-cert-hash sha256:c692fb047e15883b575bd6710779dc2c5af8073f7cab460abd181fd3ddb29a18

コントロールプレーンで以下のコマンドを実行して、ノードがクラスターに参加したかどうかを確認します。

kubectl get nodes

クラスタにアプリケーションをデプロイする


Ubuntu
  1. Ubuntu20.04でMariaDBGaleraクラスターをセットアップする方法

  2. ランチャーを使用してKubernetesクラスターをセットアップする

  3. 2画面セットアップでUbuntuを使用していますか?

  1. Ubuntu 16で3つのノードを使用してMongoDBクラスターをセットアップするにはどうすればよいですか?

  2. Ubuntu 20.04 LTSサーバーにKubernetes(k8s)をインストールする方法

  3. Ubuntu 20.04 に VSFTP をインストールする方法

  1. Kubeadmを使用してHAでKubernetes(k8s)クラスターをセットアップする方法

  2. Ubuntu18.04LTSでRabbitMQクラスターをセットアップする方法

  3. Ubuntu18.04でRiakKVデータベースクラスターをセットアップする方法