OSS Fan ~OSSでLinuxサーバ構築~

作成日: 2018/03/29
更新日: 2018/05/14

OSSでLinuxサーバ構築

Kubernetes 1.5.2をCentOS 7.4へインストールしてDocker 1.13.1のノードを管理する

トップページOSSでLinuxサーバ構築 > Kubernetes 1.5.2をCentOS 7.4へインストールしてDocker 1.13.1のノードを管理する
このエントリーをはてなブックマークに追加

概要

 Dockerについてある程度利用してみましたが、複数台のサーバでシステムを構築する場合は Dockerイメージの管理やDockerコンテナの起動・停止など、同じような作業を複数のサーバで それぞれ実行しなければならないので、ちょっとめんどくさいなと思うようになりました。 そんなところ、KubernetesというDockerのオーケストレーションツールの存在を知ったので、 どんなものなのか試しにインストールしてみました。

 2018年3月29日時点でネットで色々調べながらインストールしましたが、設定ファイルの設定項目が 自分のサーバとネットのブログなどの情報で食い違っており、おそらく開発の過程で変更になったのかなと 想像しています(裏取りしていません)。 まだまだ開発途上のようなので、Kubernetesの最新バージョンでは今回私が試した情報からも 変わっているかも知れません。その点はご了承ください。

構成

想定環境

 今回構築するシステム構成を超ザックリ描くと以下のような感じです。

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のマスタサーバ構築

(1) ホスト名の設定

 hostsファイルにKubernetesのマスタサーバとMinion 2台の情報を設定します。

# cd /etc/
# vi hosts
ファイル名:/etc/hosts
※ファイルの末尾に追加※
192.168.0.32    k8smaster01
192.168.0.33    minion01
192.168.0.34    minion02

(2) 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

完了しました!

(3) etcdの設定

 キーバリューストアのetcdを設定します。etcdはkubernetesとflannelから利用されます。 なお、マスタサーバだけでなく、Minion上で稼働するkubernetesとflannelからも利用されます。 マスタサーバの全てのインタフェースでクライアント(kubernetesとflannel)からのリクエストを受けるよう、 リッスンアドレスに 0.0.0.0 を指定します。

# cd /etc/etcd/
# vi etcd.conf
ファイル名:/etc/etcd/etcd.conf
※以下、該当箇所のみ変更※
ETCD_LISTEN_CLIENT_URLS="http://localhost:2379"
   ↓変更
ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379" ←全てのインタフェースの2379ポートでリッスンする

(4) 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.

(5) flannelが使用する仮想ネットワークのIPアドレスを指定

 キーバリューストアのetcdに対して、flannelが構成する仮想ネットワークのネットワークアドレスを設定します。

# etcdctl mk /atomic.io/network/config '{"Network":"172.17.0.0/16"}'
{"Network":"172.17.0.0/16"}

(6) 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.

(7) 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
ファイル名:/etc/kubernetes/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"

(8) controller-managerの設定

 Kubernetesのcontroller-managerにも同じRSA暗号の秘密鍵ファイルのパスを設定します。

# vi controller-manager
ファイル名:/etc/kubernetes/controller-manager
※以下、該当箇所のみ変更※
KUBE_CONTROLLER_MANAGER_ARGS=""
   ↓変更
KUBE_CONTROLLER_MANAGER_ARGS="--service_account_private_key_file=/etc/kubernetes/serviceaccount.key"

(9) Kubernetesシステム設定

 Kubernetesのシステム設定として、マスタサーバへ接続するためのURLを設定します。

# vi config
ファイル名:/etc/kubernetes/config
※以下、該当箇所のみ変更※
KUBE_MASTER="--master=http://127.0.0.1:8080"
   ↓変更
KUBE_MASTER="--master=http://k8smaster01:8080"

(10) 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.

(11) 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.

(12) 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.

(13) 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

(14) 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号機構築

(1) ホスト名の設定

 hostsファイルにKubernetesのマスタサーバとMinion 2台の情報を設定します。

# cd /etc/
# vi hosts
ファイル名:/etc/hosts
※ファイルの末尾に追加※
192.168.0.32    k8smaster01
192.168.0.33    minion01
192.168.0.34    minion02

(2) 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

完了しました!

(3) flannelの設定

 マスタサーバの構築でflannelが使用する仮想ネットワークの設定を行い、 etcdに設定情報を書き込みましたので、Minionではflannelが参照するetcdのURLを設定します。 URLのアドレスにはマスタサーバのホスト名を指定します。

# cd /etc/sysconfig/
# vi flanneld
ファイル名:/etc/sysconfig/flanneld
※以下、該当箇所のみ変更※
FLANNEL_ETCD_ENDPOINTS="http://127.0.0.1:2379"
   ↓変更
FLANNEL_ETCD_ENDPOINTS="http://k8smaster01:2379"

(4) 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.

(5) 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.

(6) Kubernetesのシステム設定

 Kubernetesのシステム設定として、マスタサーバへ接続するためのURLを設定します。

# cd /etc/kubernetes/
# vi config
ファイル名:/etc/kubernetes/config
※以下、該当箇所のみ変更※
KUBE_MASTER="--master=http://127.0.0.1:8080"
   ↓変更
KUBE_MASTER="--master=http://k8smaster01:8080"

(7) KubernetesのMinion用設定

 KubernetesのMinion用設定として、MinionのIPアドレスとホスト名、apiserverのURLを指定します。 apiserverはマスタサーバ上で稼働しているため、マスタサーバのホスト名を指定します。

# vi kubelet
ファイル名:/etc/kubernetes/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"

(8) 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.

(9) 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.

(10) 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

完了しました!

(11) 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) ホスト名の設定

 1号機と同じです。

# cd /etc/
# vi hosts
ファイル名:/etc/hosts
※ファイルの末尾に追加※
192.168.0.32    k8smaster01
192.168.0.33    minion01
192.168.0.34    minion02

(2) 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

完了しました!

(3) flannelの設定

 1号機と同じです。

# cd /etc/sysconfig/
# vi flanneld
ファイル名:/etc/sysconfig/flanneld
※以下、該当箇所のみ変更※
FLANNEL_ETCD_ENDPOINTS="http://127.0.0.1:2379"
   ↓変更
FLANNEL_ETCD_ENDPOINTS="http://k8smaster01:2379"

(4) 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.

(5) 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.

(6) Kubernetesのシステム設定

 1号機と同じです。

# cd /etc/kubernetes/
# vi config
ファイル名:/etc/kubernetes/config
※以下、該当箇所のみ変更※
KUBE_MASTER="--master=http://127.0.0.1:8080"
   ↓変更
KUBE_MASTER="--master=http://k8smaster01:8080"

(7) KubernetesのMinion用設定

 MinionのIPアドレスとホスト名が2号機のものに変わるだけで あとは1号機と同じです。

# vi kubelet
ファイル名:/etc/kubernetes/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"

(8) 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.

(9) 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.

(10) 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

完了しました!

(11) 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の作成

(1) Kubernetesで管理しているノード(Minion)の確認

 Minionの設定が完了し、正常にマスタサーバに接続できていることを確認します。 マスタサーバで以下のコマンドを実行し、2台のMinionが認識されており、 STATUS が Ready になっていればこれまでの設定は成功しています。

# kubectl get nodes
NAME       STATUS    AGE
minion01   Ready     20h
minion02   Ready     15m

(2) 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
ファイル名:/data/kubernetes/pod-httpd.yaml
※新規作成※
apiVersion: v1
kind: Pod
metadata:
  name: httpd
  labels:
    app: httpd
spec:
  containers:
  - name: httpd
    image: httpd
    ports:
    - containerPort: 80

(3) Apache用のPodの作成

 作成したYAML形式の構成情報ファイルを元にPodを作成します。

# kubectl create -f pod-httpd.yaml
pod "httpd" created

(4) 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 ←起動した

(5) 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号機に対して以下の操作を行います。

(1) 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

(2) 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

(3) 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

(4) 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の最低限の動作を確認しました。 始めての構築だったので気づいていない設定不備などあるかもしれませんが、今後レベルアップさせていきます。

プロフィール

らのっち

損害保険会社のIT企画部に勤務するSEです。OSSを勉強中です。

<所属>
日本PostgreSQLユーザ会とくしまOSS普及協議会


第000414号