手当たり次第に書くんだ

飽きっぽいのは本能

Ubuntu 20.04 Kubernetes #1 クラスター構築までの準備

目次に戻る

概要

Kubernetesをインストールします。本稿ではクラスター構築直前の状態まで設定します。

Kubernetesをインストールします。

参考資料

https://kubernetes.io/ja/docs/setup/production-environment/tools/kubeadm/install-kubeadm/

前提条件

OS

Ubuntu 20.04を使用します。

SWAPの無効化

SWAPを無効化します。コメントアウトではなくsedでバックアップと取りつつswap行を削除しています。OS再起動が必要です。

myadmin@ubuntu:~$ sudo sed -i'.orig' '/^\/swap\.img/d' /etc/fstab
myadmin@ubuntu:~$ sudo reboot

kernel module

br_netfilterがロードできることを確認します。

myadmin@ubuntu:~$ modprobe br_netfilter
myadmin@ubuntu:~$ lsmod | grep br_netfilter
br_netfilter           28672  0
bridge                176128  1 br_netfilter

永続的に有効化するには設定ファイルを作成します。確認にはOS再起動が必要です。

myadmin@ubuntu:~$ echo "br_netfilter" > /etc/modules-load.d/br_netfilter.conf
myadmin@ubuntu:~$ sudo reboot

kernel parameter

kernel parameterを変更します。

myadmin@ubuntu:~$ sudo tee /etc/sysctl.d/10-k8s.conf <<EOF
net.ipv4.ip_forward = 1
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
myadmin@ubuntu:~$ sudo sysctl --system

[ERROR FileContent–proc-sys-net-ipv4-ip_forward]: /proc/sys/net/ipv4/ip_forward contents are not set to 1

の対処に「net.ipv4.ip_forward = 1」が必要です。

iptables

下記のパッケージがインストールされていることが前提です。

myadmin@ubuntu:~$ sudo apt-get install iptables arptables ebtables

最近はiptablesがnftablesに置き換わっていますが、iptablesコマンドは利用できます(バックエンドがnftables)。Kubernetesはまだnftablesに対応していない為、コマンドを*-legacyに変更する必要があります。

myadmin@ubuntu:~$ sudo update-alternatives --set iptables /usr/sbin/iptables-legacy
myadmin@ubuntu:~$ sudo update-alternatives --set ip6tables /usr/sbin/ip6tables-legacy
myadmin@ubuntu:~$ sudo update-alternatives --set arptables /usr/sbin/arptables-legacy
myadmin@ubuntu:~$ sudo update-alternatives --set ebtables /usr/sbin/ebtables-legacy

下記のように変更後の状態を確認できます。iptablesの例です。

myadmin@ubuntu:~$ update-alternatives --display iptables
iptables - manual mode
  link best version is /usr/sbin/iptables-legacy
  link currently points to /usr/sbin/iptables-legacy
  link iptables is /usr/sbin/iptables
  slave iptables-restore is /usr/sbin/iptables-restore
  slave iptables-save is /usr/sbin/iptables-save
/usr/sbin/iptables-legacy - priority 20
  slave iptables-restore: /usr/sbin/iptables-legacy-restore
  slave iptables-save: /usr/sbin/iptables-legacy-save
/usr/sbin/iptables-nft - priority 10
  slave iptables-restore: /usr/sbin/iptables-nft-restore
  slave iptables-save: /usr/sbin/iptables-nft-save

containerd

こちらを参考にcontainerdをインストールします。

kubeadm, kubelet, kubectlのインストール

GoogleのGPG鍵をインポートします。

myadmin@ubuntu:~$ curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -

リポジトリにkubernetes-xenialを追加します。

myadmin@ubuntu:~$ sudo echo "deb https://apt.kubernetes.io/ kubernetes-xenial main" > /etc/apt/sources.list.d/kubernetes.list

kubeadm, kubelet, kubectlをインストールします。公式サイトではapt-mark holdでバージョンを固定していますが、本稿では省略しています。

myadmin@ubuntu:~$ sudo apt-get update
myadmin@ubuntu:~$ sudo apt-get install kubelet kubeadm kubectl

目次に戻る

Ubuntu 20.04 Kubernetes #1 クラスター構築までの準備

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

トップへ戻る