KubernetesはDockerのサポートを終了します。今、あなたが学習に費やしたすべてのハードワークは大きく変わります。最初から、Kubernetesの使用は同じではありません。
コンテナ管理ツール自体のインストールについて話しています。もちろん、Dockerがランタイムとしてインストールされている場合、以前と同じ方法でKubernetesをデプロイすることはできません。
一緒に、DockerなしでUbuntu Server20.04にKubernetesをインストールしようとします。
あなたは何が必要ですか
- sudo権限を持つユーザー
- Ubuntu Server 20.04インスタンス(これはコントローラーとして機能します-ノードとして実行するには他のインスタンスが必要ですが、セットアップはすべてのマシンで同じであるため、コントローラーでのみデモンストレーションします)
containerdランタイムをインストールする方法
最初に行うことは、Dockerの代わりとなるcontainerdランタイムをインストールすることです。Ubuntu Serverインスタンスにログインし、次のコマンドを使用してaptを更新してください。
sudo apt-get update
その後、次のコマンドで更新を開始する必要があります。
sudo apt-get upgrade -y
カーネルが更新されている場合は、サーバーを再起動する必要があります(Live Patchがインストールされて実行されている場合を除く)。
次のコマンドを使用してcontainerdをインストールします。
sudo apt-get install containerd -y
containerdを構成し、次のコマンドを使用してサービスを開始します。
sudo mkdir -p /etc/containerd sudo su - containerd config default /etc/containerd/config.toml
Kubernetesのインストール方法
次に、Kubernetesをインストールします。まず、次のコマンドを使用してリポジトリのGPGキーを追加する必要があります。
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add
次のコマンドを使用して、Kubernetesリポジトリを追加します。
sudo apt-add-repository "deb http://apt.kubernetes.io/ kubernetes-xenial main"
これで、次のコマンドを使用して、必要なすべてのKubernetesコンポーネントをインストールできます。
sudo apt-get install kubeadm kubelet kubectl –y
複数のコンテナ問題を解決する方法
これは物事が少しトリッキーになるところです。Dockerは多くの内部的な問題を解決しました。containerdに移動するときは、手動で構成を変更する必要があります。
最初の変更は、/ etc /sysctl.confに行を追加することです。次のコマンドでファイルを開きます。
sudo nano /etc/sysctl.conf
このファイルを開いた状態で、以下を追加します。
net.bridge.bridge-nf-call-iptables = 1
ファイルを保存して閉じます。
次に、コマンドを入力します。
sudo -s sudo echo '1' > /proc/sys/net/ipv4/ip_forward exit
次のコマンドを使用して構成を再ロードします。
sudo sysctl --system
また、次のコマンドを使用して、必要なモジュールをいくつかロードする必要があります。
sudo modprobe overlay sudo modprobe br_netfilter
これに対処したら、Kubernetesを初期化できます。
セットアップを完了する方法
/ etc / hostsにすべてのホストをリストする必要があります。表示が次の形式であることを確認してください。
IP Address hostname
次のステップは、次のコマンドを使用して、コントローラーのホスト名を設定することです(/ etc / hostsで使用したホスト名と一致することを確認してください)。
sudo hostnamectl set-hostname HOSTNAME
ここで、HOSTNAMEは使用するホスト名です。
次のコマンドで編集するためにfstabファイルを開いて、スワッピングを無効にします。
sudo nano /etc/fstab
このファイルで、次で始まるエントリをコメントアウトします(行の先頭に#を追加します)。
/swap.img
この行は次で始まります:
# / swap.img
ファイルを保存して閉じます。
次のコマンドでスワップを無効にします。
sudo swapoff -a
次のコマンドを使用して、必要なコンテナを抽出します。
sudo kubeadm config images pull
コントローラで、次のコマンドを使用してKubernetesを初期化します。
sudo kubeadm init --pod-network-cidr=IPADDRESS/24
ここで、IPADDRESSはコントローラーのIPアドレスです。
最終的には、ノードがクラスターに接続できるように、ノードで実行する必要のあるコマンドに戻ります。このコマンドをコピーします。
ノードをクラスターに参加させる前に、クラスター内のさらにいくつかのビットを処理する必要があります。
コントローラで、次のコマンドを使用してクラスタディレクトリを作成します。
mkdir -p $ HOME / .kube
次のコマンドを使用して、構成ファイルをこのディレクトリにコピーします。
sudo cp -i /etc/kubernetes/admin.conf $ HOME / .kube / config
次のコマンドを使用して、構成ファイルに適切なアクセス許可を付与します。
sudo chown $(id -u):$(id -g) $HOME/.kube/config
次のコマンドを使用して、クラスターにコンテナーネットワーク(この場合はweave-netを使用します)をデプロイします。
kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d '\n')"
これで、各ノードでconnectコマンドを実行して、クラスターをシャットダウンできます。
プロセスは以前ほど単純ではありません。将来的には、KubernetesクラスターのデプロイがDockerを使用するのと同じくらい簡単になることを願っています。