Kubernetes 1.5.2をCentOS 7.4へインストールしてDocker 1.13.1のノードを管理する
目次
概要
Dockerについてある程度利用してみましたが、複数台のサーバでシステムを構築する場合は Dockerイメージの管理やDockerコンテナの起動・停止など、同じような作業を複数のサーバで それぞれ実行しなければならないので、ちょっとめんどくさいなと思うようになりました。 そんなところ、KubernetesというDockerのオーケストレーションツールの存在を知ったので、 どんなものなのか試しにインストールしてみました。
2018年3月29日時点でネットで色々調べながらインストールしましたが、設定ファイルの設定項目が 自分のサーバとネットのブログなどの情報で食い違っており、おそらく開発の過程で変更になったのかなと 想像しています(裏取りしていません)。 まだまだ開発途上のようなので、Kubernetesの最新バージョンでは今回私が試した情報からも 変わっているかも知れません。その点はご了承ください。
構成
想定環境
今回構築するシステム構成を超ザックリ描くと以下のような感じです。
サーバ構成
OSバージョン
CentOS 7.4.1708 x86_64
ソフトウェア・パッケージ一覧
数多くのパッケージをインストールしますので、主要なもののみピックアップします。
- kubernetes-1.5.2-0.7.git269f928.el7.x86_64.rpm
- docker-1.13.1-53.git774336d.el7.centos.x86_64.rpm
- flannel-0.7.1-2.el7.x86_64.rpm
- etcd-3.2.15-1.el7.x86_64.rpm ※マスタサーバのみインストール
環境構築
Kubernetesのマスタサーバ構築
ホスト名の設定
hostsファイルにKubernetesのマスタサーバとMinion 2台の情報を設定します。
# cd /etc/ # vi hosts
※ファイルの末尾に追加※
192.168.0.32 k8smaster01
192.168.0.33 minion01
192.168.0.34 minion02
Kubernetes関連パッケージのインストール
Kubernetesのマスタサーバとして動作させるために必要なパッケージとして、 主役のKubernetes、キーバリューストアのetcd、Dockerコンテナ用の内部ネットワークを構成するflannelです。 yumコマンドでインストールします。
# yum -y install kubernetes etcd flannel 読み込んだプラグイン:fastestmirror, langpacks base | 3.6 kB 00:00:00 extras | 3.4 kB 00:00:00 updates | 3.4 kB 00:00:00 (1/4): extras/7/x86_64/primary_db | 181 kB 00:00:00 (2/4): base/7/x86_64/group_gz | 156 kB 00:00:06 (3/4): updates/7/x86_64/primary_db | 6.9 MB 00:00:06 (4/4): base/7/x86_64/primary_db | 5.7 MB 00:00:10 Determining fastest mirrors * base: www.ftp.ne.jp * extras: www.ftp.ne.jp * updates: www.ftp.ne.jp 依存性の解決をしています --> トランザクションの確認を実行しています。 ---> パッケージ etcd.x86_64 0:3.2.15-1.el7 を インストール ---> パッケージ flannel.x86_64 0:0.7.1-2.el7 を インストール ---> パッケージ kubernetes.x86_64 0:1.5.2-0.7.git269f928.el7 を インストール --> 依存性の処理をしています: kubernetes-node = 1.5.2-0.7.git269f928.el7 のパッケージ: kubernetes-1.5.2-0.7.git269f928.el7.x86_64 --> 依存性の処理をしています: kubernetes-master = 1.5.2-0.7.git269f928.el7 のパッケージ: kubernetes-1.5.2-0.7.git269f928.el7.x86_64 --> トランザクションの確認を実行しています。 ---> パッケージ kubernetes-master.x86_64 0:1.5.2-0.7.git269f928.el7 を インストール --> 依存性の処理をしています: kubernetes-client = 1.5.2-0.7.git269f928.el7 のパッケージ: kubernetes-master-1.5.2-0.7.git269f928.el7.x86_64 ---> パッケージ kubernetes-node.x86_64 0:1.5.2-0.7.git269f928.el7 を インストール --> 依存性の処理をしています: socat のパッケージ: kubernetes-node-1.5.2-0.7.git269f928.el7.x86_64 --> 依存性の処理をしています: docker のパッケージ: kubernetes-node-1.5.2-0.7.git269f928.el7.x86_64 --> 依存性の処理をしています: conntrack-tools のパッケージ: kubernetes-node-1.5.2-0.7.git269f928.el7.x86_64 --> トランザクションの確認を実行しています。 ---> パッケージ conntrack-tools.x86_64 0:1.4.4-3.el7_3 を インストール --> 依存性の処理をしています: libnetfilter_cttimeout.so.1(LIBNETFILTER_CTTIMEOUT_1.1)(64bit) のパッケージ: conntrack-tools-1.4.4-3.el7_3.x86_64 --> 依存性の処理をしています: libnetfilter_cttimeout.so.1(LIBNETFILTER_CTTIMEOUT_1.0)(64bit) のパッケージ: conntrack-tools-1.4.4-3.el7_3.x86_64 --> 依存性の処理をしています: libnetfilter_cthelper.so.0(LIBNETFILTER_CTHELPER_1.0)(64bit) のパッケージ: conntrack-tools-1.4.4-3.el7_3.x86_64 --> 依存性の処理をしています: libnetfilter_queue.so.1()(64bit) のパッケージ: conntrack-tools-1.4.4-3.el7_3.x86_64 --> 依存性の処理をしています: libnetfilter_cttimeout.so.1()(64bit) のパッケージ: conntrack-tools-1.4.4-3.el7_3.x86_64 --> 依存性の処理をしています: libnetfilter_cthelper.so.0()(64bit) のパッケージ: conntrack-tools-1.4.4-3.el7_3.x86_64 ---> パッケージ docker.x86_64 2:1.13.1-53.git774336d.el7.centos を インストール --> 依存性の処理をしています: docker-common = 2:1.13.1-53.git774336d.el7.centos のパッケージ: 2:docker-1.13.1-53.git774336d.el7.centos.x86_64 --> 依存性の処理をしています: docker-client = 2:1.13.1-53.git774336d.el7.centos のパッケージ: 2:docker-1.13.1-53.git774336d.el7.centos.x86_64 ---> パッケージ kubernetes-client.x86_64 0:1.5.2-0.7.git269f928.el7 を インストール ---> パッケージ socat.x86_64 0:1.7.3.2-2.el7 を インストール --> トランザクションの確認を実行しています。 ---> パッケージ docker-client.x86_64 2:1.13.1-53.git774336d.el7.centos を インストール ---> パッケージ docker-common.x86_64 2:1.13.1-53.git774336d.el7.centos を インストール --> 依存性の処理をしています: skopeo-containers >= 1:0.1.26-2 のパッケージ: 2:docker-common-1.13.1-53.git774336d.el7.centos.x86_64 --> 依存性の処理をしています: oci-umount >= 2:2.0.0-1 のパッケージ: 2:docker-common-1.13.1-53.git774336d.el7.centos.x86_64 --> 依存性の処理をしています: oci-systemd-hook >= 1:0.1.4-9 のパッケージ: 2:docker-common-1.13.1-53.git774336d.el7.centos.x86_64 --> 依存性の処理をしています: oci-register-machine >= 1:0-5.13 のパッケージ: 2:docker-common-1.13.1-53.git774336d.el7.centos.x86_64 --> 依存性の処理をしています: container-storage-setup >= 0.7.0-1 のパッケージ: 2:docker-common-1.13.1-53.git774336d.el7.centos.x86_64 --> 依存性の処理をしています: container-selinux >= 2:2.21-2 のパッケージ: 2:docker-common-1.13.1-53.git774336d.el7.centos.x86_64 ---> パッケージ libnetfilter_cthelper.x86_64 0:1.0.0-9.el7 を インストール ---> パッケージ libnetfilter_cttimeout.x86_64 0:1.0.0-6.el7 を インストール ---> パッケージ libnetfilter_queue.x86_64 0:1.0.2-2.el7_2 を インストール --> トランザクションの確認を実行しています。 ---> パッケージ container-selinux.noarch 2:2.42-1.gitad8f0f7.el7 を インストール --> 依存性の処理をしています: policycoreutils-python のパッケージ: 2:container-selinux-2.42-1.gitad8f0f7.el7.noarch ---> パッケージ container-storage-setup.noarch 0:0.8.0-3.git1d27ecf.el7 を インストール ---> パッケージ oci-register-machine.x86_64 1:0-6.git2b44233.el7 を インストール ---> パッケージ oci-systemd-hook.x86_64 1:0.1.15-2.gitc04483d.el7 を インストール ---> パッケージ oci-umount.x86_64 2:2.3.3-3.gite3c9055.el7 を インストール ---> パッケージ skopeo-containers.x86_64 1:0.1.28-1.git0270e56.el7 を インストール --> トランザクションの確認を実行しています。 ---> パッケージ policycoreutils-python.x86_64 0:2.5-17.1.el7 を インストール --> 依存性の処理をしています: setools-libs >= 3.3.8-1 のパッケージ: policycoreutils-python-2.5-17.1.el7.x86_64 --> 依存性の処理をしています: libsemanage-python >= 2.5-5 のパッケージ: policycoreutils-python-2.5-17.1.el7.x86_64 --> 依存性の処理をしています: audit-libs-python >= 2.1.3-4 のパッケージ: policycoreutils-python-2.5-17.1.el7.x86_64 --> 依存性の処理をしています: python-IPy のパッケージ: policycoreutils-python-2.5-17.1.el7.x86_64 --> 依存性の処理をしています: libqpol.so.1(VERS_1.4)(64bit) のパッケージ: policycoreutils-python-2.5-17.1.el7.x86_64 --> 依存性の処理をしています: libqpol.so.1(VERS_1.2)(64bit) のパッケージ: policycoreutils-python-2.5-17.1.el7.x86_64 --> 依存性の処理をしています: libcgroup のパッケージ: policycoreutils-python-2.5-17.1.el7.x86_64 --> 依存性の処理をしています: libapol.so.4(VERS_4.0)(64bit) のパッケージ: policycoreutils-python-2.5-17.1.el7.x86_64 --> 依存性の処理をしています: checkpolicy のパッケージ: policycoreutils-python-2.5-17.1.el7.x86_64 --> 依存性の処理をしています: libqpol.so.1()(64bit) のパッケージ: policycoreutils-python-2.5-17.1.el7.x86_64 --> 依存性の処理をしています: libapol.so.4()(64bit) のパッケージ: policycoreutils-python-2.5-17.1.el7.x86_64 --> トランザクションの確認を実行しています。 ---> パッケージ audit-libs-python.x86_64 0:2.7.6-3.el7 を インストール ---> パッケージ checkpolicy.x86_64 0:2.5-4.el7 を インストール ---> パッケージ libcgroup.x86_64 0:0.41-13.el7 を インストール ---> パッケージ libsemanage-python.x86_64 0:2.5-8.el7 を インストール ---> パッケージ python-IPy.noarch 0:0.75-6.el7 を インストール ---> パッケージ setools-libs.x86_64 0:3.3.8-1.1.el7 を インストール --> 依存性解決を終了しました。 依存性を解決しました ============================================================================================================================================ Package アーキテクチャー バージョン リポジトリー 容量 ============================================================================================================================================ インストール中: etcd x86_64 3.2.15-1.el7 extras 9.2 M flannel x86_64 0.7.1-2.el7 extras 6.6 M kubernetes x86_64 1.5.2-0.7.git269f928.el7 extras 36 k 依存性関連でのインストールをします: audit-libs-python x86_64 2.7.6-3.el7 base 73 k checkpolicy x86_64 2.5-4.el7 base 290 k conntrack-tools x86_64 1.4.4-3.el7_3 base 186 k container-selinux noarch 2:2.42-1.gitad8f0f7.el7 extras 32 k container-storage-setup noarch 0.8.0-3.git1d27ecf.el7 extras 33 k docker x86_64 2:1.13.1-53.git774336d.el7.centos extras 16 M docker-client x86_64 2:1.13.1-53.git774336d.el7.centos extras 3.7 M docker-common x86_64 2:1.13.1-53.git774336d.el7.centos extras 86 k kubernetes-client x86_64 1.5.2-0.7.git269f928.el7 extras 14 M kubernetes-master x86_64 1.5.2-0.7.git269f928.el7 extras 25 M kubernetes-node x86_64 1.5.2-0.7.git269f928.el7 extras 14 M libcgroup x86_64 0.41-13.el7 base 65 k libnetfilter_cthelper x86_64 1.0.0-9.el7 base 18 k libnetfilter_cttimeout x86_64 1.0.0-6.el7 base 18 k libnetfilter_queue x86_64 1.0.2-2.el7_2 base 23 k libsemanage-python x86_64 2.5-8.el7 base 104 k oci-register-machine x86_64 1:0-6.git2b44233.el7 extras 1.1 M oci-systemd-hook x86_64 1:0.1.15-2.gitc04483d.el7 extras 33 k oci-umount x86_64 2:2.3.3-3.gite3c9055.el7 extras 32 k policycoreutils-python x86_64 2.5-17.1.el7 base 446 k python-IPy noarch 0.75-6.el7 base 32 k setools-libs x86_64 3.3.8-1.1.el7 base 612 k skopeo-containers x86_64 1:0.1.28-1.git0270e56.el7 extras 13 k socat x86_64 1.7.3.2-2.el7 base 290 k トランザクションの要約 ============================================================================================================================================ インストール 3 パッケージ (+24 個の依存関係のパッケージ) 総ダウンロード容量: 92 M インストール容量: 455 M Downloading packages: 警告: /var/cache/yum/x86_64/7/base/packages/audit-libs-python-2.7.6-3.el7.x86_64.rpm: ヘッダー V3 RSA/SHA256 Signature、鍵 ID f4a80eb5: NOKEY audit-libs-python-2.7.6-3.el7.x86_64.rpm の公開鍵がインストールされていません (1/27): audit-libs-python-2.7.6-3.el7.x86_64.rpm | 73 kB 00:00:05 (2/27): checkpolicy-2.5-4.el7.x86_64.rpm | 290 kB 00:00:05 (3/27): conntrack-tools-1.4.4-3.el7_3.x86_64.rpm | 186 kB 00:00:00 container-storage-setup-0.8.0-3.git1d27ecf.el7.noarch.rpm の公開鍵がインストールされていません ] 0.0 B/s | 549 kB --:--:-- ETA (4/27): container-storage-setup-0.8.0-3.git1d27ecf.el7.noarch.rpm | 33 kB 00:00:05 (5/27): container-selinux-2.42-1.gitad8f0f7.el7.noarch.rpm | 32 kB 00:00:05 (6/27): docker-client-1.13.1-53.git774336d.el7.centos.x86_64.rpm | 3.7 MB 00:00:00 (7/27): docker-common-1.13.1-53.git774336d.el7.centos.x86_64.rpm | 86 kB 00:00:00 (8/27): docker-1.13.1-53.git774336d.el7.centos.x86_64.rpm | 16 MB 00:00:02 (9/27): etcd-3.2.15-1.el7.x86_64.rpm | 9.2 MB 00:00:02 (10/27): flannel-0.7.1-2.el7.x86_64.rpm | 6.6 MB 00:00:01 (11/27): kubernetes-1.5.2-0.7.git269f928.el7.x86_64.rpm | 36 kB 00:00:00 (12/27): kubernetes-client-1.5.2-0.7.git269f928.el7.x86_64.rpm | 14 MB 00:00:02 (13/27): kubernetes-master-1.5.2-0.7.git269f928.el7.x86_64.rpm | 25 MB 00:00:02 (14/27): kubernetes-node-1.5.2-0.7.git269f928.el7.x86_64.rpm | 14 MB 00:00:02 (15/27): libcgroup-0.41-13.el7.x86_64.rpm | 65 kB 00:00:05 (16/27): libnetfilter_cthelper-1.0.0-9.el7.x86_64.rpm | 18 kB 00:00:05 (17/27): libnetfilter_cttimeout-1.0.0-6.el7.x86_64.rpm | 18 kB 00:00:00 (18/27): libnetfilter_queue-1.0.2-2.el7_2.x86_64.rpm | 23 kB 00:00:00 (19/27): libsemanage-python-2.5-8.el7.x86_64.rpm | 104 kB 00:00:00 (20/27): oci-systemd-hook-0.1.15-2.gitc04483d.el7.x86_64.rpm | 33 kB 00:00:00 (21/27): oci-umount-2.3.3-3.gite3c9055.el7.x86_64.rpm | 32 kB 00:00:00 (22/27): policycoreutils-python-2.5-17.1.el7.x86_64.rpm | 446 kB 00:00:00 (23/27): setools-libs-3.3.8-1.1.el7.x86_64.rpm | 612 kB 00:00:00 (24/27): socat-1.7.3.2-2.el7.x86_64.rpm | 290 kB 00:00:00 (25/27): python-IPy-0.75-6.el7.noarch.rpm | 32 kB 00:00:05 (26/27): oci-register-machine-0-6.git2b44233.el7.x86_64.rpm | 1.1 MB 00:00:05 (27/27): skopeo-containers-0.1.28-1.git0270e56.el7.x86_64.rpm | 13 kB 00:00:05 -------------------------------------------------------------------------------------------------------------------------------------------- 合計 3.3 MB/s | 92 MB 00:00:28 file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 から鍵を取得中です。 Importing GPG key 0xF4A80EB5: Userid : "CentOS-7 Key (CentOS 7 Official Signing Key) <security@centos.org>" Fingerprint: 6341 ab27 53d7 8a78 a7c2 7bb1 24c6 a8a7 f4a8 0eb5 Package : centos-release-7-4.1708.el7.centos.x86_64 (@anaconda) From : /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 Running transaction check Running transaction test Transaction test succeeded Running transaction インストール中 : kubernetes-client-1.5.2-0.7.git269f928.el7.x86_64 1/27 インストール中 : kubernetes-master-1.5.2-0.7.git269f928.el7.x86_64 2/27 インストール中 : setools-libs-3.3.8-1.1.el7.x86_64 3/27 インストール中 : container-storage-setup-0.8.0-3.git1d27ecf.el7.noarch 4/27 インストール中 : audit-libs-python-2.7.6-3.el7.x86_64 5/27 インストール中 : socat-1.7.3.2-2.el7.x86_64 6/27 インストール中 : 1:oci-systemd-hook-0.1.15-2.gitc04483d.el7.x86_64 7/27 インストール中 : 2:oci-umount-2.3.3-3.gite3c9055.el7.x86_64 8/27 インストール中 : 1:oci-register-machine-0-6.git2b44233.el7.x86_64 9/27 インストール中 : libsemanage-python-2.5-8.el7.x86_64 10/27 インストール中 : libcgroup-0.41-13.el7.x86_64 11/27 インストール中 : python-IPy-0.75-6.el7.noarch 12/27 インストール中 : libnetfilter_queue-1.0.2-2.el7_2.x86_64 13/27 インストール中 : checkpolicy-2.5-4.el7.x86_64 14/27 インストール中 : policycoreutils-python-2.5-17.1.el7.x86_64 15/27 インストール中 : 2:container-selinux-2.42-1.gitad8f0f7.el7.noarch 16/27 setsebool: SELinux is disabled. インストール中 : 1:skopeo-containers-0.1.28-1.git0270e56.el7.x86_64 17/27 インストール中 : 2:docker-common-1.13.1-53.git774336d.el7.centos.x86_64 18/27 インストール中 : 2:docker-client-1.13.1-53.git774336d.el7.centos.x86_64 19/27 インストール中 : 2:docker-1.13.1-53.git774336d.el7.centos.x86_64 20/27 インストール中 : libnetfilter_cttimeout-1.0.0-6.el7.x86_64 21/27 インストール中 : libnetfilter_cthelper-1.0.0-9.el7.x86_64 22/27 インストール中 : conntrack-tools-1.4.4-3.el7_3.x86_64 23/27 インストール中 : kubernetes-node-1.5.2-0.7.git269f928.el7.x86_64 24/27 インストール中 : kubernetes-1.5.2-0.7.git269f928.el7.x86_64 25/27 インストール中 : flannel-0.7.1-2.el7.x86_64 26/27 インストール中 : etcd-3.2.15-1.el7.x86_64 27/27 検証中 : libnetfilter_cthelper-1.0.0-9.el7.x86_64 1/27 検証中 : libnetfilter_cttimeout-1.0.0-6.el7.x86_64 2/27 検証中 : policycoreutils-python-2.5-17.1.el7.x86_64 3/27 検証中 : 1:skopeo-containers-0.1.28-1.git0270e56.el7.x86_64 4/27 検証中 : conntrack-tools-1.4.4-3.el7_3.x86_64 5/27 検証中 : checkpolicy-2.5-4.el7.x86_64 6/27 検証中 : 2:docker-client-1.13.1-53.git774336d.el7.centos.x86_64 7/27 検証中 : 2:container-selinux-2.42-1.gitad8f0f7.el7.noarch 8/27 検証中 : etcd-3.2.15-1.el7.x86_64 9/27 検証中 : libnetfilter_queue-1.0.2-2.el7_2.x86_64 10/27 検証中 : kubernetes-client-1.5.2-0.7.git269f928.el7.x86_64 11/27 検証中 : python-IPy-0.75-6.el7.noarch 12/27 検証中 : 2:docker-common-1.13.1-53.git774336d.el7.centos.x86_64 13/27 検証中 : 2:docker-1.13.1-53.git774336d.el7.centos.x86_64 14/27 検証中 : libcgroup-0.41-13.el7.x86_64 15/27 検証中 : libsemanage-python-2.5-8.el7.x86_64 16/27 検証中 : flannel-0.7.1-2.el7.x86_64 17/27 検証中 : 1:oci-register-machine-0-6.git2b44233.el7.x86_64 18/27 検証中 : 2:oci-umount-2.3.3-3.gite3c9055.el7.x86_64 19/27 検証中 : 1:oci-systemd-hook-0.1.15-2.gitc04483d.el7.x86_64 20/27 検証中 : kubernetes-master-1.5.2-0.7.git269f928.el7.x86_64 21/27 検証中 : kubernetes-1.5.2-0.7.git269f928.el7.x86_64 22/27 検証中 : socat-1.7.3.2-2.el7.x86_64 23/27 検証中 : audit-libs-python-2.7.6-3.el7.x86_64 24/27 検証中 : kubernetes-node-1.5.2-0.7.git269f928.el7.x86_64 25/27 検証中 : container-storage-setup-0.8.0-3.git1d27ecf.el7.noarch 26/27 検証中 : setools-libs-3.3.8-1.1.el7.x86_64 27/27 インストール: etcd.x86_64 0:3.2.15-1.el7 flannel.x86_64 0:0.7.1-2.el7 kubernetes.x86_64 0:1.5.2-0.7.git269f928.el7 依存性関連をインストールしました: audit-libs-python.x86_64 0:2.7.6-3.el7 checkpolicy.x86_64 0:2.5-4.el7 conntrack-tools.x86_64 0:1.4.4-3.el7_3 container-selinux.noarch 2:2.42-1.gitad8f0f7.el7 container-storage-setup.noarch 0:0.8.0-3.git1d27ecf.el7 docker.x86_64 2:1.13.1-53.git774336d.el7.centos docker-client.x86_64 2:1.13.1-53.git774336d.el7.centos docker-common.x86_64 2:1.13.1-53.git774336d.el7.centos kubernetes-client.x86_64 0:1.5.2-0.7.git269f928.el7 kubernetes-master.x86_64 0:1.5.2-0.7.git269f928.el7 kubernetes-node.x86_64 0:1.5.2-0.7.git269f928.el7 libcgroup.x86_64 0:0.41-13.el7 libnetfilter_cthelper.x86_64 0:1.0.0-9.el7 libnetfilter_cttimeout.x86_64 0:1.0.0-6.el7 libnetfilter_queue.x86_64 0:1.0.2-2.el7_2 libsemanage-python.x86_64 0:2.5-8.el7 oci-register-machine.x86_64 1:0-6.git2b44233.el7 oci-systemd-hook.x86_64 1:0.1.15-2.gitc04483d.el7 oci-umount.x86_64 2:2.3.3-3.gite3c9055.el7 policycoreutils-python.x86_64 0:2.5-17.1.el7 python-IPy.noarch 0:0.75-6.el7 setools-libs.x86_64 0:3.3.8-1.1.el7 skopeo-containers.x86_64 1:0.1.28-1.git0270e56.el7 socat.x86_64 0:1.7.3.2-2.el7 完了しました!
etcdの設定
キーバリューストアのetcdを設定します。etcdはkubernetesとflannelから利用されます。 なお、マスタサーバだけでなく、Minion上で稼働するkubernetesとflannelからも利用されます。 マスタサーバの全てのインタフェースでクライアント(kubernetesとflannel)からのリクエストを受けるよう、 リッスンアドレスに 0.0.0.0 を指定します。
# cd /etc/etcd/ # vi etcd.conf
※以下、該当箇所のみ変更※ ETCD_LISTEN_CLIENT_URLS="http://localhost:2379" ↓変更 ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379" ←全てのインタフェースの2379ポートでリッスンする
etcdの自動起動設定とサービスの起動
etcdのサービスに対して自動起動の設定を行い、サービスを起動します。 etcdはkubernetesとflannelから利用されるため、これらより先に起動しておく必要があります。
# systemctl status etcd.service ● etcd.service - Etcd Server Loaded: loaded (/usr/lib/systemd/system/etcd.service; disabled; vendor preset: disabled) ←自動起動無効 Active: inactive (dead) ←停止状態 # systemctl enable etcd.service Created symlink from /etc/systemd/system/multi-user.target.wants/etcd.service to /usr/lib/systemd/system/etcd.service. # systemctl status etcd.service ● etcd.service - Etcd Server Loaded: loaded (/usr/lib/systemd/system/etcd.service; enabled; vendor preset: disabled) ←自動起動有効 Active: inactive (dead) ←停止状態 # systemctl start etcd.service # systemctl status etcd.service ● etcd.service - Etcd Server Loaded: loaded (/usr/lib/systemd/system/etcd.service; enabled; vendor preset: disabled) ←自動起動有効 Active: active (running) since 日 2018-03-18 00:14:28 JST; 5s ago ←起動状態 Main PID: 1737 (etcd) Memory: 8.6M CGroup: /system.slice/etcd.service mq1737 /usr/bin/etcd --name=default --data-dir=/var/lib/etcd/default.etcd --listen-client-urls=http://0.0.0.0:2379 3月 18 00:14:28 centos74 etcd[1737]: 8e9e05c52164694d received MsgVoteResp from 8e9e05c52164694d at term 2 3月 18 00:14:28 centos74 etcd[1737]: 8e9e05c52164694d became leader at term 2 3月 18 00:14:28 centos74 etcd[1737]: raft.node: 8e9e05c52164694d elected leader 8e9e05c52164694d at term 2 3月 18 00:14:28 centos74 etcd[1737]: published {Name:default ClientURLs:[http://192.168.0.32:2379]} to cluster cdf818194e3a8c32 3月 18 00:14:28 centos74 etcd[1737]: setting up the initial cluster version to 3.2 3月 18 00:14:28 centos74 etcd[1737]: ready to serve client requests 3月 18 00:14:28 centos74 etcd[1737]: serving insecure client requests on [::]:2379, this is strongly discouraged! 3月 18 00:14:28 centos74 etcd[1737]: set the initial cluster version to 3.2 3月 18 00:14:28 centos74 etcd[1737]: enabled capabilities for version 3.2 3月 18 00:14:28 centos74 systemd[1]: Started Etcd Server.
flannelが使用する仮想ネットワークのIPアドレスを指定
キーバリューストアのetcdに対して、flannelが構成する仮想ネットワークのネットワークアドレスを設定します。
# etcdctl mk /atomic.io/network/config '{"Network":"172.17.0.0/16"}' {"Network":"172.17.0.0/16"}
flannelの自動起動設定とサービスの起動
flannelのサービスに対して自動起動の設定を行い、サービスを起動します。 flannelはetcdの情報を見て仮想ネットワークを構成するため、flannelより先にetcdを起動しておく必要があります。 今回の手順では先にetcdを起動済みなので問題ありません。
# systemctl status flanneld.service ● flanneld.service - Flanneld overlay address etcd agent Loaded: loaded (/usr/lib/systemd/system/flanneld.service; disabled; vendor preset: disabled) ←自動起動無効 Active: inactive (dead) ←停止状態 # systemctl enable flanneld.service Created symlink from /etc/systemd/system/multi-user.target.wants/flanneld.service to /usr/lib/systemd/system/flanneld.service. Created symlink from /etc/systemd/system/docker.service.requires/flanneld.service to /usr/lib/systemd/system/flanneld.service. # systemctl status flanneld.service ● flanneld.service - Flanneld overlay address etcd agent Loaded: loaded (/usr/lib/systemd/system/flanneld.service; enabled; vendor preset: disabled) ←自動起動有効 Active: inactive (dead) ←停止状態 # systemctl start flanneld.service # systemctl status flanneld.service ● flanneld.service - Flanneld overlay address etcd agent Loaded: loaded (/usr/lib/systemd/system/flanneld.service; enabled; vendor preset: disabled) ←自動起動有効 Active: active (running) since 日 2018-03-18 00:22:31 JST; 5s ago ←起動状態 Process: 8532 ExecStartPost=/usr/libexec/flannel/mk-docker-opts.sh -k DOCKER_NETWORK_OPTIONS -d /run/flannel/docker (code=exited, status=0/SUCCESS) Main PID: 8519 (flanneld) Memory: 4.6M CGroup: /system.slice/flanneld.service mq8519 /usr/bin/flanneld -etcd-endpoints=http://127.0.0.1:2379 -etcd-prefix=/atomic.io/network 3月 18 00:22:31 centos74 systemd[1]: Starting Flanneld overlay address etcd agent... 3月 18 00:22:31 centos74 flanneld-start[8519]: I0318 00:22:31.456663 8519 main.go:132] Installing signal handlers 3月 18 00:22:31 centos74 flanneld-start[8519]: I0318 00:22:31.456747 8519 manager.go:136] Determining IP address of default interface 3月 18 00:22:31 centos74 flanneld-start[8519]: I0318 00:22:31.456898 8519 manager.go:149] Using interface with name ens32 and...68.0.32 3月 18 00:22:31 centos74 flanneld-start[8519]: I0318 00:22:31.456912 8519 manager.go:166] Defaulting external address to inte...8.0.32) 3月 18 00:22:31 centos74 flanneld-start[8519]: I0318 00:22:31.461214 8519 local_manager.go:179] Picking subnet in range 172.1...7.255.0 3月 18 00:22:31 centos74 flanneld-start[8519]: I0318 00:22:31.467409 8519 manager.go:250] Lease acquired: 172.17.76.0/24 3月 18 00:22:31 centos74 flanneld-start[8519]: I0318 00:22:31.467646 8519 network.go:98] Watching for new subnet leases 3月 18 00:22:31 centos74 systemd[1]: Started Flanneld overlay address etcd agent. Hint: Some lines were ellipsized, use -l to show in full.
apiserverの設定
Kubernetesのapiserverの設定を行います。 ここではKubernetsのAPI認証に使用されるRSA暗号の秘密鍵ファイルを作成し、apiserverの設定ファイルにパスを設定します。 また、apiserverがリッスンするIPアドレスを設定します。IPアドレスはマスタサーバのIPアドレスを指定しています。
# openssl genrsa -out /etc/kubernetes/serviceaccount.key 2048 Generating RSA private key, 2048 bit long modulus ....................................................................+++ ..............................................+++ e is 65537 (0x10001) # cd /etc/kubernetes/ # vi apiserver
※以下、該当箇所のみ変更※ KUBE_API_ADDRESS="--insecure-bind-address=127.0.0.1" ↓変更 KUBE_API_ADDRESS="--address=192.168.0.32"
KUBE_API_ARGS=""
↓変更
KUBE_API_ARGS="--service_account_key_file=/etc/kubernetes/serviceaccount.key"
controller-managerの設定
Kubernetesのcontroller-managerにも同じRSA暗号の秘密鍵ファイルのパスを設定します。
# vi controller-manager
※以下、該当箇所のみ変更※ KUBE_CONTROLLER_MANAGER_ARGS="" ↓変更 KUBE_CONTROLLER_MANAGER_ARGS="--service_account_private_key_file=/etc/kubernetes/serviceaccount.key"
Kubernetesシステム設定
Kubernetesのシステム設定として、マスタサーバへ接続するためのURLを設定します。
# vi config
※以下、該当箇所のみ変更※ KUBE_MASTER="--master=http://127.0.0.1:8080" ↓変更 KUBE_MASTER="--master=http://k8smaster01:8080"
apiserverの自動起動設定とサービスの起動
apiserverのサービスに対して自動起動の設定を行い、サービスを起動します。
# systemctl status kube-apiserver.service ● kube-apiserver.service - Kubernetes API Server Loaded: loaded (/usr/lib/systemd/system/kube-apiserver.service; disabled; vendor preset: disabled) ←自動起動無効 Active: inactive (dead) ←停止状態 Docs: https://github.com/GoogleCloudPlatform/kubernetes # systemctl enable kube-apiserver.service Created symlink from /etc/systemd/system/multi-user.target.wants/kube-apiserver.service to /usr/lib/systemd/system/kube-apiserver.service. # systemctl status kube-apiserver.service ● kube-apiserver.service - Kubernetes API Server Loaded: loaded (/usr/lib/systemd/system/kube-apiserver.service; enabled; vendor preset: disabled) ←自動起動有効 Active: inactive (dead) ←停止状態 Docs: https://github.com/GoogleCloudPlatform/kubernetes # systemctl start kube-apiserver.service # systemctl status kube-apiserver.service ● kube-apiserver.service - Kubernetes API Server Loaded: loaded (/usr/lib/systemd/system/kube-apiserver.service; enabled; vendor preset: disabled) ←自動起動有効 Active: active (running) since 日 2018-03-18 00:34:14 JST; 2s ago ←起動状態 Docs: https://github.com/GoogleCloudPlatform/kubernetes Main PID: 8659 (kube-apiserver) Memory: 35.9M CGroup: /system.slice/kube-apiserver.service mq8659 /usr/bin/kube-apiserver --logtostderr=true --v=0 --etcd-servers=http://127.0.0.1:2379 --address=192.168.0.32 --allow-pr... 3月 18 00:34:14 centos74 kube-apiserver[8659]: I0318 00:34:14.656985 8659 storage_rbac.go:151] Created clusterrolebinding.rba...em:node 3月 18 00:34:14 centos74 kube-apiserver[8659]: I0318 00:34:14.658383 8659 storage_rbac.go:151] Created clusterrolebinding.rba...proxier 3月 18 00:34:14 centos74 kube-apiserver[8659]: I0318 00:34:14.660326 8659 storage_rbac.go:151] Created clusterrolebinding.rba...troller 3月 18 00:34:15 centos74 kube-apiserver[8659]: I0318 00:34:15.648831 8659 trace.go:61] Trace "Create /api/v1/namespaces/defau...0 JST): 3月 18 00:34:15 centos74 kube-apiserver[8659]: [8.9μs] [8.9μs] About to convert to expected version 3月 18 00:34:15 centos74 kube-apiserver[8659]: [141.923μs] [133.023μs] Conversion done 3月 18 00:34:15 centos74 kube-apiserver[8659]: [1.002566934s] [1.002425011s] About to store object in database 3月 18 00:34:15 centos74 kube-apiserver[8659]: [1.004094861s] [1.527927ms] Object stored in database 3月 18 00:34:15 centos74 kube-apiserver[8659]: [1.004101716s] [6.855μs] Self-link added 3月 18 00:34:15 centos74 kube-apiserver[8659]: "Create /api/v1/namespaces/default/services" [1.004147566s] [45.85μs] END Hint: Some lines were ellipsized, use -l to show in full.
controller-managerの自動起動設定とサービスの起動
controller-managerのサービスに対して自動起動の設定を行い、サービスを起動します。
# systemctl status kube-controller-manager.service ● kube-controller-manager.service - Kubernetes Controller Manager Loaded: loaded (/usr/lib/systemd/system/kube-controller-manager.service; disabled; vendor preset: disabled) ←自動起動無効 Active: inactive (dead) ←停止状態 Docs: https://github.com/GoogleCloudPlatform/kubernetes # systemctl enable kube-controller-manager.service Created symlink from /etc/systemd/system/multi-user.target.wants/kube-controller-manager.service to /usr/lib/systemd/system/kube-controller-manager.service. # systemctl status kube-controller-manager.service ● kube-controller-manager.service - Kubernetes Controller Manager Loaded: loaded (/usr/lib/systemd/system/kube-controller-manager.service; enabled; vendor preset: disabled) ←自動起動有効 Active: inactive (dead) ←停止状態 Docs: https://github.com/GoogleCloudPlatform/kubernetes # systemctl start kube-controller-manager.service # systemctl status kube-controller-manager.service ● kube-controller-manager.service - Kubernetes Controller Manager Loaded: loaded (/usr/lib/systemd/system/kube-controller-manager.service; enabled; vendor preset: disabled) ←自動起動有効 Active: active (running) since 日 2018-03-18 00:35:20 JST; 2s ago ←起動状態 Docs: https://github.com/GoogleCloudPlatform/kubernetes Main PID: 8692 (kube-controller) Memory: 19.7M CGroup: /system.slice/kube-controller-manager.service mq8692 /usr/bin/kube-controller-manager --logtostderr=true --v=0 --master=http://k8smaster01:8080 --service_account_private_ke... 3月 18 00:35:20 centos74 kube-controller-manager[8692]: I0318 00:35:20.245589 8692 pet_set.go:146] Starting statefulset controller 3月 18 00:35:20 centos74 kube-controller-manager[8692]: I0318 00:35:20.252393 8692 controllermanager.go:544] Attempting to sta....k8s.i 3月 18 00:35:20 centos74 kube-controller-manager[8692]: Event} {limitranges true LimitRange} {namespaces false Namespace} {namesp...tatus 3月 18 00:35:20 centos74 kube-controller-manager[8692]: I0318 00:35:20.252515 8692 controllermanager.go:546] Starting certific...1 apis 3月 18 00:35:20 centos74 kube-controller-manager[8692]: I0318 00:35:20.252527 8692 controllermanager.go:548] Starting certific...roller 3月 18 00:35:20 centos74 kube-controller-manager[8692]: E0318 00:35:20.252688 8692 controllermanager.go:558] Failed to start c...ectory 3月 18 00:35:20 centos74 kube-controller-manager[8692]: E0318 00:35:20.252853 8692 util.go:45] Metric for serviceaccount_contr...stered 3月 18 00:35:20 centos74 kube-controller-manager[8692]: I0318 00:35:20.253803 8692 attach_detach_controller.go:235] Starting A...roller 3月 18 00:35:20 centos74 kube-controller-manager[8692]: I0318 00:35:20.253832 8692 serviceaccounts_controller.go:120] Starting...roller 3月 18 00:35:20 centos74 kube-controller-manager[8692]: I0318 00:35:20.263410 8692 garbagecollector.go:766] Garbage Collector:...lizing Hint: Some lines were ellipsized, use -l to show in full.
schedulerの自動起動設定とサービスの起動
schedulerのサービスに対して自動起動の設定を行い、サービスを起動します。
# systemctl status kube-scheduler.service ● kube-scheduler.service - Kubernetes Scheduler Plugin Loaded: loaded (/usr/lib/systemd/system/kube-scheduler.service; disabled; vendor preset: disabled) ←自動起動無効 Active: inactive (dead) ←停止状態 Docs: https://github.com/GoogleCloudPlatform/kubernetes # systemctl enable kube-scheduler.service Created symlink from /etc/systemd/system/multi-user.target.wants/kube-scheduler.service to /usr/lib/systemd/system/kube-scheduler.service. # systemctl status kube-scheduler.service ● kube-scheduler.service - Kubernetes Scheduler Plugin Loaded: loaded (/usr/lib/systemd/system/kube-scheduler.service; enabled; vendor preset: disabled) ←自動起動有効 Active: inactive (dead) ←停止状態 Docs: https://github.com/GoogleCloudPlatform/kubernetes # systemctl start kube-scheduler.service # systemctl status kube-scheduler.service ● kube-scheduler.service - Kubernetes Scheduler Plugin Loaded: loaded (/usr/lib/systemd/system/kube-scheduler.service; enabled; vendor preset: disabled) ←自動起動有効 Active: active (running) since 日 2018-03-18 00:36:05 JST; 1s ago ←起動状態 Docs: https://github.com/GoogleCloudPlatform/kubernetes Main PID: 8726 (kube-scheduler) Memory: 12.1M CGroup: /system.slice/kube-scheduler.service mq8726 /usr/bin/kube-scheduler --logtostderr=true --v=0 --master=http://k8smaster01:8080 3月 18 00:36:05 centos74 systemd[1]: Started Kubernetes Scheduler Plugin. 3月 18 00:36:05 centos74 systemd[1]: Starting Kubernetes Scheduler Plugin... 3月 18 00:36:05 centos74 kube-scheduler[8726]: I0318 00:36:05.225257 8726 leaderelection.go:188] sucessfully acquired lease k...heduler 3月 18 00:36:05 centos74 kube-scheduler[8726]: I0318 00:36:05.225516 8726 event.go:217] Event(api.ObjectReference{Kind:"Endpo... leader Hint: Some lines were ellipsized, use -l to show in full.
kubectlコマンドを利用するための設定
Kubernetesの管理コマンドであるkubectlを利用できるようにするための設定を行います。 設定はユーザ(OSユーザ)単位で必要で、ユーザのホームディレクトリ配下の .kube/config ファイルに設定します。 viエディタで作成しても良いですが、kubectl configのコマンドでファイルを生成することもできるので、 今回は kubectl configコマンドを利用して作成します。
# kubectl config set-credentials myself --username=admin --password=P@ssw0rd User "myself" set. # kubectl config set-cluster local-server --server=http://k8smaster01:8080 Cluster "local-server" set. # kubectl config set-context default-context --cluster=local-server --user=myself Context "default-context" set. # kubectl config use-context default-context Switched to context "default-context". # kubectl config set contexts.default-context.namespace default Property "contexts.default-context.namespace" set. # kubectl cluster-info Kubernetes master is running at http://k8smaster01:8080 To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'. # cat ~/.kube/config apiVersion: v1 clusters: - cluster: server: http://k8smaster01:8080 name: local-server contexts: - context: cluster: local-server namespace: default user: myself name: default-context current-context: default-context kind: Config preferences: {} users: - name: myself user: password: P@ssw0rd username: admin
Kubernetes関連プロセスの起動確認
一通り設定し、サービスを起動できたところで、Kubernetes関連のプロセスが起動しているかを確認します。
# ps -ef | grep apiserver | grep -v grep kube 1319 1 0 11:07 ? 00:00:59 /usr/bin/kube-apiserver --logtostderr=true --v=0 --etcd-servers=http://127.0.0.1:2379 --address=192.168.0.32 --allow-privileged=false --service-cluster-ip-range=10.254.0.0/16 --admission-control=NamespaceLifecycle,NamespaceExists,LimitRanger,SecurityContextDeny,ServiceAccount,ResourceQuota --service_account_key_file=/etc/kubernetes/serviceaccount.key ←コレ # ps -ef | grep controller-manager | grep -v grep kube 693 1 0 11:07 ? 00:01:18 /usr/bin/kube-controller-manager --logtostderr=true --v=0 --master=http://k8smaster01:8080 --service_account_private_key_file=/etc/kubernetes/serviceaccount.key ←コレ # ps -ef | grep scheduler | grep -v grep kube 678 1 0 11:07 ? 00:00:11 /usr/bin/kube-scheduler --logtostderr=true --v=0 --master=http://k8smaster01:8080 ←コレ # ps -ef | grep etcd | grep -v grep etcd 1022 1 0 11:07 ? 00:01:03 /usr/bin/etcd --name=default --data-dir=/var/lib/etcd/default.etcd --listen-client-urls=http://0.0.0.0:2379 ←コレ root 1318 1 0 11:07 ? 00:00:00 /usr/bin/flanneld -etcd-endpoints=http://127.0.0.1:2379 -etcd-prefix=/atomic.io/network kube 1319 1 0 11:07 ? 00:00:59 /usr/bin/kube-apiserver --logtostderr=true --v=0 --etcd-servers=http://127.0.0.1:2379 --address=192.168.0.32 --allow-privileged=false --service-cluster-ip-range=10.254.0.0/16 --admission-control=NamespaceLifecycle,NamespaceExists,LimitRanger,SecurityContextDeny,ServiceAccount,ResourceQuota --service_account_key_file=/etc/kubernetes/serviceaccount.key # ps -ef | grep flanneld | grep -v grep root 1318 1 0 11:07 ? 00:00:00 /usr/bin/flanneld -etcd-endpoints=http://127.0.0.1:2379 -etcd-prefix=/atomic.io/network ←コレ
Minionの1号機構築
ホスト名の設定
hostsファイルにKubernetesのマスタサーバとMinion 2台の情報を設定します。
# cd /etc/ # vi hosts
※ファイルの末尾に追加※
192.168.0.32 k8smaster01
192.168.0.33 minion01
192.168.0.34 minion02
Kubernetes関連パッケージのインストール
Kubernetesの管理対象ノードであるMinionとして動作させるために必要なパッケージをインストールします。 インストールするパッケージはマスタサーバとほぼ一緒なのですが、etcdはインストールせず、 マスタサーバ上のものに接続して利用します。
# yum -y install docker kubernetes flannel 読み込んだプラグイン:fastestmirror, langpacks base | 3.6 kB 00:00:00 extras | 3.4 kB 00:00:00 updates | 3.4 kB 00:00:00 (1/4): extras/7/x86_64/primary_db | 181 kB 00:00:05 (2/4): base/7/x86_64/group_gz | 156 kB 00:00:05 (3/4): base/7/x86_64/primary_db | 5.7 MB 00:00:06 (4/4): updates/7/x86_64/primary_db | 6.9 MB 00:00:06 Determining fastest mirrors * base: ftp.riken.jp * extras: ftp.riken.jp * updates: ftp.riken.jp 依存性の解決をしています --> トランザクションの確認を実行しています。 ---> パッケージ docker.x86_64 2:1.13.1-53.git774336d.el7.centos を インストール --> 依存性の処理をしています: docker-common = 2:1.13.1-53.git774336d.el7.centos のパッケージ: 2:docker-1.13.1-53.git774336d.el7.centos.x86_64 --> 依存性の処理をしています: docker-client = 2:1.13.1-53.git774336d.el7.centos のパッケージ: 2:docker-1.13.1-53.git774336d.el7.centos.x86_64 ---> パッケージ flannel.x86_64 0:0.7.1-2.el7 を インストール ---> パッケージ kubernetes.x86_64 0:1.5.2-0.7.git269f928.el7 を インストール --> 依存性の処理をしています: kubernetes-node = 1.5.2-0.7.git269f928.el7 のパッケージ: kubernetes-1.5.2-0.7.git269f928.el7.x86_64 --> 依存性の処理をしています: kubernetes-master = 1.5.2-0.7.git269f928.el7 のパッケージ: kubernetes-1.5.2-0.7.git269f928.el7.x86_64 --> トランザクションの確認を実行しています。 ---> パッケージ docker-client.x86_64 2:1.13.1-53.git774336d.el7.centos を インストール ---> パッケージ docker-common.x86_64 2:1.13.1-53.git774336d.el7.centos を インストール --> 依存性の処理をしています: skopeo-containers >= 1:0.1.26-2 のパッケージ: 2:docker-common-1.13.1-53.git774336d.el7.centos.x86_64 --> 依存性の処理をしています: oci-umount >= 2:2.0.0-1 のパッケージ: 2:docker-common-1.13.1-53.git774336d.el7.centos.x86_64 --> 依存性の処理をしています: oci-systemd-hook >= 1:0.1.4-9 のパッケージ: 2:docker-common-1.13.1-53.git774336d.el7.centos.x86_64 --> 依存性の処理をしています: oci-register-machine >= 1:0-5.13 のパッケージ: 2:docker-common-1.13.1-53.git774336d.el7.centos.x86_64 --> 依存性の処理をしています: container-storage-setup >= 0.7.0-1 のパッケージ: 2:docker-common-1.13.1-53.git774336d.el7.centos.x86_64 --> 依存性の処理をしています: container-selinux >= 2:2.21-2 のパッケージ: 2:docker-common-1.13.1-53.git774336d.el7.centos.x86_64 ---> パッケージ kubernetes-master.x86_64 0:1.5.2-0.7.git269f928.el7 を インストール --> 依存性の処理をしています: kubernetes-client = 1.5.2-0.7.git269f928.el7 のパッケージ: kubernetes-master-1.5.2-0.7.git269f928.el7.x86_64 ---> パッケージ kubernetes-node.x86_64 0:1.5.2-0.7.git269f928.el7 を インストール --> 依存性の処理をしています: socat のパッケージ: kubernetes-node-1.5.2-0.7.git269f928.el7.x86_64 --> 依存性の処理をしています: conntrack-tools のパッケージ: kubernetes-node-1.5.2-0.7.git269f928.el7.x86_64 --> トランザクションの確認を実行しています。 ---> パッケージ conntrack-tools.x86_64 0:1.4.4-3.el7_3 を インストール --> 依存性の処理をしています: libnetfilter_cttimeout.so.1(LIBNETFILTER_CTTIMEOUT_1.1)(64bit) のパッケージ: conntrack-tools-1.4.4-3.el7_3.x86_64 --> 依存性の処理をしています: libnetfilter_cttimeout.so.1(LIBNETFILTER_CTTIMEOUT_1.0)(64bit) のパッケージ: conntrack-tools-1.4.4-3.el7_3.x86_64 --> 依存性の処理をしています: libnetfilter_cthelper.so.0(LIBNETFILTER_CTHELPER_1.0)(64bit) のパッケージ: conntrack-tools-1.4.4-3.el7_3.x86_64 --> 依存性の処理をしています: libnetfilter_queue.so.1()(64bit) のパッケージ: conntrack-tools-1.4.4-3.el7_3.x86_64 --> 依存性の処理をしています: libnetfilter_cttimeout.so.1()(64bit) のパッケージ: conntrack-tools-1.4.4-3.el7_3.x86_64 --> 依存性の処理をしています: libnetfilter_cthelper.so.0()(64bit) のパッケージ: conntrack-tools-1.4.4-3.el7_3.x86_64 ---> パッケージ container-selinux.noarch 2:2.42-1.gitad8f0f7.el7 を インストール --> 依存性の処理をしています: policycoreutils-python のパッケージ: 2:container-selinux-2.42-1.gitad8f0f7.el7.noarch ---> パッケージ container-storage-setup.noarch 0:0.8.0-3.git1d27ecf.el7 を インストール ---> パッケージ kubernetes-client.x86_64 0:1.5.2-0.7.git269f928.el7 を インストール ---> パッケージ oci-register-machine.x86_64 1:0-6.git2b44233.el7 を インストール ---> パッケージ oci-systemd-hook.x86_64 1:0.1.15-2.gitc04483d.el7 を インストール ---> パッケージ oci-umount.x86_64 2:2.3.3-3.gite3c9055.el7 を インストール ---> パッケージ skopeo-containers.x86_64 1:0.1.28-1.git0270e56.el7 を インストール ---> パッケージ socat.x86_64 0:1.7.3.2-2.el7 を インストール --> トランザクションの確認を実行しています。 ---> パッケージ libnetfilter_cthelper.x86_64 0:1.0.0-9.el7 を インストール ---> パッケージ libnetfilter_cttimeout.x86_64 0:1.0.0-6.el7 を インストール ---> パッケージ libnetfilter_queue.x86_64 0:1.0.2-2.el7_2 を インストール ---> パッケージ policycoreutils-python.x86_64 0:2.5-17.1.el7 を インストール --> 依存性の処理をしています: setools-libs >= 3.3.8-1 のパッケージ: policycoreutils-python-2.5-17.1.el7.x86_64 --> 依存性の処理をしています: libsemanage-python >= 2.5-5 のパッケージ: policycoreutils-python-2.5-17.1.el7.x86_64 --> 依存性の処理をしています: audit-libs-python >= 2.1.3-4 のパッケージ: policycoreutils-python-2.5-17.1.el7.x86_64 --> 依存性の処理をしています: python-IPy のパッケージ: policycoreutils-python-2.5-17.1.el7.x86_64 --> 依存性の処理をしています: libqpol.so.1(VERS_1.4)(64bit) のパッケージ: policycoreutils-python-2.5-17.1.el7.x86_64 --> 依存性の処理をしています: libqpol.so.1(VERS_1.2)(64bit) のパッケージ: policycoreutils-python-2.5-17.1.el7.x86_64 --> 依存性の処理をしています: libcgroup のパッケージ: policycoreutils-python-2.5-17.1.el7.x86_64 --> 依存性の処理をしています: libapol.so.4(VERS_4.0)(64bit) のパッケージ: policycoreutils-python-2.5-17.1.el7.x86_64 --> 依存性の処理をしています: checkpolicy のパッケージ: policycoreutils-python-2.5-17.1.el7.x86_64 --> 依存性の処理をしています: libqpol.so.1()(64bit) のパッケージ: policycoreutils-python-2.5-17.1.el7.x86_64 --> 依存性の処理をしています: libapol.so.4()(64bit) のパッケージ: policycoreutils-python-2.5-17.1.el7.x86_64 --> トランザクションの確認を実行しています。 ---> パッケージ audit-libs-python.x86_64 0:2.7.6-3.el7 を インストール ---> パッケージ checkpolicy.x86_64 0:2.5-4.el7 を インストール ---> パッケージ libcgroup.x86_64 0:0.41-13.el7 を インストール ---> パッケージ libsemanage-python.x86_64 0:2.5-8.el7 を インストール ---> パッケージ python-IPy.noarch 0:0.75-6.el7 を インストール ---> パッケージ setools-libs.x86_64 0:3.3.8-1.1.el7 を インストール --> 依存性解決を終了しました。 依存性を解決しました ============================================================================================================================================ Package アーキテクチャー バージョン リポジトリー 容量 ============================================================================================================================================ インストール中: docker x86_64 2:1.13.1-53.git774336d.el7.centos extras 16 M flannel x86_64 0.7.1-2.el7 extras 6.6 M kubernetes x86_64 1.5.2-0.7.git269f928.el7 extras 36 k 依存性関連でのインストールをします: audit-libs-python x86_64 2.7.6-3.el7 base 73 k checkpolicy x86_64 2.5-4.el7 base 290 k conntrack-tools x86_64 1.4.4-3.el7_3 base 186 k container-selinux noarch 2:2.42-1.gitad8f0f7.el7 extras 32 k container-storage-setup noarch 0.8.0-3.git1d27ecf.el7 extras 33 k docker-client x86_64 2:1.13.1-53.git774336d.el7.centos extras 3.7 M docker-common x86_64 2:1.13.1-53.git774336d.el7.centos extras 86 k kubernetes-client x86_64 1.5.2-0.7.git269f928.el7 extras 14 M kubernetes-master x86_64 1.5.2-0.7.git269f928.el7 extras 25 M kubernetes-node x86_64 1.5.2-0.7.git269f928.el7 extras 14 M libcgroup x86_64 0.41-13.el7 base 65 k libnetfilter_cthelper x86_64 1.0.0-9.el7 base 18 k libnetfilter_cttimeout x86_64 1.0.0-6.el7 base 18 k libnetfilter_queue x86_64 1.0.2-2.el7_2 base 23 k libsemanage-python x86_64 2.5-8.el7 base 104 k oci-register-machine x86_64 1:0-6.git2b44233.el7 extras 1.1 M oci-systemd-hook x86_64 1:0.1.15-2.gitc04483d.el7 extras 33 k oci-umount x86_64 2:2.3.3-3.gite3c9055.el7 extras 32 k policycoreutils-python x86_64 2.5-17.1.el7 base 446 k python-IPy noarch 0.75-6.el7 base 32 k setools-libs x86_64 3.3.8-1.1.el7 base 612 k skopeo-containers x86_64 1:0.1.28-1.git0270e56.el7 extras 13 k socat x86_64 1.7.3.2-2.el7 base 290 k トランザクションの要約 ============================================================================================================================================ インストール 3 パッケージ (+23 個の依存関係のパッケージ) 総ダウンロード容量: 83 M インストール容量: 414 M Downloading packages: 警告: /var/cache/yum/x86_64/7/extras/packages/container-selinux-2.42-1.gitad8f0f7.el7.noarch.rpm: ヘッダー V3 RSA/SHA256 Signature、鍵 ID f4a80eb5: NOKEY container-selinux-2.42-1.gitad8f0f7.el7.noarch.rpm の公開鍵がインストールされていません (1/26): container-selinux-2.42-1.gitad8f0f7.el7.noarch.rpm | 32 kB 00:00:00 conntrack-tools-1.4.4-3.el7_3.x86_64.rpm の公開鍵がインストールされていません ] 0.0 B/s | 32 kB --:--:-- ETA (2/26): conntrack-tools-1.4.4-3.el7_3.x86_64.rpm | 186 kB 00:00:00 (3/26): docker-1.13.1-53.git774336d.el7.centos.x86_64.rpm | 16 MB 00:00:01 (4/26): docker-client-1.13.1-53.git774336d.el7.centos.x86_64.rpm | 3.7 MB 00:00:01 (5/26): docker-common-1.13.1-53.git774336d.el7.centos.x86_64.rpm | 86 kB 00:00:00 (6/26): kubernetes-1.5.2-0.7.git269f928.el7.x86_64.rpm | 36 kB 00:00:00 (7/26): flannel-0.7.1-2.el7.x86_64.rpm | 6.6 MB 00:00:00 (8/26): kubernetes-client-1.5.2-0.7.git269f928.el7.x86_64.rpm | 14 MB 00:00:01 (9/26): kubernetes-node-1.5.2-0.7.git269f928.el7.x86_64.rpm | 14 MB 00:00:01 (10/26): kubernetes-master-1.5.2-0.7.git269f928.el7.x86_64.rpm | 25 MB 00:00:02 (11/26): libcgroup-0.41-13.el7.x86_64.rpm | 65 kB 00:00:00 (12/26): libnetfilter_cthelper-1.0.0-9.el7.x86_64.rpm | 18 kB 00:00:00 (13/26): libnetfilter_cttimeout-1.0.0-6.el7.x86_64.rpm | 18 kB 00:00:00 (14/26): libnetfilter_queue-1.0.2-2.el7_2.x86_64.rpm | 23 kB 00:00:00 (15/26): libsemanage-python-2.5-8.el7.x86_64.rpm | 104 kB 00:00:00 (16/26): oci-systemd-hook-0.1.15-2.gitc04483d.el7.x86_64.rpm | 33 kB 00:00:00 (17/26): oci-umount-2.3.3-3.gite3c9055.el7.x86_64.rpm | 32 kB 00:00:00 (18/26): policycoreutils-python-2.5-17.1.el7.x86_64.rpm | 446 kB 00:00:00 (19/26): python-IPy-0.75-6.el7.noarch.rpm | 32 kB 00:00:00 (20/26): audit-libs-python-2.7.6-3.el7.x86_64.rpm | 73 kB 00:00:05 (21/26): setools-libs-3.3.8-1.1.el7.x86_64.rpm | 612 kB 00:00:00 (22/26): skopeo-containers-0.1.28-1.git0270e56.el7.x86_64.rpm | 13 kB 00:00:00 (23/26): socat-1.7.3.2-2.el7.x86_64.rpm | 290 kB 00:00:00 (24/26): container-storage-setup-0.8.0-3.git1d27ecf.el7.noarch.rpm | 33 kB 00:00:05 (25/26): checkpolicy-2.5-4.el7.x86_64.rpm | 290 kB 00:00:06 (26/26): oci-register-machine-0-6.git2b44233.el7.x86_64.rpm | 1.1 MB 00:00:05 -------------------------------------------------------------------------------------------------------------------------------------------- 合計 7.4 MB/s | 83 MB 00:00:11 file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 から鍵を取得中です。 Importing GPG key 0xF4A80EB5: Userid : "CentOS-7 Key (CentOS 7 Official Signing Key) <security@centos.org>" Fingerprint: 6341 ab27 53d7 8a78 a7c2 7bb1 24c6 a8a7 f4a8 0eb5 Package : centos-release-7-4.1708.el7.centos.x86_64 (@anaconda) From : /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 Running transaction check Running transaction test Transaction test succeeded Running transaction インストール中 : kubernetes-client-1.5.2-0.7.git269f928.el7.x86_64 1/26 インストール中 : kubernetes-master-1.5.2-0.7.git269f928.el7.x86_64 2/26 インストール中 : setools-libs-3.3.8-1.1.el7.x86_64 3/26 インストール中 : socat-1.7.3.2-2.el7.x86_64 4/26 インストール中 : audit-libs-python-2.7.6-3.el7.x86_64 5/26 インストール中 : container-storage-setup-0.8.0-3.git1d27ecf.el7.noarch 6/26 インストール中 : 1:oci-systemd-hook-0.1.15-2.gitc04483d.el7.x86_64 7/26 インストール中 : 2:oci-umount-2.3.3-3.gite3c9055.el7.x86_64 8/26 インストール中 : 1:oci-register-machine-0-6.git2b44233.el7.x86_64 9/26 インストール中 : libsemanage-python-2.5-8.el7.x86_64 10/26 インストール中 : libcgroup-0.41-13.el7.x86_64 11/26 インストール中 : python-IPy-0.75-6.el7.noarch 12/26 インストール中 : libnetfilter_queue-1.0.2-2.el7_2.x86_64 13/26 インストール中 : checkpolicy-2.5-4.el7.x86_64 14/26 インストール中 : policycoreutils-python-2.5-17.1.el7.x86_64 15/26 インストール中 : 2:container-selinux-2.42-1.gitad8f0f7.el7.noarch 16/26 setsebool: SELinux is disabled. インストール中 : libnetfilter_cthelper-1.0.0-9.el7.x86_64 17/26 インストール中 : libnetfilter_cttimeout-1.0.0-6.el7.x86_64 18/26 インストール中 : conntrack-tools-1.4.4-3.el7_3.x86_64 19/26 インストール中 : 1:skopeo-containers-0.1.28-1.git0270e56.el7.x86_64 20/26 インストール中 : 2:docker-common-1.13.1-53.git774336d.el7.centos.x86_64 21/26 インストール中 : 2:docker-client-1.13.1-53.git774336d.el7.centos.x86_64 22/26 インストール中 : 2:docker-1.13.1-53.git774336d.el7.centos.x86_64 23/26 インストール中 : kubernetes-node-1.5.2-0.7.git269f928.el7.x86_64 24/26 インストール中 : kubernetes-1.5.2-0.7.git269f928.el7.x86_64 25/26 インストール中 : flannel-0.7.1-2.el7.x86_64 26/26 検証中 : 1:skopeo-containers-0.1.28-1.git0270e56.el7.x86_64 1/26 検証中 : libnetfilter_cttimeout-1.0.0-6.el7.x86_64 2/26 検証中 : policycoreutils-python-2.5-17.1.el7.x86_64 3/26 検証中 : libnetfilter_cthelper-1.0.0-9.el7.x86_64 4/26 検証中 : conntrack-tools-1.4.4-3.el7_3.x86_64 5/26 検証中 : checkpolicy-2.5-4.el7.x86_64 6/26 検証中 : 2:docker-client-1.13.1-53.git774336d.el7.centos.x86_64 7/26 検証中 : 2:container-selinux-2.42-1.gitad8f0f7.el7.noarch 8/26 検証中 : libnetfilter_queue-1.0.2-2.el7_2.x86_64 9/26 検証中 : kubernetes-client-1.5.2-0.7.git269f928.el7.x86_64 10/26 検証中 : python-IPy-0.75-6.el7.noarch 11/26 検証中 : 2:docker-common-1.13.1-53.git774336d.el7.centos.x86_64 12/26 検証中 : 2:docker-1.13.1-53.git774336d.el7.centos.x86_64 13/26 検証中 : libcgroup-0.41-13.el7.x86_64 14/26 検証中 : libsemanage-python-2.5-8.el7.x86_64 15/26 検証中 : flannel-0.7.1-2.el7.x86_64 16/26 検証中 : 1:oci-register-machine-0-6.git2b44233.el7.x86_64 17/26 検証中 : 2:oci-umount-2.3.3-3.gite3c9055.el7.x86_64 18/26 検証中 : 1:oci-systemd-hook-0.1.15-2.gitc04483d.el7.x86_64 19/26 検証中 : kubernetes-master-1.5.2-0.7.git269f928.el7.x86_64 20/26 検証中 : kubernetes-1.5.2-0.7.git269f928.el7.x86_64 21/26 検証中 : container-storage-setup-0.8.0-3.git1d27ecf.el7.noarch 22/26 検証中 : audit-libs-python-2.7.6-3.el7.x86_64 23/26 検証中 : kubernetes-node-1.5.2-0.7.git269f928.el7.x86_64 24/26 検証中 : socat-1.7.3.2-2.el7.x86_64 25/26 検証中 : setools-libs-3.3.8-1.1.el7.x86_64 26/26 インストール: docker.x86_64 2:1.13.1-53.git774336d.el7.centos flannel.x86_64 0:0.7.1-2.el7 kubernetes.x86_64 0:1.5.2-0.7.git269f928.el7 依存性関連をインストールしました: audit-libs-python.x86_64 0:2.7.6-3.el7 checkpolicy.x86_64 0:2.5-4.el7 conntrack-tools.x86_64 0:1.4.4-3.el7_3 container-selinux.noarch 2:2.42-1.gitad8f0f7.el7 container-storage-setup.noarch 0:0.8.0-3.git1d27ecf.el7 docker-client.x86_64 2:1.13.1-53.git774336d.el7.centos docker-common.x86_64 2:1.13.1-53.git774336d.el7.centos kubernetes-client.x86_64 0:1.5.2-0.7.git269f928.el7 kubernetes-master.x86_64 0:1.5.2-0.7.git269f928.el7 kubernetes-node.x86_64 0:1.5.2-0.7.git269f928.el7 libcgroup.x86_64 0:0.41-13.el7 libnetfilter_cthelper.x86_64 0:1.0.0-9.el7 libnetfilter_cttimeout.x86_64 0:1.0.0-6.el7 libnetfilter_queue.x86_64 0:1.0.2-2.el7_2 libsemanage-python.x86_64 0:2.5-8.el7 oci-register-machine.x86_64 1:0-6.git2b44233.el7 oci-systemd-hook.x86_64 1:0.1.15-2.gitc04483d.el7 oci-umount.x86_64 2:2.3.3-3.gite3c9055.el7 policycoreutils-python.x86_64 0:2.5-17.1.el7 python-IPy.noarch 0:0.75-6.el7 setools-libs.x86_64 0:3.3.8-1.1.el7 skopeo-containers.x86_64 1:0.1.28-1.git0270e56.el7 socat.x86_64 0:1.7.3.2-2.el7 完了しました!
flannelの設定
マスタサーバの構築でflannelが使用する仮想ネットワークの設定を行い、 etcdに設定情報を書き込みましたので、Minionではflannelが参照するetcdのURLを設定します。 URLのアドレスにはマスタサーバのホスト名を指定します。
# cd /etc/sysconfig/ # vi flanneld
※以下、該当箇所のみ変更※ FLANNEL_ETCD_ENDPOINTS="http://127.0.0.1:2379" ↓変更 FLANNEL_ETCD_ENDPOINTS="http://k8smaster01:2379"
flannelの自動起動設定とサービスの起動
flannelのサービスに対して自動起動の設定を行い、サービスを起動します。 flannelはetcdの情報を見て仮想ネットワークを構成するため、flannelより先にetcdを起動しておく必要があります。 今回の手順では先にマスタサーバ上でetcdを起動済みなので問題ありません。
# systemctl status flanneld.service ● flanneld.service - Flanneld overlay address etcd agent Loaded: loaded (/usr/lib/systemd/system/flanneld.service; disabled; vendor preset: disabled) ←自動起動無効 Active: inactive (dead) ←停止状態 # systemctl enable flanneld.service Created symlink from /etc/systemd/system/multi-user.target.wants/flanneld.service to /usr/lib/systemd/system/flanneld.service. Created symlink from /etc/systemd/system/docker.service.requires/flanneld.service to /usr/lib/systemd/system/flanneld.service. # systemctl status flanneld.service ● flanneld.service - Flanneld overlay address etcd agent Loaded: loaded (/usr/lib/systemd/system/flanneld.service; enabled; vendor preset: disabled) ←自動起動有効 Active: inactive (dead) ←停止状態 # systemctl start flanneld.service # systemctl status flanneld.service ● flanneld.service - Flanneld overlay address etcd agent Loaded: loaded (/usr/lib/systemd/system/flanneld.service; enabled; vendor preset: disabled) ←自動起動有効 Active: active (running) since 日 2018-03-18 01:37:44 JST; 2s ago ←起動状態 Process: 1546 ExecStartPost=/usr/libexec/flannel/mk-docker-opts.sh -k DOCKER_NETWORK_OPTIONS -d /run/flannel/docker (code=exited, status=0/SUCCESS) Main PID: 1533 (flanneld) Memory: 4.5M CGroup: /system.slice/flanneld.service mq1533 /usr/bin/flanneld -etcd-endpoints=http://k8smaster01:2379 -etcd-prefix=/atomic.io/network 3月 18 01:37:44 centos74 systemd[1]: Starting Flanneld overlay address etcd agent... 3月 18 01:37:44 centos74 flanneld-start[1533]: I0318 01:37:44.157911 1533 main.go:132] Installing signal handlers 3月 18 01:37:44 centos74 flanneld-start[1533]: I0318 01:37:44.158154 1533 manager.go:136] Determining IP address of default interface 3月 18 01:37:44 centos74 flanneld-start[1533]: I0318 01:37:44.158315 1533 manager.go:149] Using interface with name ens32 and...68.0.33 3月 18 01:37:44 centos74 flanneld-start[1533]: I0318 01:37:44.158327 1533 manager.go:166] Defaulting external address to inte...8.0.33) 3月 18 01:37:44 centos74 flanneld-start[1533]: I0318 01:37:44.161257 1533 local_manager.go:179] Picking subnet in range 172.1...7.255.0 3月 18 01:37:44 centos74 flanneld-start[1533]: I0318 01:37:44.170141 1533 manager.go:250] Lease acquired: 172.17.82.0/24 3月 18 01:37:44 centos74 flanneld-start[1533]: I0318 01:37:44.174221 1533 network.go:98] Watching for new subnet leases 3月 18 01:37:44 centos74 flanneld-start[1533]: I0318 01:37:44.175356 1533 network.go:191] Subnet added: 172.17.76.0/24 3月 18 01:37:44 centos74 systemd[1]: Started Flanneld overlay address etcd agent. Hint: Some lines were ellipsized, use -l to show in full.
Dockerの自動起動設定とサービスの起動
Dockerのサービスに対して自動起動の設定を行い、サービスを起動します。
# systemctl status docker.service ● docker.service - Docker Application Container Engine Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor preset: disabled) ←自動起動無効 Drop-In: /usr/lib/systemd/system/docker.service.d mqflannel.conf Active: inactive (dead) ←停止状態 Docs: http://docs.docker.com # systemctl enable docker.service Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service. # systemctl status docker.service ● docker.service - Docker Application Container Engine Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled) ←自動起動有効 Drop-In: /usr/lib/systemd/system/docker.service.d mqflannel.conf Active: inactive (dead) ←停止状態 Docs: http://docs.docker.com # systemctl start docker.service # systemctl status docker.service ● docker.service - Docker Application Container Engine Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled) ←自動起動有効 Drop-In: /usr/lib/systemd/system/docker.service.d mqflannel.conf Active: active (running) since 日 2018-03-18 01:38:40 JST; 2s ago ←起動状態 Docs: http://docs.docker.com Main PID: 1648 (dockerd-current) Memory: 14.9M CGroup: /system.slice/docker.service tq1648 /usr/bin/dockerd-current --add-runtime docker-runc=/usr/libexec/docker/docker-runc-current --default-runtime=docker-run... mq1654 /usr/bin/docker-containerd-current -l unix:///var/run/docker/libcontainerd/docker-containerd.sock --metrics-interval=0 ... 3月 18 01:38:40 centos74 dockerd-current[1648]: time="2018-03-18T01:38:40.680759275+09:00" level=info msg="Graph migration to con...conds" 3月 18 01:38:40 centos74 dockerd-current[1648]: time="2018-03-18T01:38:40.681244551+09:00" level=info msg="Loading containers: start." 3月 18 01:38:40 centos74 dockerd-current[1648]: time="2018-03-18T01:38:40.711440082+09:00" level=info msg="Firewalld running: false" 3月 18 01:38:40 centos74 dockerd-current[1648]: time="2018-03-18T01:38:40.791324678+09:00" level=info msg="Loading containers: done." 3月 18 01:38:40 centos74 dockerd-current[1648]: time="2018-03-18T01:38:40.805395156+09:00" level=warning msg="failed to retrieve ...dev\n" 3月 18 01:38:40 centos74 dockerd-current[1648]: time="2018-03-18T01:38:40.805462895+09:00" level=warning msg="failed to retrieve ...rsion" 3月 18 01:38:40 centos74 dockerd-current[1648]: time="2018-03-18T01:38:40.806903691+09:00" level=info msg="Daemon has completed i...ation" 3月 18 01:38:40 centos74 dockerd-current[1648]: time="2018-03-18T01:38:40.806931357+09:00" level=info msg="Docker daemon" commit=...1.13.1 3月 18 01:38:40 centos74 dockerd-current[1648]: time="2018-03-18T01:38:40.824035819+09:00" level=info msg="API listen on /var/run....sock" 3月 18 01:38:40 centos74 systemd[1]: Started Docker Application Container Engine. Hint: Some lines were ellipsized, use -l to show in full.
Kubernetesのシステム設定
Kubernetesのシステム設定として、マスタサーバへ接続するためのURLを設定します。
# cd /etc/kubernetes/ # vi config
※以下、該当箇所のみ変更※ KUBE_MASTER="--master=http://127.0.0.1:8080" ↓変更 KUBE_MASTER="--master=http://k8smaster01:8080"
KubernetesのMinion用設定
KubernetesのMinion用設定として、MinionのIPアドレスとホスト名、apiserverのURLを指定します。 apiserverはマスタサーバ上で稼働しているため、マスタサーバのホスト名を指定します。
# vi kubelet
※以下、該当箇所のみ変更※ KUBELET_ADDRESS="--address=127.0.0.1" ↓変更 KUBELET_ADDRESS="--address=192.168.0.33"
KUBELET_HOSTNAME="--hostname-override=127.0.0.1"
↓変更
KUBELET_HOSTNAME="--hostname-override=minion01"
KUBELET_API_SERVER="--api-servers=http://127.0.0.1:8080"
↓変更
KUBELET_API_SERVER="--api-servers=http://k8smaster01:8080"
proxyの自動起動設定とサービスの起動
proxyのサービスに対して自動起動の設定を行い、サービスを起動します。
# systemctl status kube-proxy.service ● kube-proxy.service - Kubernetes Kube-Proxy Server Loaded: loaded (/usr/lib/systemd/system/kube-proxy.service; disabled; vendor preset: disabled) ←自動起動無効 Active: inactive (dead) ←停止状態 Docs: https://github.com/GoogleCloudPlatform/kubernetes # systemctl enable kube-proxy.service Created symlink from /etc/systemd/system/multi-user.target.wants/kube-proxy.service to /usr/lib/systemd/system/kube-proxy.service. # systemctl status kube-proxy.service ● kube-proxy.service - Kubernetes Kube-Proxy Server Loaded: loaded (/usr/lib/systemd/system/kube-proxy.service; enabled; vendor preset: disabled) ←自動起動有効 Active: inactive (dead) ←停止状態 Docs: https://github.com/GoogleCloudPlatform/kubernetes # systemctl start kube-proxy.service # systemctl status kube-proxy.service ● kube-proxy.service - Kubernetes Kube-Proxy Server Loaded: loaded (/usr/lib/systemd/system/kube-proxy.service; enabled; vendor preset: disabled) ←自動起動有効 Active: active (running) since 日 2018-03-18 01:51:29 JST; 1s ago ←起動状態 Docs: https://github.com/GoogleCloudPlatform/kubernetes Main PID: 1817 (kube-proxy) Memory: 14.1M CGroup: /system.slice/kube-proxy.service mq1817 /usr/bin/kube-proxy --logtostderr=true --v=0 --master=http://k8smaster01:8080 3月 18 01:51:29 centos74 kube-proxy[1817]: E0318 01:51:29.599317 1817 server.go:421] Can't get Node "centos74", assuming ipta...t found 3月 18 01:51:29 centos74 kube-proxy[1817]: I0318 01:51:29.600786 1817 server.go:215] Using iptables Proxier. 3月 18 01:51:29 centos74 kube-proxy[1817]: W0318 01:51:29.601971 1817 server.go:468] Failed to retrieve node info: nodes "cen...t found 3月 18 01:51:29 centos74 kube-proxy[1817]: W0318 01:51:29.602040 1817 proxier.go:248] invalid nodeIP, initialize kube-proxy w... nodeIP 3月 18 01:51:29 centos74 kube-proxy[1817]: W0318 01:51:29.602046 1817 proxier.go:253] clusterCIDR not specified, unable to di...traffic 3月 18 01:51:29 centos74 kube-proxy[1817]: I0318 01:51:29.602062 1817 server.go:227] Tearing down userspace rules. 3月 18 01:51:29 centos74 kube-proxy[1817]: I0318 01:51:29.613781 1817 conntrack.go:81] Set sysctl 'net/netfilter/nf_conntrack... 131072 3月 18 01:51:29 centos74 kube-proxy[1817]: I0318 01:51:29.614118 1817 conntrack.go:66] Setting conntrack hashsize to 32768 3月 18 01:51:29 centos74 kube-proxy[1817]: I0318 01:51:29.614487 1817 conntrack.go:81] Set sysctl 'net/netfilter/nf_conntrack...o 86400 3月 18 01:51:29 centos74 kube-proxy[1817]: I0318 01:51:29.614518 1817 conntrack.go:81] Set sysctl 'net/netfilter/nf_conntrack...to 3600 Hint: Some lines were ellipsized, use -l to show in full.
Minionの自動起動設定とサービスの起動
Minionのサービスに対して自動起動の設定を行い、サービスを起動します。
# systemctl status kubelet.service ● kubelet.service - Kubernetes Kubelet Server Loaded: loaded (/usr/lib/systemd/system/kubelet.service; disabled; vendor preset: disabled) ←自動起動無効 Active: inactive (dead) ←停止状態 Docs: https://github.com/GoogleCloudPlatform/kubernetes # systemctl enable kubelet.service Created symlink from /etc/systemd/system/multi-user.target.wants/kubelet.service to /usr/lib/systemd/system/kubelet.service. # systemctl status kubelet.service ● kubelet.service - Kubernetes Kubelet Server Loaded: loaded (/usr/lib/systemd/system/kubelet.service; enabled; vendor preset: disabled) ←自動起動有効 Active: inactive (dead) ←停止状態 Docs: https://github.com/GoogleCloudPlatform/kubernetes # systemctl start kubelet.service # systemctl status kubelet.service ● kubelet.service - Kubernetes Kubelet Server Loaded: loaded (/usr/lib/systemd/system/kubelet.service; enabled; vendor preset: disabled) ←自動起動有効 Active: active (running) since 日 2018-03-18 01:56:39 JST; 7s ago ←起動状態 Docs: https://github.com/GoogleCloudPlatform/kubernetes Main PID: 5389 (kubelet) Memory: 26.0M CGroup: /system.slice/kubelet.service tq5389 /usr/bin/kubelet --logtostderr=true --v=0 --api-servers=http://k8smaster01:8080 --address=192.168.0.33 --hostname-overr... mq5423 journalctl -k -f 3月 18 01:56:39 centos74 kubelet[5389]: I0318 01:56:39.955649 5389 factory.go:54] Registering systemd factory 3月 18 01:56:39 centos74 kubelet[5389]: I0318 01:56:39.955766 5389 factory.go:86] Registering Raw factory 3月 18 01:56:39 centos74 kubelet[5389]: I0318 01:56:39.956778 5389 manager.go:1106] Started watching for new ooms in manager 3月 18 01:56:39 centos74 kubelet[5389]: I0318 01:56:39.958903 5389 oomparser.go:185] oomparser using systemd 3月 18 01:56:39 centos74 kubelet[5389]: I0318 01:56:39.961455 5389 manager.go:288] Starting recovery of all containers 3月 18 01:56:39 centos74 kubelet[5389]: I0318 01:56:39.992221 5389 manager.go:293] Recovery completed 3月 18 01:56:40 centos74 kubelet[5389]: I0318 01:56:40.044225 5389 kubelet_node_status.go:227] Setting node annotation to ena.../detach 3月 18 01:56:40 centos74 kubelet[5389]: E0318 01:56:40.044740 5389 eviction_manager.go:204] eviction manager: unexpected err:...t found 3月 18 01:56:40 centos74 kubelet[5389]: I0318 01:56:40.045723 5389 kubelet_node_status.go:74] Attempting to register node minion01 3月 18 01:56:40 centos74 kubelet[5389]: I0318 01:56:40.048742 5389 kubelet_node_status.go:77] Successfully registered node minion01 Hint: Some lines were ellipsized, use -l to show in full.
Red Hat Unified Entitlement Platformとの通信に必要な証明書のインストール
後続の手順でPodを作成する際にRed Hat社のサイトからpod-infrastructureという名のDockerイメージを 取得しようとするのですが、/etc/rhsm/ca/redhat-uep.pem ファイルがないとエラーになって接続できません。 このファイルはRed Hat Unified Entitlement Platformとの接続に必要な証明書なのですが、 python-rhsm-certificatesというパッケージをインストールすると配置されます。
# yum -y install python-rhsm-certificates 読み込んだプラグイン:fastestmirror, langpacks base | 3.6 kB 00:00:00 extras | 3.4 kB 00:00:00 updates | 3.4 kB 00:00:00 updates/7/x86_64/primary_db | 6.9 MB 00:00:06 Loading mirror speeds from cached hostfile * base: ftp.riken.jp * extras: ftp.riken.jp * updates: ftp.riken.jp 依存性の解決をしています --> トランザクションの確認を実行しています。 ---> パッケージ python-rhsm-certificates.x86_64 0:1.19.10-1.el7_4 を インストール --> 依存性解決を終了しました。 依存性を解決しました ============================================================================================================================================ Package アーキテクチャー バージョン リポジトリー 容量 ============================================================================================================================================ インストール中: python-rhsm-certificates x86_64 1.19.10-1.el7_4 updates 41 k トランザクションの要約 ============================================================================================================================================ インストール 1 パッケージ 総ダウンロード容量: 41 k インストール容量: 7.6 k Downloading packages: python-rhsm-certificates-1.19.10-1.el7_4.x86_64.rpm | 41 kB 00:00:05 Running transaction check Running transaction test Transaction test succeeded Running transaction インストール中 : python-rhsm-certificates-1.19.10-1.el7_4.x86_64 1/1 検証中 : python-rhsm-certificates-1.19.10-1.el7_4.x86_64 1/1 インストール: python-rhsm-certificates.x86_64 0:1.19.10-1.el7_4 完了しました!
Kubernetes関連プロセスの起動確認
一通り設定し、サービスを起動できたところで、Minionとして動作するために必要な Kubernetes関連のプロセスが起動しているかを確認します。
# ps -ef | grep docker | grep -v grep root 1154 1 0 11:08 ? 00:00:18 /usr/bin/dockerd-current --add-runtime docker-runc=/usr/libexec/docker/docker-runc-current --default-runtime=docker-runc --exec-opt native.cgroupdriver=systemd --userland-proxy-path=/usr/libexec/docker/docker-proxy-current --seccomp-profile=/etc/docker/seccomp.json --selinux-enabled --log-driver=journald --signature-verification=false --insecure-registry k8smaster01:5000 --storage-driver overlay2 --bip=172.17.57.1/24 --ip-masq=true --mtu=1472 root 1251 1154 0 11:08 ? 00:00:06 /usr/bin/docker-containerd-current -l unix:///var/run/docker/libcontainerd/docker-containerd.sock --metrics-interval=0 --start-timeout 2m --state-dir /var/run/docker/libcontainerd/containerd --shim docker-containerd-shim --runtime docker-runc --runtime-args --systemd-cgroup=true # ps -ef | grep kubelet | grep -v grep root 1501 1 0 11:08 ? 00:01:19 /usr/bin/kubelet --logtostderr=true --v=0 --api-servers=http://k8smaster01:8080 --address=192.168.0.33 --hostname-override=minion01 --allow-privileged=false --pod-infra-container-image=registry.access.redhat.com/rhel7/pod-infrastructure:latest # ps -ef | grep kube-proxy | grep -v grep root 979 1 1 11:08 ? 00:02:16 /usr/bin/kube-proxy --logtostderr=true --v=0 --master=http://k8smaster01:8080 # ps -ef | grep flanneld | grep -v grep root 981 1 0 11:08 ? 00:00:00 /usr/bin/flanneld -etcd-endpoints=http://k8smaster01:2379 -etcd-prefix=/atomic.io/network
Minionの2号機構築
Minionの2号機の構築は、ほぼ全て1号機の構築と同じ手順・設定なので、違いがあるところだけコメント付けます。
ホスト名の設定
1号機と同じです。
# cd /etc/ # vi hosts
※ファイルの末尾に追加※
192.168.0.32 k8smaster01
192.168.0.33 minion01
192.168.0.34 minion02
Kubernetes関連パッケージのインストール
1号機と同じです。
# yum -y install docker kubernetes flannel 読み込んだプラグイン:fastestmirror, langpacks base | 3.6 kB 00:00:00 extras | 3.4 kB 00:00:00 updates | 3.4 kB 00:00:00 (1/4): base/7/x86_64/group_gz | 156 kB 00:00:05 (2/4): extras/7/x86_64/primary_db | 181 kB 00:00:05 (3/4): updates/7/x86_64/primary_db | 6.9 MB 00:00:06 (4/4): base/7/x86_64/primary_db | 5.7 MB 00:00:20 Determining fastest mirrors * base: ftp.tsukuba.wide.ad.jp * extras: ftp.tsukuba.wide.ad.jp * updates: ftp.tsukuba.wide.ad.jp 依存性の解決をしています --> トランザクションの確認を実行しています。 ---> パッケージ docker.x86_64 2:1.13.1-53.git774336d.el7.centos を インストール --> 依存性の処理をしています: docker-common = 2:1.13.1-53.git774336d.el7.centos のパッケージ: 2:docker-1.13.1-53.git774336d.el7.centos.x86_64 --> 依存性の処理をしています: docker-client = 2:1.13.1-53.git774336d.el7.centos のパッケージ: 2:docker-1.13.1-53.git774336d.el7.centos.x86_64 ---> パッケージ flannel.x86_64 0:0.7.1-2.el7 を インストール ---> パッケージ kubernetes.x86_64 0:1.5.2-0.7.git269f928.el7 を インストール --> 依存性の処理をしています: kubernetes-node = 1.5.2-0.7.git269f928.el7 のパッケージ: kubernetes-1.5.2-0.7.git269f928.el7.x86_64 --> 依存性の処理をしています: kubernetes-master = 1.5.2-0.7.git269f928.el7 のパッケージ: kubernetes-1.5.2-0.7.git269f928.el7.x86_64 --> トランザクションの確認を実行しています。 ---> パッケージ docker-client.x86_64 2:1.13.1-53.git774336d.el7.centos を インストール ---> パッケージ docker-common.x86_64 2:1.13.1-53.git774336d.el7.centos を インストール --> 依存性の処理をしています: skopeo-containers >= 1:0.1.26-2 のパッケージ: 2:docker-common-1.13.1-53.git774336d.el7.centos.x86_64 --> 依存性の処理をしています: oci-umount >= 2:2.0.0-1 のパッケージ: 2:docker-common-1.13.1-53.git774336d.el7.centos.x86_64 --> 依存性の処理をしています: oci-systemd-hook >= 1:0.1.4-9 のパッケージ: 2:docker-common-1.13.1-53.git774336d.el7.centos.x86_64 --> 依存性の処理をしています: oci-register-machine >= 1:0-5.13 のパッケージ: 2:docker-common-1.13.1-53.git774336d.el7.centos.x86_64 --> 依存性の処理をしています: container-storage-setup >= 0.7.0-1 のパッケージ: 2:docker-common-1.13.1-53.git774336d.el7.centos.x86_64 --> 依存性の処理をしています: container-selinux >= 2:2.21-2 のパッケージ: 2:docker-common-1.13.1-53.git774336d.el7.centos.x86_64 ---> パッケージ kubernetes-master.x86_64 0:1.5.2-0.7.git269f928.el7 を インストール --> 依存性の処理をしています: kubernetes-client = 1.5.2-0.7.git269f928.el7 のパッケージ: kubernetes-master-1.5.2-0.7.git269f928.el7.x86_64 ---> パッケージ kubernetes-node.x86_64 0:1.5.2-0.7.git269f928.el7 を インストール --> 依存性の処理をしています: socat のパッケージ: kubernetes-node-1.5.2-0.7.git269f928.el7.x86_64 --> 依存性の処理をしています: conntrack-tools のパッケージ: kubernetes-node-1.5.2-0.7.git269f928.el7.x86_64 --> トランザクションの確認を実行しています。 ---> パッケージ conntrack-tools.x86_64 0:1.4.4-3.el7_3 を インストール --> 依存性の処理をしています: libnetfilter_cttimeout.so.1(LIBNETFILTER_CTTIMEOUT_1.1)(64bit) のパッケージ: conntrack-tools-1.4.4-3.el7_3.x86_64 --> 依存性の処理をしています: libnetfilter_cttimeout.so.1(LIBNETFILTER_CTTIMEOUT_1.0)(64bit) のパッケージ: conntrack-tools-1.4.4-3.el7_3.x86_64 --> 依存性の処理をしています: libnetfilter_cthelper.so.0(LIBNETFILTER_CTHELPER_1.0)(64bit) のパッケージ: conntrack-tools-1.4.4-3.el7_3.x86_64 --> 依存性の処理をしています: libnetfilter_queue.so.1()(64bit) のパッケージ: conntrack-tools-1.4.4-3.el7_3.x86_64 --> 依存性の処理をしています: libnetfilter_cttimeout.so.1()(64bit) のパッケージ: conntrack-tools-1.4.4-3.el7_3.x86_64 --> 依存性の処理をしています: libnetfilter_cthelper.so.0()(64bit) のパッケージ: conntrack-tools-1.4.4-3.el7_3.x86_64 ---> パッケージ container-selinux.noarch 2:2.42-1.gitad8f0f7.el7 を インストール --> 依存性の処理をしています: policycoreutils-python のパッケージ: 2:container-selinux-2.42-1.gitad8f0f7.el7.noarch ---> パッケージ container-storage-setup.noarch 0:0.8.0-3.git1d27ecf.el7 を インストール ---> パッケージ kubernetes-client.x86_64 0:1.5.2-0.7.git269f928.el7 を インストール ---> パッケージ oci-register-machine.x86_64 1:0-6.git2b44233.el7 を インストール ---> パッケージ oci-systemd-hook.x86_64 1:0.1.15-2.gitc04483d.el7 を インストール ---> パッケージ oci-umount.x86_64 2:2.3.3-3.gite3c9055.el7 を インストール ---> パッケージ skopeo-containers.x86_64 1:0.1.28-1.git0270e56.el7 を インストール ---> パッケージ socat.x86_64 0:1.7.3.2-2.el7 を インストール --> トランザクションの確認を実行しています。 ---> パッケージ libnetfilter_cthelper.x86_64 0:1.0.0-9.el7 を インストール ---> パッケージ libnetfilter_cttimeout.x86_64 0:1.0.0-6.el7 を インストール ---> パッケージ libnetfilter_queue.x86_64 0:1.0.2-2.el7_2 を インストール ---> パッケージ policycoreutils-python.x86_64 0:2.5-17.1.el7 を インストール --> 依存性の処理をしています: setools-libs >= 3.3.8-1 のパッケージ: policycoreutils-python-2.5-17.1.el7.x86_64 --> 依存性の処理をしています: libsemanage-python >= 2.5-5 のパッケージ: policycoreutils-python-2.5-17.1.el7.x86_64 --> 依存性の処理をしています: audit-libs-python >= 2.1.3-4 のパッケージ: policycoreutils-python-2.5-17.1.el7.x86_64 --> 依存性の処理をしています: python-IPy のパッケージ: policycoreutils-python-2.5-17.1.el7.x86_64 --> 依存性の処理をしています: libqpol.so.1(VERS_1.4)(64bit) のパッケージ: policycoreutils-python-2.5-17.1.el7.x86_64 --> 依存性の処理をしています: libqpol.so.1(VERS_1.2)(64bit) のパッケージ: policycoreutils-python-2.5-17.1.el7.x86_64 --> 依存性の処理をしています: libcgroup のパッケージ: policycoreutils-python-2.5-17.1.el7.x86_64 --> 依存性の処理をしています: libapol.so.4(VERS_4.0)(64bit) のパッケージ: policycoreutils-python-2.5-17.1.el7.x86_64 --> 依存性の処理をしています: checkpolicy のパッケージ: policycoreutils-python-2.5-17.1.el7.x86_64 --> 依存性の処理をしています: libqpol.so.1()(64bit) のパッケージ: policycoreutils-python-2.5-17.1.el7.x86_64 --> 依存性の処理をしています: libapol.so.4()(64bit) のパッケージ: policycoreutils-python-2.5-17.1.el7.x86_64 --> トランザクションの確認を実行しています。 ---> パッケージ audit-libs-python.x86_64 0:2.7.6-3.el7 を インストール ---> パッケージ checkpolicy.x86_64 0:2.5-4.el7 を インストール ---> パッケージ libcgroup.x86_64 0:0.41-13.el7 を インストール ---> パッケージ libsemanage-python.x86_64 0:2.5-8.el7 を インストール ---> パッケージ python-IPy.noarch 0:0.75-6.el7 を インストール ---> パッケージ setools-libs.x86_64 0:3.3.8-1.1.el7 を インストール --> 依存性解決を終了しました。 依存性を解決しました ============================================================================================================================================ Package アーキテクチャー バージョン リポジトリー 容量 ============================================================================================================================================ インストール中: docker x86_64 2:1.13.1-53.git774336d.el7.centos extras 16 M flannel x86_64 0.7.1-2.el7 extras 6.6 M kubernetes x86_64 1.5.2-0.7.git269f928.el7 extras 36 k 依存性関連でのインストールをします: audit-libs-python x86_64 2.7.6-3.el7 base 73 k checkpolicy x86_64 2.5-4.el7 base 290 k conntrack-tools x86_64 1.4.4-3.el7_3 base 186 k container-selinux noarch 2:2.42-1.gitad8f0f7.el7 extras 32 k container-storage-setup noarch 0.8.0-3.git1d27ecf.el7 extras 33 k docker-client x86_64 2:1.13.1-53.git774336d.el7.centos extras 3.7 M docker-common x86_64 2:1.13.1-53.git774336d.el7.centos extras 86 k kubernetes-client x86_64 1.5.2-0.7.git269f928.el7 extras 14 M kubernetes-master x86_64 1.5.2-0.7.git269f928.el7 extras 25 M kubernetes-node x86_64 1.5.2-0.7.git269f928.el7 extras 14 M libcgroup x86_64 0.41-13.el7 base 65 k libnetfilter_cthelper x86_64 1.0.0-9.el7 base 18 k libnetfilter_cttimeout x86_64 1.0.0-6.el7 base 18 k libnetfilter_queue x86_64 1.0.2-2.el7_2 base 23 k libsemanage-python x86_64 2.5-8.el7 base 104 k oci-register-machine x86_64 1:0-6.git2b44233.el7 extras 1.1 M oci-systemd-hook x86_64 1:0.1.15-2.gitc04483d.el7 extras 33 k oci-umount x86_64 2:2.3.3-3.gite3c9055.el7 extras 32 k policycoreutils-python x86_64 2.5-17.1.el7 base 446 k python-IPy noarch 0.75-6.el7 base 32 k setools-libs x86_64 3.3.8-1.1.el7 base 612 k skopeo-containers x86_64 1:0.1.28-1.git0270e56.el7 extras 13 k socat x86_64 1.7.3.2-2.el7 base 290 k トランザクションの要約 ============================================================================================================================================ インストール 3 パッケージ (+23 個の依存関係のパッケージ) 総ダウンロード容量: 83 M インストール容量: 414 M Downloading packages: 警告: /var/cache/yum/x86_64/7/base/packages/audit-libs-python-2.7.6-3.el7.x86_64.rpm: ヘッダー V3 RSA/SHA256 Signature、鍵 ID f4a80eb5: NOKEY audit-libs-python-2.7.6-3.el7.x86_64.rpm の公開鍵がインストールされていません (1/26): audit-libs-python-2.7.6-3.el7.x86_64.rpm | 73 kB 00:00:00 (2/26): conntrack-tools-1.4.4-3.el7_3.x86_64.rpm | 186 kB 00:00:00 (3/26): checkpolicy-2.5-4.el7.x86_64.rpm | 290 kB 00:00:05 container-storage-setup-0.8.0-3.git1d27ecf.el7.noarch.rpm の公開鍵がインストールされていません (4/26): container-storage-setup-0.8.0-3.git1d27ecf.el7.noarch.rpm | 33 kB 00:00:05 (5/26): container-selinux-2.42-1.gitad8f0f7.el7.noarch.rpm | 32 kB 00:00:05 (6/26): docker-client-1.13.1-53.git774336d.el7.centos.x86_64.rpm | 3.7 MB 00:00:00 (7/26): docker-common-1.13.1-53.git774336d.el7.centos.x86_64.rpm | 86 kB 00:00:00 (8/26): docker-1.13.1-53.git774336d.el7.centos.x86_64.rpm | 16 MB 00:00:02 (9/26): kubernetes-1.5.2-0.7.git269f928.el7.x86_64.rpm | 36 kB 00:00:00 (10/26): flannel-0.7.1-2.el7.x86_64.rpm | 6.6 MB 00:00:01 (11/26): kubernetes-client-1.5.2-0.7.git269f928.el7.x86_64.rpm | 14 MB 00:00:04 (12/26): kubernetes-master-1.5.2-0.7.git269f928.el7.x86_64.rpm | 25 MB 00:00:07 (13/26): kubernetes-node-1.5.2-0.7.git269f928.el7.x86_64.rpm | 14 MB 00:00:03 (14/26): libcgroup-0.41-13.el7.x86_64.rpm | 65 kB 00:00:05 (15/26): libnetfilter_cthelper-1.0.0-9.el7.x86_64.rpm | 18 kB 00:00:05 (16/26): libnetfilter_cttimeout-1.0.0-6.el7.x86_64.rpm | 18 kB 00:00:00 (17/26): libnetfilter_queue-1.0.2-2.el7_2.x86_64.rpm | 23 kB 00:00:00 (18/26): libsemanage-python-2.5-8.el7.x86_64.rpm | 104 kB 00:00:00 (19/26): oci-systemd-hook-0.1.15-2.gitc04483d.el7.x86_64.rpm | 33 kB 00:00:05 (20/26): oci-umount-2.3.3-3.gite3c9055.el7.x86_64.rpm | 32 kB 00:00:00 (21/26): oci-register-machine-0-6.git2b44233.el7.x86_64.rpm | 1.1 MB 00:00:05 (22/26): python-IPy-0.75-6.el7.noarch.rpm | 32 kB 00:00:05 (23/26): policycoreutils-python-2.5-17.1.el7.x86_64.rpm | 446 kB 00:00:05 (24/26): socat-1.7.3.2-2.el7.x86_64.rpm | 290 kB 00:00:00 (25/26): setools-libs-3.3.8-1.1.el7.x86_64.rpm | 612 kB 00:00:00 (26/26): skopeo-containers-0.1.28-1.git0270e56.el7.x86_64.rpm | 13 kB 00:00:05 -------------------------------------------------------------------------------------------------------------------------------------------- 合計 2.3 MB/s | 83 MB 00:00:35 file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 から鍵を取得中です。 Importing GPG key 0xF4A80EB5: Userid : "CentOS-7 Key (CentOS 7 Official Signing Key) <security@centos.org>" Fingerprint: 6341 ab27 53d7 8a78 a7c2 7bb1 24c6 a8a7 f4a8 0eb5 Package : centos-release-7-4.1708.el7.centos.x86_64 (@anaconda) From : /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 Running transaction check Running transaction test Transaction test succeeded Running transaction インストール中 : kubernetes-client-1.5.2-0.7.git269f928.el7.x86_64 1/26 インストール中 : kubernetes-master-1.5.2-0.7.git269f928.el7.x86_64 2/26 インストール中 : setools-libs-3.3.8-1.1.el7.x86_64 3/26 インストール中 : socat-1.7.3.2-2.el7.x86_64 4/26 インストール中 : audit-libs-python-2.7.6-3.el7.x86_64 5/26 インストール中 : container-storage-setup-0.8.0-3.git1d27ecf.el7.noarch 6/26 インストール中 : 1:oci-systemd-hook-0.1.15-2.gitc04483d.el7.x86_64 7/26 インストール中 : 2:oci-umount-2.3.3-3.gite3c9055.el7.x86_64 8/26 インストール中 : 1:oci-register-machine-0-6.git2b44233.el7.x86_64 9/26 インストール中 : libsemanage-python-2.5-8.el7.x86_64 10/26 インストール中 : libcgroup-0.41-13.el7.x86_64 11/26 インストール中 : python-IPy-0.75-6.el7.noarch 12/26 インストール中 : libnetfilter_queue-1.0.2-2.el7_2.x86_64 13/26 インストール中 : checkpolicy-2.5-4.el7.x86_64 14/26 インストール中 : policycoreutils-python-2.5-17.1.el7.x86_64 15/26 インストール中 : 2:container-selinux-2.42-1.gitad8f0f7.el7.noarch 16/26 setsebool: SELinux is disabled. インストール中 : libnetfilter_cthelper-1.0.0-9.el7.x86_64 17/26 インストール中 : libnetfilter_cttimeout-1.0.0-6.el7.x86_64 18/26 インストール中 : conntrack-tools-1.4.4-3.el7_3.x86_64 19/26 インストール中 : 1:skopeo-containers-0.1.28-1.git0270e56.el7.x86_64 20/26 インストール中 : 2:docker-common-1.13.1-53.git774336d.el7.centos.x86_64 21/26 インストール中 : 2:docker-client-1.13.1-53.git774336d.el7.centos.x86_64 22/26 インストール中 : 2:docker-1.13.1-53.git774336d.el7.centos.x86_64 23/26 インストール中 : kubernetes-node-1.5.2-0.7.git269f928.el7.x86_64 24/26 インストール中 : kubernetes-1.5.2-0.7.git269f928.el7.x86_64 25/26 インストール中 : flannel-0.7.1-2.el7.x86_64 26/26 検証中 : 1:skopeo-containers-0.1.28-1.git0270e56.el7.x86_64 1/26 検証中 : libnetfilter_cttimeout-1.0.0-6.el7.x86_64 2/26 検証中 : policycoreutils-python-2.5-17.1.el7.x86_64 3/26 検証中 : libnetfilter_cthelper-1.0.0-9.el7.x86_64 4/26 検証中 : conntrack-tools-1.4.4-3.el7_3.x86_64 5/26 検証中 : checkpolicy-2.5-4.el7.x86_64 6/26 検証中 : 2:docker-client-1.13.1-53.git774336d.el7.centos.x86_64 7/26 検証中 : 2:container-selinux-2.42-1.gitad8f0f7.el7.noarch 8/26 検証中 : libnetfilter_queue-1.0.2-2.el7_2.x86_64 9/26 検証中 : kubernetes-client-1.5.2-0.7.git269f928.el7.x86_64 10/26 検証中 : python-IPy-0.75-6.el7.noarch 11/26 検証中 : 2:docker-common-1.13.1-53.git774336d.el7.centos.x86_64 12/26 検証中 : 2:docker-1.13.1-53.git774336d.el7.centos.x86_64 13/26 検証中 : libcgroup-0.41-13.el7.x86_64 14/26 検証中 : libsemanage-python-2.5-8.el7.x86_64 15/26 検証中 : flannel-0.7.1-2.el7.x86_64 16/26 検証中 : 1:oci-register-machine-0-6.git2b44233.el7.x86_64 17/26 検証中 : 2:oci-umount-2.3.3-3.gite3c9055.el7.x86_64 18/26 検証中 : 1:oci-systemd-hook-0.1.15-2.gitc04483d.el7.x86_64 19/26 検証中 : kubernetes-master-1.5.2-0.7.git269f928.el7.x86_64 20/26 検証中 : kubernetes-1.5.2-0.7.git269f928.el7.x86_64 21/26 検証中 : container-storage-setup-0.8.0-3.git1d27ecf.el7.noarch 22/26 検証中 : audit-libs-python-2.7.6-3.el7.x86_64 23/26 検証中 : kubernetes-node-1.5.2-0.7.git269f928.el7.x86_64 24/26 検証中 : socat-1.7.3.2-2.el7.x86_64 25/26 検証中 : setools-libs-3.3.8-1.1.el7.x86_64 26/26 インストール: docker.x86_64 2:1.13.1-53.git774336d.el7.centos flannel.x86_64 0:0.7.1-2.el7 kubernetes.x86_64 0:1.5.2-0.7.git269f928.el7 依存性関連をインストールしました: audit-libs-python.x86_64 0:2.7.6-3.el7 checkpolicy.x86_64 0:2.5-4.el7 conntrack-tools.x86_64 0:1.4.4-3.el7_3 container-selinux.noarch 2:2.42-1.gitad8f0f7.el7 container-storage-setup.noarch 0:0.8.0-3.git1d27ecf.el7 docker-client.x86_64 2:1.13.1-53.git774336d.el7.centos docker-common.x86_64 2:1.13.1-53.git774336d.el7.centos kubernetes-client.x86_64 0:1.5.2-0.7.git269f928.el7 kubernetes-master.x86_64 0:1.5.2-0.7.git269f928.el7 kubernetes-node.x86_64 0:1.5.2-0.7.git269f928.el7 libcgroup.x86_64 0:0.41-13.el7 libnetfilter_cthelper.x86_64 0:1.0.0-9.el7 libnetfilter_cttimeout.x86_64 0:1.0.0-6.el7 libnetfilter_queue.x86_64 0:1.0.2-2.el7_2 libsemanage-python.x86_64 0:2.5-8.el7 oci-register-machine.x86_64 1:0-6.git2b44233.el7 oci-systemd-hook.x86_64 1:0.1.15-2.gitc04483d.el7 oci-umount.x86_64 2:2.3.3-3.gite3c9055.el7 policycoreutils-python.x86_64 0:2.5-17.1.el7 python-IPy.noarch 0:0.75-6.el7 setools-libs.x86_64 0:3.3.8-1.1.el7 skopeo-containers.x86_64 1:0.1.28-1.git0270e56.el7 socat.x86_64 0:1.7.3.2-2.el7 完了しました!
flannelの設定
1号機と同じです。
# cd /etc/sysconfig/ # vi flanneld
※以下、該当箇所のみ変更※ FLANNEL_ETCD_ENDPOINTS="http://127.0.0.1:2379" ↓変更 FLANNEL_ETCD_ENDPOINTS="http://k8smaster01:2379"
flannelの自動起動設定とサービスの起動
1号機と同じです。
# systemctl status flanneld.service ● flanneld.service - Flanneld overlay address etcd agent Loaded: loaded (/usr/lib/systemd/system/flanneld.service; disabled; vendor preset: disabled) ←自動起動無効 Active: inactive (dead) ←停止状態 # systemctl enable flanneld.service Created symlink from /etc/systemd/system/multi-user.target.wants/flanneld.service to /usr/lib/systemd/system/flanneld.service. Created symlink from /etc/systemd/system/docker.service.requires/flanneld.service to /usr/lib/systemd/system/flanneld.service. # systemctl status flanneld.service ● flanneld.service - Flanneld overlay address etcd agent Loaded: loaded (/usr/lib/systemd/system/flanneld.service; enabled; vendor preset: disabled) ←自動起動有効 Active: inactive (dead) ←停止状態 # systemctl start flanneld.service # systemctl status flanneld.service ● flanneld.service - Flanneld overlay address etcd agent Loaded: loaded (/usr/lib/systemd/system/flanneld.service; enabled; vendor preset: disabled) ←自動起動有効 Active: active (running) since 日 2018-03-18 21:31:07 JST; 4s ago ←起動状態 Process: 8302 ExecStartPost=/usr/libexec/flannel/mk-docker-opts.sh -k DOCKER_NETWORK_OPTIONS -d /run/flannel/docker (code=exited, status=0/SUCCESS) Main PID: 8288 (flanneld) Memory: 6.6M CGroup: /system.slice/flanneld.service mq8288 /usr/bin/flanneld -etcd-endpoints=http://k8smaster01:2379 -etcd-prefix=/atomic.io/network 3月 18 21:31:07 centos74 flanneld-start[8288]: I0318 21:31:07.231785 8288 main.go:132] Installing signal handlers 3月 18 21:31:07 centos74 flanneld-start[8288]: I0318 21:31:07.231874 8288 manager.go:136] Determining IP address of default interface 3月 18 21:31:07 centos74 flanneld-start[8288]: I0318 21:31:07.231992 8288 manager.go:149] Using interface with name ens32 and...68.0.34 3月 18 21:31:07 centos74 flanneld-start[8288]: I0318 21:31:07.232004 8288 manager.go:166] Defaulting external address to inte...8.0.34) 3月 18 21:31:07 centos74 flanneld-start[8288]: I0318 21:31:07.235652 8288 local_manager.go:179] Picking subnet in range 172.1...7.255.0 3月 18 21:31:07 centos74 flanneld-start[8288]: I0318 21:31:07.250355 8288 manager.go:250] Lease acquired: 172.17.37.0/24 3月 18 21:31:07 centos74 flanneld-start[8288]: I0318 21:31:07.259233 8288 network.go:98] Watching for new subnet leases 3月 18 21:31:07 centos74 flanneld-start[8288]: I0318 21:31:07.260610 8288 network.go:191] Subnet added: 172.17.76.0/24 3月 18 21:31:07 centos74 flanneld-start[8288]: I0318 21:31:07.260639 8288 network.go:191] Subnet added: 172.17.82.0/24 3月 18 21:31:07 centos74 systemd[1]: Started Flanneld overlay address etcd agent. Hint: Some lines were ellipsized, use -l to show in full.
Dockerの自動起動設定とサービスの起動
1号機と同じです。
# systemctl status docker.service ● docker.service - Docker Application Container Engine Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor preset: disabled) ←自動起動無効 Drop-In: /usr/lib/systemd/system/docker.service.d mqflannel.conf Active: inactive (dead) ←停止状態 Docs: http://docs.docker.com # systemctl enable docker.service Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service. # systemctl status docker.service ● docker.service - Docker Application Container Engine Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled) ←自動起動有効 Drop-In: /usr/lib/systemd/system/docker.service.d mqflannel.conf Active: inactive (dead) ←停止状態 Docs: http://docs.docker.com # systemctl start docker.service # systemctl status docker.service ● docker.service - Docker Application Container Engine Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled) ←自動起動有効 Drop-In: /usr/lib/systemd/system/docker.service.d mqflannel.conf Active: active (running) since 日 2018-03-18 21:33:54 JST; 1s ago ←起動状態 Docs: http://docs.docker.com Main PID: 8401 (dockerd-current) Memory: 12.8M CGroup: /system.slice/docker.service tq8401 /usr/bin/dockerd-current --add-runtime docker-runc=/usr/libexec/docker/docker-runc-current --default-runtime=docker-run... mq8407 /usr/bin/docker-containerd-current -l unix:///var/run/docker/libcontainerd/docker-containerd.sock --metrics-interval=0 ... 3月 18 21:33:54 centos74 dockerd-current[8401]: time="2018-03-18T21:33:54.517394383+09:00" level=info msg="Graph migration to con...conds" 3月 18 21:33:54 centos74 dockerd-current[8401]: time="2018-03-18T21:33:54.517872986+09:00" level=info msg="Loading containers: start." 3月 18 21:33:54 centos74 dockerd-current[8401]: time="2018-03-18T21:33:54.546623104+09:00" level=info msg="Firewalld running: false" 3月 18 21:33:54 centos74 dockerd-current[8401]: time="2018-03-18T21:33:54.635246853+09:00" level=info msg="Loading containers: done." 3月 18 21:33:54 centos74 dockerd-current[8401]: time="2018-03-18T21:33:54.650256408+09:00" level=warning msg="failed to retrieve ...dev\n" 3月 18 21:33:54 centos74 dockerd-current[8401]: time="2018-03-18T21:33:54.650325576+09:00" level=warning msg="failed to retrieve ...rsion" 3月 18 21:33:54 centos74 dockerd-current[8401]: time="2018-03-18T21:33:54.650509485+09:00" level=info msg="Daemon has completed i...ation" 3月 18 21:33:54 centos74 dockerd-current[8401]: time="2018-03-18T21:33:54.650525810+09:00" level=info msg="Docker daemon" commit=...1.13.1 3月 18 21:33:54 centos74 dockerd-current[8401]: time="2018-03-18T21:33:54.665657255+09:00" level=info msg="API listen on /var/run....sock" 3月 18 21:33:54 centos74 systemd[1]: Started Docker Application Container Engine. Hint: Some lines were ellipsized, use -l to show in full.
Kubernetesのシステム設定
1号機と同じです。
# cd /etc/kubernetes/ # vi config
※以下、該当箇所のみ変更※ KUBE_MASTER="--master=http://127.0.0.1:8080" ↓変更 KUBE_MASTER="--master=http://k8smaster01:8080"
KubernetesのMinion用設定
MinionのIPアドレスとホスト名が2号機のものに変わるだけで あとは1号機と同じです。
# vi kubelet
※以下、該当箇所のみ変更※ KUBELET_ADDRESS="--address=127.0.0.1" ↓変更 KUBELET_ADDRESS="--address=192.168.0.34"
KUBELET_HOSTNAME="--hostname-override=127.0.0.1"
↓変更
KUBELET_HOSTNAME="--hostname-override=minion02"
KUBELET_API_SERVER="--api-servers=http://127.0.0.1:8080"
↓変更
KUBELET_API_SERVER="--api-servers=http://k8smaster01:8080"
proxyの自動起動設定とサービスの起動
1号機と同じです。
# systemctl status kube-proxy.service ● kube-proxy.service - Kubernetes Kube-Proxy Server Loaded: loaded (/usr/lib/systemd/system/kube-proxy.service; disabled; vendor preset: disabled) Active: inactive (dead) Docs: https://github.com/GoogleCloudPlatform/kubernetes # systemctl enable kube-proxy.service Created symlink from /etc/systemd/system/multi-user.target.wants/kube-proxy.service to /usr/lib/systemd/system/kube-proxy.service. # systemctl status kube-proxy.service ● kube-proxy.service - Kubernetes Kube-Proxy Server Loaded: loaded (/usr/lib/systemd/system/kube-proxy.service; enabled; vendor preset: disabled) Active: inactive (dead) Docs: https://github.com/GoogleCloudPlatform/kubernetes # systemctl start kube-proxy.service # systemctl status kube-proxy.service ● kube-proxy.service - Kubernetes Kube-Proxy Server Loaded: loaded (/usr/lib/systemd/system/kube-proxy.service; enabled; vendor preset: disabled) Active: active (running) since 日 2018-03-18 21:44:47 JST; 1s ago Docs: https://github.com/GoogleCloudPlatform/kubernetes Main PID: 8563 (kube-proxy) Memory: 14.1M CGroup: /system.slice/kube-proxy.service mq8563 /usr/bin/kube-proxy --logtostderr=true --v=0 --master=http://k8smaster01:8080 3月 18 21:44:47 centos74 kube-proxy[8563]: E0318 21:44:47.479591 8563 server.go:421] Can't get Node "centos74", assuming ipta...t found 3月 18 21:44:47 centos74 kube-proxy[8563]: I0318 21:44:47.480866 8563 server.go:215] Using iptables Proxier. 3月 18 21:44:47 centos74 kube-proxy[8563]: W0318 21:44:47.482001 8563 server.go:468] Failed to retrieve node info: nodes "cen...t found 3月 18 21:44:47 centos74 kube-proxy[8563]: W0318 21:44:47.482078 8563 proxier.go:248] invalid nodeIP, initialize kube-proxy w... nodeIP 3月 18 21:44:47 centos74 kube-proxy[8563]: W0318 21:44:47.482084 8563 proxier.go:253] clusterCIDR not specified, unable to di...traffic 3月 18 21:44:47 centos74 kube-proxy[8563]: I0318 21:44:47.482103 8563 server.go:227] Tearing down userspace rules. 3月 18 21:44:47 centos74 kube-proxy[8563]: I0318 21:44:47.497966 8563 conntrack.go:81] Set sysctl 'net/netfilter/nf_conntrack... 131072 3月 18 21:44:47 centos74 kube-proxy[8563]: I0318 21:44:47.498348 8563 conntrack.go:66] Setting conntrack hashsize to 32768 3月 18 21:44:47 centos74 kube-proxy[8563]: I0318 21:44:47.498742 8563 conntrack.go:81] Set sysctl 'net/netfilter/nf_conntrack...o 86400 3月 18 21:44:47 centos74 kube-proxy[8563]: I0318 21:44:47.498781 8563 conntrack.go:81] Set sysctl 'net/netfilter/nf_conntrack...to 3600 Hint: Some lines were ellipsized, use -l to show in full.
Minionの自動起動設定とサービスの起動
1号機と同じです。
# systemctl status kubelet.service ● kubelet.service - Kubernetes Kubelet Server Loaded: loaded (/usr/lib/systemd/system/kubelet.service; disabled; vendor preset: disabled) ←自動起動無効 Active: inactive (dead) ←停止状態 Docs: https://github.com/GoogleCloudPlatform/kubernetes # systemctl enable kubelet.service Created symlink from /etc/systemd/system/multi-user.target.wants/kubelet.service to /usr/lib/systemd/system/kubelet.service. # systemctl status kubelet.service ● kubelet.service - Kubernetes Kubelet Server Loaded: loaded (/usr/lib/systemd/system/kubelet.service; enabled; vendor preset: disabled) ←自動起動有効 Active: inactive (dead) ←停止状態 Docs: https://github.com/GoogleCloudPlatform/kubernetes # systemctl start kubelet.service # systemctl status kubelet.service ● kubelet.service - Kubernetes Kubelet Server Loaded: loaded (/usr/lib/systemd/system/kubelet.service; enabled; vendor preset: disabled) ←自動起動有効 Active: active (running) since 日 2018-03-18 21:46:42 JST; 1s ago ←起動状態 Docs: https://github.com/GoogleCloudPlatform/kubernetes Main PID: 9806 (kubelet) Memory: 26.1M CGroup: /system.slice/kubelet.service tq9806 /usr/bin/kubelet --logtostderr=true --v=0 --api-servers=http://k8smaster01:8080 --address=192.168.0.34 --hostname-overr... mq9861 journalctl -k -f 3月 18 21:46:43 centos74 kubelet[9806]: I0318 21:46:43.304885 9806 factory.go:54] Registering systemd factory 3月 18 21:46:43 centos74 kubelet[9806]: I0318 21:46:43.304977 9806 factory.go:86] Registering Raw factory 3月 18 21:46:43 centos74 kubelet[9806]: I0318 21:46:43.305062 9806 manager.go:1106] Started watching for new ooms in manager 3月 18 21:46:43 centos74 kubelet[9806]: I0318 21:46:43.307641 9806 oomparser.go:185] oomparser using systemd 3月 18 21:46:43 centos74 kubelet[9806]: I0318 21:46:43.308985 9806 manager.go:288] Starting recovery of all containers 3月 18 21:46:43 centos74 kubelet[9806]: I0318 21:46:43.345739 9806 manager.go:293] Recovery completed 3月 18 21:46:43 centos74 kubelet[9806]: E0318 21:46:43.385926 9806 eviction_manager.go:204] eviction manager: unexpected err:...t found 3月 18 21:46:43 centos74 kubelet[9806]: I0318 21:46:43.394520 9806 kubelet_node_status.go:227] Setting node annotation to ena.../detach 3月 18 21:46:43 centos74 kubelet[9806]: I0318 21:46:43.395681 9806 kubelet_node_status.go:74] Attempting to register node minion02 3月 18 21:46:43 centos74 kubelet[9806]: I0318 21:46:43.399136 9806 kubelet_node_status.go:77] Successfully registered node minion02 Hint: Some lines were ellipsized, use -l to show in full.
Red Hat Unified Entitlement Platformとの通信に必要な証明書のインストール
1号機と同じです。
# yum -y install python-rhsm-certificates 読み込んだプラグイン:fastestmirror, langpacks base | 3.6 kB 00:00:00 extras | 3.4 kB 00:00:00 updates | 3.4 kB 00:00:00 updates/7/x86_64/primary_db | 6.9 MB 00:00:06 Loading mirror speeds from cached hostfile * base: ftp.tsukuba.wide.ad.jp * extras: ftp.tsukuba.wide.ad.jp * updates: ftp.tsukuba.wide.ad.jp 依存性の解決をしています --> トランザクションの確認を実行しています。 ---> パッケージ python-rhsm-certificates.x86_64 0:1.19.10-1.el7_4 を インストール --> 依存性解決を終了しました。 依存性を解決しました ============================================================================================================================================ Package アーキテクチャー バージョン リポジトリー 容量 ============================================================================================================================================ インストール中: python-rhsm-certificates x86_64 1.19.10-1.el7_4 updates 41 k トランザクションの要約 ============================================================================================================================================ インストール 1 パッケージ 総ダウンロード容量: 41 k インストール容量: 7.6 k Downloading packages: python-rhsm-certificates-1.19.10-1.el7_4.x86_64.rpm | 41 kB 00:00:05 Running transaction check Running transaction test Transaction test succeeded Running transaction インストール中 : python-rhsm-certificates-1.19.10-1.el7_4.x86_64 1/1 検証中 : python-rhsm-certificates-1.19.10-1.el7_4.x86_64 1/1 インストール: python-rhsm-certificates.x86_64 0:1.19.10-1.el7_4 完了しました!
Kubernetes関連プロセスの起動確認
1号機と同じです。
# ps -ef | grep docker | grep -v grep root 1148 1 0 11:08 ? 00:00:27 /usr/bin/dockerd-current --add-runtime docker-runc=/usr/libexec/docker/docker-runc-current --default-runtime=docker-runc --exec-opt native.cgroupdriver=systemd --userland-proxy-path=/usr/libexec/docker/docker-proxy-current --seccomp-profile=/etc/docker/seccomp.json --selinux-enabled --log-driver=journald --signature-verification=false --insecure-registry k8smaster01:5000 --storage-driver overlay2 --bip=172.17.89.1/24 --ip-masq=true --mtu=1472 root 1207 1148 0 11:08 ? 00:00:06 /usr/bin/docker-containerd-current -l unix:///var/run/docker/libcontainerd/docker-containerd.sock --metrics-interval=0 --start-timeout 2m --state-dir /var/run/docker/libcontainerd/containerd --shim docker-containerd-shim --runtime docker-runc --runtime-args --systemd-cgroup=true root 1612 1207 0 11:08 ? 00:00:00 /usr/bin/docker-containerd-shim-current a1baa78780233f37bf7a77ff6b658508f5cd83e74ec41304e4e8c218aef86e28 /var/run/docker/libcontainerd/a1baa78780233f37bf7a77ff6b658508f5cd83e74ec41304e4e8c218aef86e28 /usr/libexec/docker/docker-runc-current root 1726 1207 0 11:08 ? 00:00:00 /usr/bin/docker-containerd-shim-current 3487d76a2761150f0a7b4657f00cf146b6dd97c42aba15574ee82fdbc00e907e /var/run/docker/libcontainerd/3487d76a2761150f0a7b4657f00cf146b6dd97c42aba15574ee82fdbc00e907e /usr/libexec/docker/docker-runc-current # ps -ef | grep kubelet | grep -v grep root 1473 1 0 11:08 ? 00:01:48 /usr/bin/kubelet --logtostderr=true --v=0 --api-servers=http://k8smaster01:8080 --address=192.168.0.34 --hostname-override=minion02 --allow-privileged=false --pod-infra-container-image=registry.access.redhat.com/rhel7/pod-infrastructure:latest # ps -ef | grep kube-proxy | grep -v grep root 971 1 1 11:08 ? 00:02:31 /usr/bin/kube-proxy --logtostderr=true --v=0 --master=http://k8smaster01:8080 # ps -ef | grep flanneld | grep -v grep root 973 1 0 11:08 ? 00:00:00 /usr/bin/flanneld -etcd-endpoints=http://k8smaster01:2379 -etcd-prefix=/atomic.io/network
KubernetesのマスタサーバでPodの作成
Kubernetesで管理しているノード(Minion)の確認
Minionの設定が完了し、正常にマスタサーバに接続できていることを確認します。 マスタサーバで以下のコマンドを実行し、2台のMinionが認識されており、 STATUS が Ready になっていればこれまでの設定は成功しています。
# kubectl get nodes NAME STATUS AGE minion01 Ready 20h minion02 Ready 15m
Apache用のPod定義ファイルの作成
KubernetesがDockerコンテナを管理する単位をPodと呼びます。 Podの構成情報をYAML形式のファイルで作成し、Kubernetesが読み込んでPodを構成します。 動作確認のために、Apache HTTP ServerのDockerコンテナを起動してみます。 まずはPodの構成情報をYAMLで記述します。
# cd /data/ # mkdir kubernetes # cd kubernetes/ # vi pod-httpd.yaml
※新規作成※
apiVersion: v1
kind: Pod
metadata:
name: httpd
labels:
app: httpd
spec:
containers:
- name: httpd
image: httpd
ports:
- containerPort: 80
Apache用のPodの作成
作成したYAML形式の構成情報ファイルを元にPodを作成します。
# kubectl create -f pod-httpd.yaml pod "httpd" created
Podの状態確認
作成したPodの状態を確認します。 Dockerイメージのダウンロードと起動が行われます。 STATUSがContainerCreatingと表示されますが、少し時間をおいて再度確認するとRunningに変わります。
# kubectl get pods NAME READY STATUS RESTARTS AGE httpd 0/1 ContainerCreating 0 16s ←まだ起動していない ※少し待つ※ # kubectl get pods NAME READY STATUS RESTARTS AGE httpd 1/1 Running 0 1d ←起動した
Podの詳細な状態をYAML形式で出力
上記で構成したPodの構成や状態を詳細に知りたいときには、 以下のコマンドを実行します。また、表示を読みやすくするために、 YAML形式で表示するための -o yaml のオプションを付与します。
# kubectl get pod httpd -o yaml apiVersion: v1 kind: Pod metadata: creationTimestamp: 2018-03-18T13:09:40Z labels: app: httpd name: httpd namespace: default resourceVersion: "103496" selfLink: /api/v1/namespaces/default/pods/httpd uid: 9de130cf-2aad-11e8-9ecd-000c29595f9a spec: containers: - image: httpd imagePullPolicy: Always name: httpd ports: - containerPort: 80 protocol: TCP resources: {} terminationMessagePath: /dev/termination-log volumeMounts: - mountPath: /var/run/secrets/kubernetes.io/serviceaccount name: default-token-m0fgk readOnly: true dnsPolicy: ClusterFirst nodeName: minion02 ←ホスト名がMinion02のノード(Minion)でコンテナが起動 restartPolicy: Always securityContext: {} serviceAccount: default serviceAccountName: default terminationGracePeriodSeconds: 30 volumes: - name: default-token-m0fgk secret: defaultMode: 420 secretName: default-token-m0fgk status: conditions: - lastProbeTime: null lastTransitionTime: 2018-03-18T13:09:40Z status: "True" type: Initialized - lastProbeTime: null lastTransitionTime: 2018-03-19T15:54:49Z status: "True" type: Ready - lastProbeTime: null lastTransitionTime: 2018-03-18T13:09:40Z status: "True" type: PodScheduled containerStatuses: ←コンテナの状態 - containerID: docker://e8f0b638d280af10ec99293ff922130e7fae08be04492516857af65c40f72d3a image: httpd ←イメージ名 imageID: docker-pullable://docker.io/httpd@sha256:55d51b9ba32f4da144211f8323299257ad3be265aa31239aeba1240cceff06b2 lastState: {} name: httpd ←コンテナ名 ready: true restartCount: 0 state: running: startedAt: 2018-03-19T15:54:48Z hostIP: 192.168.0.34 phase: Running podIP: 172.17.37.2 startTime: 2018-03-18T13:09:40Z
MinoinでPod起動後のDockerコンテナ確認
マスタサーバでのKubernetesの操作が終わったので、Minion側で動作確認を行います。 今回はMinionの2号機でDockerコンテナが起動しているので、2号機に対して以下の操作を行います。
Dockerイメージの確認
Podの構成情報に基づいて httpd のDockerイメージがダウンロードされていることを確認します。
# docker images REPOSITORY TAG IMAGE ID CREATED SIZE docker.io/httpd latest 6896e3bd0247 5 days ago 177 MB registry.access.redhat.com/rhel7/pod-infrastructure latest 99965fb98423 5 months ago 209 MB
Dockerコンテナの確認
httpdのDockerイメージからDockerコンテナが生成されていることを確認します。
# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES e8f0b638d280 httpd "httpd-foreground" 35 seconds ago Up 34 seconds k8s_httpd.55d82ee1_httpd_default_9de130cf-2aad-11e8-9ecd-000c29595f9a_fb0f6064 eac25ddb1802 registry.access.redhat.com/rhel7/pod-infrastructure:latest "/usr/bin/pod" 49 seconds ago Up 48 seconds k8s_POD.a8590b41_httpd_default_9de130cf-2aad-11e8-9ecd-000c29595f9a_5cf67b92
Apacheプロセスの確認
Dockerコンテナで動作するプロセスとしてApache HTTP Serverのプロセスであるhttpdが起動していることを確認します。
# ps -ef | grep httpd | grep -v grep root 11818 11802 0 00:54 ? 00:00:00 httpd -DFOREGROUND bin 11839 11818 0 00:54 ? 00:00:00 httpd -DFOREGROUND bin 11840 11818 0 00:54 ? 00:00:00 httpd -DFOREGROUND bin 11841 11818 0 00:54 ? 00:00:00 httpd -DFOREGROUND
Apacheへアクセス確認
Apacheのプロセスが起動しているので、HTTPリクエストに対してレスポンスが返ってくるか確認します。 確認にはcurlコマンドを使用します。 Apacheが It works! という文字をHTML形式で応答してきたので、Apacheは利用できる状態であることが確認できました。
# curl 172.17.37.2
<html><body><h1>It works!</h1></body></html> ←Apacheが応答したレスポンスデータ
今回はKubernetesのマスタサーバで2台のMinionを管理する小規模な構成でPodの最低限の動作を確認しました。 始めての構築だったので気づいていない設定不備などあるかもしれませんが、今後レベルアップさせていきます。