Kubernetes : Kubeadm インストール2021/05/11 |
Kubeadm をインストールして、マルチノード Kubernetes クラスターを構成します。
当例では以下のように 3台のノードを使用して設定します。
前提条件として、各ノードの [Hostname], [MAC address], [Product_uuid] は一意である必要があります。
[MAC address] と [Product_uuid] は、通常の物理マシンや一般的な方法で作成した仮想マシンであれば、通常は一意となっています。 [Product_uuid] は [dmidecode -s system-uuid] コマンドで確認できます。
また、当例では Firewalld は無効の設定で進めます。
-----------+---------------------------+--------------------------+------------ | | | 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] | 全ノードで、システム要件を満たすよう各設定を適用しておきます。 |
[root@dlp ~]#
cat > /etc/sysctl.d/99-k8s-cri.conf <<EOF
net.bridge.bridge-nf-call-iptables=1 net.ipv4.ip_forward=1 net.bridge.bridge-nf-call-ip6tables=1 EOF
[root@dlp ~]#
[root@dlp ~]# echo -e overlay\\nbr_netfilter > /etc/modules-load.d/k8s.conf
alternatives --config iptables There are 2 programs which provide 'iptables'. Selection Command ----------------------------------------------- *+ 1 /usr/sbin/iptables-legacy 2 /usr/sbin/iptables-nft # [iptables-legacy] に切り替え Enter to keep the current selection[+], or type selection number: 1 # 7行目 : 追記 GRUB_CMDLINE_LINUX=" systemd.unified_cgroup_hierarchy=0 rd.lvm.lv=fedora_fedora/root console=ttyS0,115200n8"
[root@dlp ~]#
grub2-mkconfig -o /boot/grub2/grub.cfg
[root@dlp ~]#
vi /etc/NetworkManager/NetworkManager.conf # [main] セクション配下に追記 [main] dns=default
# 再起動して変更を適用 [root@dlp ~]# reboot |
[2] | 全ノードで、コンテナーランタイム, Kubeadm, Kubelet, Kubectl をインストールします。 コンテナーランタイムには、当例では CRI-O を利用します。 |
[root@dlp ~]#
dnf module -y install cri-o:1.20/default
[root@dlp ~]#
systemctl enable --now cri-o
[root@dlp ~]#
dnf -y install kubernetes-kubeadm kubernetes-node kubernetes-client cri-tools iproute-tc container-selinux
[root@dlp ~]#
vi /etc/kubernetes/kubelet # 5行目 : 変更 KUBELET_ADDRESS="--address= 0.0.0.0 "
# 8行目 : コメント解除 KUBELET_PORT="--port=10250" # 11行目 : 自身のホスト名に変更 KUBELET_HOSTNAME="--hostname-override= dlp.srv.world "
[root@dlp ~]#
vi /etc/systemd/system/kubelet.service.d/kubeadm.conf # 7行目 : 追記 Environment="KUBELET_EXTRA_ARGS=--cgroup-driver=systemd --container-runtime=remote --container-runtime-endpoint=unix:///var/run/crio/crio.sock "
systemctl enable kubelet
|
[3] | 全ノードで、SELinux を有効にしている場合は、ポリシーの変更が必要です。 |
[root@dlp ~]#
vi k8s.te # 以下の内容で新規作成 module k8s 1.0; require { type tmpfs_t; type local_login_t; class filesystem getattr; } #============= local_login_t ============== allow local_login_t tmpfs_t:filesystem getattr; checkmodule -m -M -o k8s.mod k8s.te [root@dlp ~]# semodule_package --outfile k8s.pp --module k8s.mod [root@dlp ~]# semodule -i k8s.pp |
Sponsored Link |