Debian 10 Buster
Sponsored Link

Kubernetes : Kubeadm : インストール2019/08/26

 
Kubeadm をインストールして、マルチノード Kubernetes クラスターを構成します。
当例では以下のように 3台のホストを使用して設定します。
前提条件として、それぞれのノードの Hostname, MAC address, Product_uuid は一意である必要があります。
MAC address と Product_uuid は、通常の物理マシンや一般的な方法で作成した仮想マシンであれば、すでに一意となっているはずです。 Product_uuid は [dmidecode -s system-uuid] コマンドで確認できます。
-----------+---------------------------+--------------------------+------------
           |                           |                          |
       eth0|10.0.0.30              eth0|10.0.0.51             eth0|10.0.0.52
+----------+-----------+   +-----------+----------+   +-----------+----------+
|   [ dlp.srv.world ]  |   | [ node01.srv.world ] |   | [ node02.srv.world ] |
|      Master Node     |   |      Worker Node     |   |      Worker Node     |
+----------------------+   +----------------------+   +----------------------+

 
まずはノード共通の設定を全ノードに適用しておきます。
[1]
[2] 全ノードで、システム要件を満たすよう Swap 無効化や Docker の設定を実施しておきます。
また、Kubernetes v1.15 時点では Debian 10 収録の IPTables 1.8 に対応していないため、IPTables Legacy に切り替えておきます。
root@dlp:~#
swapoff -a

root@dlp:~#
vi /etc/fstab
# swap 行は無効化

#
/dev/mapper/ubuntu--vg-swap_1 none swap sw 0 0
root@dlp:~#
update-alternatives --config iptables

There are 2 choices for the alternative iptables (providing /usr/sbin/iptables).

  Selection    Path                       Priority   Status
------------------------------------------------------------
* 0            /usr/sbin/iptables-nft      20        auto mode
  1            /usr/sbin/iptables-legacy   10        manual mode
  2            /usr/sbin/iptables-nft      20        manual mode

# IPTables Legacy 選択
Press <enter> to keep the current choice[*], or type selection number: 1
update-alternatives: using /usr/sbin/iptables-legacy to provide /usr/sbin/iptables (iptables) in manual mode

root@dlp:~#
cat > /etc/docker/daemon.json <<EOF
{
  "exec-opts": ["native.cgroupdriver=systemd"],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m"
  },
  "storage-driver": "overlay2"
}
EOF
root@dlp:~#
systemctl restart docker

[3] 全ノードで Kubeadm をインストールします。
root@dlp:~#
apt -y install apt-transport-https gnupg2 curl
root@dlp:~#
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -

OK
root@dlp:~#
echo "deb http://apt.kubernetes.io/ kubernetes-xenial main" | tee -a /etc/apt/sources.list.d/kubernetes.list

root@dlp:~#
apt update

root@dlp:~#
apt -y install kubeadm kubelet kubectl
# まだ起動せず有効化のみ適用

root@dlp:~#
systemctl enable kubelet

関連コンテンツ