このセクションでは、コンテナ化されたアプリケーションのデプロイ、スケジューリング、スケーリングなどの管理を自動化するためのコンテナオーケストレーションエンジンである Kubernetes を Masterにインストールする方法について紹介します。
ここでは、Kubernetes Master × 1台、Kubernetes Node × 2台のクラスター構成を前提にしています。
事前準備
swap が有効だとインストールが失敗するようなので、swap を無効化しておきます。
[root@localhost ~]# swapoff -a [root@localhost ~]#
リブートしてもスワップが有効にならないように、fstab 設定ファイルを編集します。
[root@localhost ~]# vi /etc/fstab (以下行をコメントアウト) #/dev/mapper/centos-swap swap swap defaults 0 0
swap 領域の状態を確認します。swap 領域がすべてゼロになっていることが確認できます。
[root@localhost ~]# free total used free shared buff/cache available Mem: 1882736 110792 533044 8668 1238900 1542328 Swap: 0 0 0 [root@localhost ~]#
Docker のインストール
リポジトリの追加に必要なパッケージをインストールします。
[root@kube-master ~]# yum install -y yum-utils device-mapper-persistent-data lvm2 読み込んだプラグイン:fastestmirror Loading mirror speeds from cached hostfile * base: mirrors.cat.net * extras: mirrors.cat.net * updates: mirrors.cat.net パッケージ device-mapper-persistent-data-0.7.3-3.el7.x86_64 はインストール済みか最新バージョンです パッケージ 7:lvm2-2.02.180-10.el7_6.2.x86_64 はインストール済みか最新バージョンです 依存性の解決をしています --> トランザクションの確認を実行しています。 ---> パッケージ yum-utils.noarch 0:1.1.31-50.el7 を インストール --> 依存性の処理をしています: python-kitchen のパッケージ: yum-utils-1.1.31-50.el7.noarch --> 依存性の処理をしています: libxml2-python のパッケージ: yum-utils-1.1.31-50.el7.noarch --> トランザクションの確認を実行しています。 ---> パッケージ libxml2-python.x86_64 0:2.9.1-6.el7_2.3 を インストール ---> パッケージ python-kitchen.noarch 0:1.1.1-5.el7 を インストール --> 依存性の処理をしています: python-chardet のパッケージ: python-kitchen-1.1.1-5.el7.noarch --> トランザクションの確認を実行しています。 ---> パッケージ python-chardet.noarch 0:2.2.1-1.el7_1 を インストール --> 依存性解決を終了しました。 依存性を解決しました ================================================================================ Package アーキテクチャー バージョン リポジトリー 容量 ================================================================================ インストール中: yum-utils noarch 1.1.31-50.el7 base 121 k 依存性関連でのインストールをします: libxml2-python x86_64 2.9.1-6.el7_2.3 base 247 k python-chardet noarch 2.2.1-1.el7_1 base 227 k python-kitchen noarch 1.1.1-5.el7 base 267 k トランザクションの要約 ================================================================================ インストール 1 パッケージ (+3 個の依存関係のパッケージ) 総ダウンロード容量: 861 k インストール容量: 4.3 M Downloading packages: (1/4): libxml2-python-2.9.1-6.el7_2.3.x86_64.rpm | 247 kB 00:00 (2/4): python-chardet-2.2.1-1.el7_1.noarch.rpm | 227 kB 00:00 (3/4): yum-utils-1.1.31-50.el7.noarch.rpm | 121 kB 00:00 (4/4): python-kitchen-1.1.1-5.el7.noarch.rpm | 267 kB 00:00 -------------------------------------------------------------------------------- 合計 1.4 MB/s | 861 kB 00:00 Running transaction check Running transaction test Transaction test succeeded Running transaction インストール中 : python-chardet-2.2.1-1.el7_1.noarch 1/4 インストール中 : python-kitchen-1.1.1-5.el7.noarch 2/4 インストール中 : libxml2-python-2.9.1-6.el7_2.3.x86_64 3/4 インストール中 : yum-utils-1.1.31-50.el7.noarch 4/4 検証中 : libxml2-python-2.9.1-6.el7_2.3.x86_64 1/4 検証中 : python-kitchen-1.1.1-5.el7.noarch 2/4 検証中 : yum-utils-1.1.31-50.el7.noarch 3/4 検証中 : python-chardet-2.2.1-1.el7_1.noarch 4/4 インストール: yum-utils.noarch 0:1.1.31-50.el7 依存性関連をインストールしました: libxml2-python.x86_64 0:2.9.1-6.el7_2.3 python-chardet.noarch 0:2.2.1-1.el7_1 python-kitchen.noarch 0:1.1.1-5.el7 完了しました! [root@kube-master ~]#
最新バージョンの Docker をインストールするために、Docker のリポジトリを追加します。
[root@kube-master ~]# yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo 読み込んだプラグイン:fastestmirror adding repo from: https://download.docker.com/linux/centos/docker-ce.repo grabbing file https://download.docker.com/linux/centos/docker-ce.repo to /etc/yum.repos.d/docker-ce.repo repo saved to /etc/yum.repos.d/docker-ce.repo [root@kube-master ~]#
Docker をインストールします。
[root@kube-master ~]# yum install docker-ce -y 読み込んだプラグイン:fastestmirror Loading mirror speeds from cached hostfile * base: mirrors.cat.net * extras: mirrors.cat.net * updates: mirrors.cat.net 依存性の解決をしています --> トランザクションの確認を実行しています。 ---> パッケージ docker-ce.x86_64 3:18.09.0-3.el7 を インストール --> 依存性の処理をしています: container-selinux >= 2.9 のパッケージ: 3:docker-ce-18.09.0-3.el7.x86_64 --> 依存性の処理をしています: containerd.io のパッケージ: 3:docker-ce-18.09.0-3.el7.x86_64 --> 依存性の処理をしています: docker-ce-cli のパッケージ: 3:docker-ce-18.09.0-3.el7.x86_64 --> トランザクションの確認を実行しています。 ---> パッケージ container-selinux.noarch 2:2.74-1.el7 を インストール --> 依存性の処理をしています: policycoreutils-python のパッケージ: 2:container-selinux-2.74-1.el7.noarch ---> パッケージ containerd.io.x86_64 0:1.2.0-3.el7 を インストール ---> パッケージ docker-ce-cli.x86_64 1:18.09.0-3.el7 を インストール --> 依存性の処理をしています: libltdl.so.7()(64bit) のパッケージ: 1:docker-ce-cli-18.09.0-3.el7.x86_64 --> トランザクションの確認を実行しています。 ---> パッケージ libtool-ltdl.x86_64 0:2.4.2-22.el7_3 を インストール ---> パッケージ policycoreutils-python.x86_64 0:2.5-29.el7 を インストール --> 依存性の処理をしています: setools-libs >= 3.3.8-4 のパッケージ: policycoreutils-python-2.5-29.el7.x86_64 --> 依存性の処理をしています: libsemanage-python >= 2.5-14 のパッケージ: policycoreutils-python-2.5-29.el7.x86_64 --> 依存性の処理をしています: audit-libs-python >= 2.1.3-4 のパッケージ: policycoreutils-python-2.5-29.el7.x86_64 --> 依存性の処理をしています: python-IPy のパッケージ: policycoreutils-python-2.5-29.el7.x86_64 --> 依存性の処理をしています: libqpol.so.1(VERS_1.4)(64bit) のパッケージ: policycoreutils-python-2.5-29.el7.x86_64 --> 依存性の処理をしています: libqpol.so.1(VERS_1.2)(64bit) のパッケージ: policycoreutils-python-2.5-29.el7.x86_64 --> 依存性の処理をしています: libcgroup のパッケージ: policycoreutils-python-2.5-29.el7.x86_64 --> 依存性の処理をしています: libapol.so.4(VERS_4.0)(64bit) のパッケージ: policycoreutils-python-2.5-29.el7.x86_64 --> 依存性の処理をしています: checkpolicy のパッケージ: policycoreutils-python-2.5-29.el7.x86_64 --> 依存性の処理をしています: libqpol.so.1()(64bit) のパッケージ: policycoreutils-python-2.5-29.el7.x86_64 --> 依存性の処理をしています: libapol.so.4()(64bit) のパッケージ: policycoreutils-python-2.5-29.el7.x86_64 --> トランザクションの確認を実行しています。 ---> パッケージ audit-libs-python.x86_64 0:2.8.4-4.el7 を インストール ---> パッケージ checkpolicy.x86_64 0:2.5-8.el7 を インストール ---> パッケージ libcgroup.x86_64 0:0.41-20.el7 を インストール ---> パッケージ libsemanage-python.x86_64 0:2.5-14.el7 を インストール ---> パッケージ python-IPy.noarch 0:0.75-6.el7 を インストール ---> パッケージ setools-libs.x86_64 0:3.3.8-4.el7 を インストール --> 依存性解決を終了しました。 依存性を解決しました ================================================================================ Package アーキテクチャー バージョン リポジトリー 容量 ================================================================================ インストール中: docker-ce x86_64 3:18.09.0-3.el7 docker-ce-stable 19 M 依存性関連でのインストールをします: audit-libs-python x86_64 2.8.4-4.el7 base 76 k checkpolicy x86_64 2.5-8.el7 base 295 k container-selinux noarch 2:2.74-1.el7 extras 38 k containerd.io x86_64 1.2.0-3.el7 docker-ce-stable 22 M docker-ce-cli x86_64 1:18.09.0-3.el7 docker-ce-stable 14 M libcgroup x86_64 0.41-20.el7 base 66 k libsemanage-python x86_64 2.5-14.el7 base 113 k libtool-ltdl x86_64 2.4.2-22.el7_3 base 49 k policycoreutils-python x86_64 2.5-29.el7 base 456 k python-IPy noarch 0.75-6.el7 base 32 k setools-libs x86_64 3.3.8-4.el7 base 620 k トランザクションの要約 ================================================================================ インストール 1 パッケージ (+11 個の依存関係のパッケージ) 総ダウンロード容量: 56 M インストール容量: 241 M Downloading packages: (1/12): audit-libs-python-2.8.4-4.el7.x86_64.rpm | 76 kB 00:00 (2/12): container-selinux-2.74-1.el7.noarch.rpm | 38 kB 00:00 (3/12): checkpolicy-2.5-8.el7.x86_64.rpm | 295 kB 00:00 warning: /var/cache/yum/x86_64/7/docker-ce-stable/packages/containerd.io-1.2.0-3.el7.x86_64.rpm: Header V4 RSA/SHA512 Signature, key ID 621e9f35: NOKEY containerd.io-1.2.0-3.el7.x86_64.rpm の公開鍵がインストールされていません (4/12): containerd.io-1.2.0-3.el7.x86_64.rpm | 22 MB 00:03 (5/12): libcgroup-0.41-20.el7.x86_64.rpm | 66 kB 00:00 (6/12): policycoreutils-python-2.5-29.el7.x86_64.rpm | 456 kB 00:00 (7/12): python-IPy-0.75-6.el7.noarch.rpm | 32 kB 00:00 (8/12): libsemanage-python-2.5-14.el7.x86_64.rpm | 113 kB 00:00 (9/12): setools-libs-3.3.8-4.el7.x86_64.rpm | 620 kB 00:00 (10/12): libtool-ltdl-2.4.2-22.el7_3.x86_64.rpm | 49 kB 00:00 (11/12): docker-ce-cli-18.09.0-3.el7.x86_64.rpm | 14 MB 00:02 (12/12): docker-ce-18.09.0-3.el7.x86_64.rpm | 19 MB 00:06 -------------------------------------------------------------------------------- 合計 8.1 MB/s | 56 MB 00:06 https://download.docker.com/linux/centos/gpg から鍵を取得中です。 Importing GPG key 0x621E9F35: Userid : "Docker Release (CE rpm) <docker@docker.com>" Fingerprint: 060a 61c5 1b55 8a7f 742b 77aa c52f eb6b 621e 9f35 From : https://download.docker.com/linux/centos/gpg Running transaction check Running transaction test Transaction test succeeded Running transaction インストール中 : containerd.io-1.2.0-3.el7.x86_64 1/12 インストール中 : setools-libs-3.3.8-4.el7.x86_64 2/12 インストール中 : audit-libs-python-2.8.4-4.el7.x86_64 3/12 インストール中 : checkpolicy-2.5-8.el7.x86_64 4/12 インストール中 : libtool-ltdl-2.4.2-22.el7_3.x86_64 5/12 インストール中 : 1:docker-ce-cli-18.09.0-3.el7.x86_64 6/12 インストール中 : python-IPy-0.75-6.el7.noarch 7/12 インストール中 : libsemanage-python-2.5-14.el7.x86_64 8/12 インストール中 : libcgroup-0.41-20.el7.x86_64 9/12 インストール中 : policycoreutils-python-2.5-29.el7.x86_64 10/12 インストール中 : 2:container-selinux-2.74-1.el7.noarch 11/12 インストール中 : 3:docker-ce-18.09.0-3.el7.x86_64 12/12 検証中 : libcgroup-0.41-20.el7.x86_64 1/12 検証中 : 3:docker-ce-18.09.0-3.el7.x86_64 2/12 検証中 : libsemanage-python-2.5-14.el7.x86_64 3/12 検証中 : policycoreutils-python-2.5-29.el7.x86_64 4/12 検証中 : 1:docker-ce-cli-18.09.0-3.el7.x86_64 5/12 検証中 : python-IPy-0.75-6.el7.noarch 6/12 検証中 : libtool-ltdl-2.4.2-22.el7_3.x86_64 7/12 検証中 : containerd.io-1.2.0-3.el7.x86_64 8/12 検証中 : checkpolicy-2.5-8.el7.x86_64 9/12 検証中 : 2:container-selinux-2.74-1.el7.noarch 10/12 検証中 : audit-libs-python-2.8.4-4.el7.x86_64 11/12 検証中 : setools-libs-3.3.8-4.el7.x86_64 12/12 インストール: docker-ce.x86_64 3:18.09.0-3.el7 依存性関連をインストールしました: audit-libs-python.x86_64 0:2.8.4-4.el7 checkpolicy.x86_64 0:2.5-8.el7 container-selinux.noarch 2:2.74-1.el7 containerd.io.x86_64 0:1.2.0-3.el7 docker-ce-cli.x86_64 1:18.09.0-3.el7 libcgroup.x86_64 0:0.41-20.el7 libsemanage-python.x86_64 0:2.5-14.el7 libtool-ltdl.x86_64 0:2.4.2-22.el7_3 policycoreutils-python.x86_64 0:2.5-29.el7 python-IPy.noarch 0:0.75-6.el7 setools-libs.x86_64 0:3.3.8-4.el7 完了しました! [root@kube-master ~]#
インストールした Docker のバージョンを確認します。
[root@kube-master ~]# docker -v Docker version 18.09.0, build 4d60db4 [root@kube-master ~]#
Docker サービスの自動起動を有効化します。
■ 自動起動の有効化 [root@kube-master ~]# systemctl enable docker Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service. [root@kube-master ~]# ■ 自動起動の状態確認 [root@kube-master ~]# systemctl is-enabled docker enabled [root@kube-master ~]#
Docker サービスを起動します。
■ 起動 [root@kube-master ~]# systemctl start docker [root@kube-master ~]# ■ 起動状態の確認 [root@kube-master ~]# systemctl status docker ● docker.service - Docker Application Container Engine Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled) Active: active (running) since 木 2019-01-03 07:09:35 JST; 4s ago Docs: https://docs.docker.com Main PID: 3993 (dockerd) Tasks: 21 Memory: 47.2M CGroup: /system.slice/docker.service ├─3993 /usr/bin/dockerd -H unix:// └─4007 containerd --config /var/run/docker/containerd/containerd.t... 1月 03 07:09:35 kube-master dockerd[3993]: time="2019-01-03T07:09:35.50433...c 1月 03 07:09:35 kube-master dockerd[3993]: time="2019-01-03T07:09:35.53782..." 1月 03 07:09:35 kube-master dockerd[3993]: time="2019-01-03T07:09:35.53876..." 1月 03 07:09:35 kube-master dockerd[3993]: time="2019-01-03T07:09:35.76080..." 1月 03 07:09:35 kube-master dockerd[3993]: time="2019-01-03T07:09:35.93075..." 1月 03 07:09:35 kube-master dockerd[3993]: time="2019-01-03T07:09:35.95385...0 1月 03 07:09:35 kube-master dockerd[3993]: time="2019-01-03T07:09:35.95460..." 1月 03 07:09:35 kube-master dockerd[3993]: time="2019-01-03T07:09:35.96534..." 1月 03 07:09:35 kube-master dockerd[3993]: time="2019-01-03T07:09:35.96971..." 1月 03 07:09:35 kube-master systemd[1]: Started Docker Application Contain.... Hint: Some lines were ellipsized, use -l to show in full. [root@kube-master ~]#
Kubernetes のインストール
Kubernetes をインストールするためのリポジトリを作成します。
[root@kube-master ~]# cat <<EOF > /etc/yum.repos.d/kubernetes.repo [kubernetes] name=Kubernetes baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64 enabled=1 gpgcheck=1 repo_gpgcheck=1 gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg EOF [root@kube-master ~]#
Kubernetes に関連するパッケージをインストールします。
[root@kube-master ~]# yum install -y kubelet kubeadm kubectl 読み込んだプラグイン:fastestmirror Loading mirror speeds from cached hostfile * base: mirrors.cat.net * extras: mirrors.cat.net * updates: mirrors.cat.net 依存性の解決をしています --> トランザクションの確認を実行しています。 ---> パッケージ kubeadm.x86_64 0:1.13.1-0 を インストール --> 依存性の処理をしています: kubernetes-cni >= 0.6.0 のパッケージ: kubeadm-1.13.1-0.x86_64 --> 依存性の処理をしています: cri-tools >= 1.11.0 のパッケージ: kubeadm-1.13.1-0.x86_64 ---> パッケージ kubectl.x86_64 0:1.13.1-0 を インストール ---> パッケージ kubelet.x86_64 0:1.13.1-0 を インストール --> 依存性の処理をしています: socat のパッケージ: kubelet-1.13.1-0.x86_64 --> トランザクションの確認を実行しています。 ---> パッケージ cri-tools.x86_64 0:1.12.0-0 を インストール ---> パッケージ kubernetes-cni.x86_64 0:0.6.0-0 を インストール ---> パッケージ socat.x86_64 0:1.7.3.2-2.el7 を インストール --> 依存性解決を終了しました。 依存性を解決しました ================================================================================ Package アーキテクチャー バージョン リポジトリー 容量 ================================================================================ インストール中: kubeadm x86_64 1.13.1-0 kubernetes 7.9 M kubectl x86_64 1.13.1-0 kubernetes 8.5 M kubelet x86_64 1.13.1-0 kubernetes 21 M 依存性関連でのインストールをします: cri-tools x86_64 1.12.0-0 kubernetes 4.2 M kubernetes-cni x86_64 0.6.0-0 kubernetes 8.6 M socat x86_64 1.7.3.2-2.el7 base 290 k トランザクションの要約 ================================================================================ インストール 3 パッケージ (+3 個の依存関係のパッケージ) 総ダウンロード容量: 50 M インストール容量: 231 M Downloading packages: 警告: /var/cache/yum/x86_64/7/kubernetes/packages/53edc739a0e51a4c17794de26b13ee5df939bd3161b37f503fe2af8980b41a89-cri-tools-1.12.0-0.x86_64.rpm: ヘッダー V4 RSA/SHA512 Signature、鍵 ID 3e1ba8d5: NOKEY 53edc739a0e51a4c17794de26b13ee5df939bd3161b37f503fe2af8980b41a89-cri-tools-1.12.0-0.x86_64.rpm の公開鍵がインストールされていません (1/6): 53edc739a0e51a4c17794de26b13ee5df939bd3161b37f503fe | 4.2 MB 00:01 (2/6): 5af5ecd0bc46fca6c51cc23280f0c0b1522719c282e23a2b1c3 | 7.9 MB 00:01 (3/6): 7855313ff2b42ebcf499bc195f51d56b8372abee1a19bbf15bb | 8.5 MB 00:02 (4/6): socat-1.7.3.2-2.el7.x86_64.rpm | 290 kB 00:00 (5/6): fe33057ffe95bfae65e2f269e1b05e99308853176e24a4d027b | 8.6 MB 00:02 (6/6): 25cd948f63fea40e81e43fbe2e5b635227cc5bbda6d5e15d42a | 21 MB 00:03 -------------------------------------------------------------------------------- 合計 8.9 MB/s | 50 MB 00:05 https://packages.cloud.google.com/yum/doc/yum-key.gpg から鍵を取得中です。 Importing GPG key 0xA7317B0F: Userid : "Google Cloud Packages Automatic Signing Key <gc-team@google.com>" Fingerprint: d0bc 747f d8ca f711 7500 d6fa 3746 c208 a731 7b0f From : https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg から鍵を取得中です。 Importing GPG key 0x3E1BA8D5: Userid : "Google Cloud Packages RPM Signing Key <gc-team@google.com>" Fingerprint: 3749 e1ba 95a8 6ce0 5454 6ed2 f09c 394c 3e1b a8d5 From : https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg Running transaction check Running transaction test Transaction test succeeded Running transaction インストール中 : socat-1.7.3.2-2.el7.x86_64 1/6 インストール中 : kubernetes-cni-0.6.0-0.x86_64 2/6 インストール中 : kubelet-1.13.1-0.x86_64 3/6 インストール中 : kubectl-1.13.1-0.x86_64 4/6 インストール中 : cri-tools-1.12.0-0.x86_64 5/6 インストール中 : kubeadm-1.13.1-0.x86_64 6/6 検証中 : cri-tools-1.12.0-0.x86_64 1/6 検証中 : kubelet-1.13.1-0.x86_64 2/6 検証中 : kubectl-1.13.1-0.x86_64 3/6 検証中 : kubernetes-cni-0.6.0-0.x86_64 4/6 検証中 : socat-1.7.3.2-2.el7.x86_64 5/6 検証中 : kubeadm-1.13.1-0.x86_64 6/6 インストール: kubeadm.x86_64 0:1.13.1-0 kubectl.x86_64 0:1.13.1-0 kubelet.x86_64 0:1.13.1-0 依存性関連をインストールしました: cri-tools.x86_64 0:1.12.0-0 kubernetes-cni.x86_64 0:0.6.0-0 socat.x86_64 0:1.7.3.2-2.el7 完了しました! [root@kube-master ~]#
Kubernetes サービスの自動起動を有効化します。
■ 自動起動の有効化 [root@kube-master ~]# systemctl enable kubelet Created symlink from /etc/systemd/system/multi-user.target.wants/kubelet.service to /etc/systemd/system/kubelet.service. [root@kube-master ~]# ■ 自動起動の状態確認 [root@kube-master ~]# systemctl is-enabled kubelet enabled [root@kube-master ~]#
Kubernetes サービスを起動します。
■ 起動 [root@kube-master ~]# systemctl start kubelet [root@kube-master ~]# ■ 起動状態の確認 [root@kube-master ~]# systemctl status kubelet ● kubelet.service - kubelet: The Kubernetes Node Agent Loaded: loaded (/etc/systemd/system/kubelet.service; enabled; vendor preset: disabled) Drop-In: /etc/systemd/system/kubelet.service.d └─10-kubeadm.conf Active: activating (auto-restart) (Result: exit-code) since 木 2019-01-03 07:18:41 JST; 3s ago Docs: https://kubernetes.io/docs/ Process: 4390 ExecStart=/usr/bin/kubelet $KUBELET_KUBECONFIG_ARGS $KUBELET_CONFIG_ARGS $KUBELET_KUBEADM_ARGS $KUBELET_EXTRA_ARGS (code=exited, status=255) Main PID: 4390 (code=exited, status=255) 1月 03 07:18:41 kube-master systemd[1]: kubelet.service: main process exited, code=exited, status=255/n/a 1月 03 07:18:41 kube-master systemd[1]: Unit kubelet.service entered failed state. 1月 03 07:18:41 kube-master systemd[1]: kubelet.service failed. [root@kube-master ~]#
iptables がバイパスしているため、正しくルーティングされない問題がいくつか報告されているようなので、それを回避する設定をします。
[root@kube-master ~]# cat <<EOF > /etc/sysctl.d/k8s.conf net.bridge.bridge-nf-call-ip6tables = 1 net.bridge.bridge-nf-call-iptables = 1 EOF [root@kube-master ~]#
sysctl – – system コマンドを実行し、以下設定が反映されていることを確認します。
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
[root@kube-master ~]# sysctl --system * Applying /usr/lib/sysctl.d/00-system.conf ... net.bridge.bridge-nf-call-ip6tables = 0 net.bridge.bridge-nf-call-iptables = 0 net.bridge.bridge-nf-call-arptables = 0 * Applying /usr/lib/sysctl.d/10-default-yama-scope.conf ... kernel.yama.ptrace_scope = 0 * Applying /usr/lib/sysctl.d/50-default.conf ... kernel.sysrq = 16 kernel.core_uses_pid = 1 net.ipv4.conf.default.rp_filter = 1 net.ipv4.conf.all.rp_filter = 1 net.ipv4.conf.default.accept_source_route = 0 net.ipv4.conf.all.accept_source_route = 0 net.ipv4.conf.default.promote_secondaries = 1 net.ipv4.conf.all.promote_secondaries = 1 fs.protected_hardlinks = 1 fs.protected_symlinks = 1 * Applying /etc/sysctl.d/99-sysctl.conf ... * Applying /etc/sysctl.d/k8s.conf ... net.bridge.bridge-nf-call-ip6tables = 1 net.bridge.bridge-nf-call-iptables = 1 * Applying /etc/sysctl.conf ... [root@kube-master ~]#
dockerが使用している cgrourp driver を確認します。
[root@kube-master ~]# docker info | grep -i cgroup
Cgroup Driver: cgroupfs
[root@kube-master ~]#
kubeletが認識している cgroup driver を確認します。 kubeleteでは、cgroup driver は特に表示されない。 dockerが使用している cgrourp driver と kubelet が認識している cgroup driverを一致している必要があるようであるが、特に何もしない。
[root@kube-master ~]# cat /etc/systemd/system/kubelet.service.d/10-kubeadm.conf # Note: This dropin only works with kubeadm and kubelet v1.11+ [Service] Environment="KUBELET_KUBECONFIG_ARGS=--bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --kubeconfig=/etc/kubernetes/kubelet.conf" Environment="KUBELET_CONFIG_ARGS=--config=/var/lib/kubelet/config.yaml" # This is a file that "kubeadm init" and "kubeadm join" generates at runtime, populating the KUBELET_KUBEADM_ARGS variable dynamically EnvironmentFile=-/var/lib/kubelet/kubeadm-flags.env # This is a file that the user can use for overrides of the kubelet args as a last resort. Preferably, the user should use # the .NodeRegistration.KubeletExtraArgs object in the configuration files instead. KUBELET_EXTRA_ARGS should be sourced from this file. EnvironmentFile=-/etc/sysconfig/kubelet ExecStart= ExecStart=/usr/bin/kubelet $KUBELET_KUBECONFIG_ARGS $KUBELET_CONFIG_ARGS $KUBELET_KUBEADM_ARGS $KUBELET_EXTRA_ARGS [root@kube-master ~]#