zabbix serverを5.0 LTSにupdateした。

Zabbix 5.0LTSが出たのでzabbixのバージョンを上げてみました。
OSはCentOS Linux release 8.1.1911です。

現在のバージョンは

# zabbix_server -V
zabbix_server (Zabbix) 4.4.8
Revision 3d7663fd7c 27 April 2020, compilation time: Apr 27 2020 13:24:19

です。

まずは、zabbix5.0のリポジトリをサーバーにインストールします。

# dnf localinstall https://repo.zabbix.com/zabbix/5.0/rhel/8/x86_64/zabbix-release-5.0-1.el8.noarch.rpm
メタデータの期限切れの最終確認: 0:32:31 時間前の 2020年05月23日 00時45分01秒 に 実施しました。
zabbix-release-5.0-1.el8.noarch.rpm 31 kB/s | 18 kB 00:00
依存関係が解決しました。
================================================================================
パッケージ Arch バージョン リポジトリー サイズ
================================================================================
アップグレード:
zabbix-release noarch 5.0-1.el8 @commandline 18 k

トランザクションの概要
================================================================================
アップグレード 1 パッケージ

合計サイズ: 18 k
これでよろしいですか? [y/N]: y
パッケージのダウンロード:
トランザクションの確認を実行中
トランザクションの確認に成功しました。
トランザクションのテストを実行中
トランザクションのテストに成功しました。
トランザクションを実行中
準備 : 1/1
アップグレード中 : zabbix-release-5.0-1.el8.noarch 1/2
整理 : zabbix-release-4.4-1.el8.noarch 2/2
検証 : zabbix-release-5.0-1.el8.noarch 1/2
検証 : zabbix-release-4.4-1.el8.noarch 2/2

アップグレード済み:
zabbix-release-5.0-1.el8.noarch

完了しました!

既存のzabbix 4.4のrepoを上書きしてくれました。

check-updateで確認します。

# dnf check-update
Zabbix Official Repository - x86_64 30 kB/s | 14 kB 00:00

zabbix-agent2.x86_64 5.0.0-1.el8 zabbix
zabbix-server-mysql.x86_64 5.0.0-1.el8 zabbix
zabbix-web.noarch 5.0.0-1.el8 zabbix
zabbix-web-japanese.noarch 5.0.0-1.el8 zabbix
zabbix-web-mysql.noarch 5.0.0-1.el8 zabbix

zabbix5.0がupdate対象として表示されました。

それでは、いよいよzabbix5.0にupdateです。

# dnf -y update
メタデータの期限切れの最終確認: 0:00:16 時間前の 2020年05月23日 01時17分51秒 に 実施しました。
依存関係が解決しました。
================================================================================
パッケージ Arch バージョン リポジトリー サイズ
================================================================================
アップグレード:
zabbix-agent2 x86_64 5.0.0-1.el8 zabbix 4.1 M
zabbix-server-mysql x86_64 5.0.0-1.el8 zabbix 2.6 M
zabbix-web noarch 5.0.0-1.el8 zabbix 3.0 M
zabbix-web-japanese noarch 5.0.0-1.el8 zabbix 16 k
zabbix-web-mysql noarch 5.0.0-1.el8 zabbix 15 k

トランザクションの概要
================================================================================
アップグレード 5 パッケージ

ダウンロードサイズの合計: 9.8 M
パッケージのダウンロード:
(1/5): zabbix-server-mysql-5.0.0-1.el8.x86_64.r 2.5 MB/s | 2.6 MB 00:01
(2/5): zabbix-web-5.0.0-1.el8.noarch.rpm 2.6 MB/s | 3.0 MB 00:01
(3/5): zabbix-web-japanese-5.0.0-1.el8.noarch.r 142 kB/s | 16 kB 00:00
(4/5): zabbix-web-mysql-5.0.0-1.el8.noarch.rpm 135 kB/s | 15 kB 00:00
(5/5): zabbix-agent2-5.0.0-1.el8.x86_64.rpm 3.2 MB/s | 4.1 MB 00:01
--------------------------------------------------------------------------------
合計 7.6 MB/s | 9.8 MB 00:01
トランザクションの確認を実行中
トランザクションの確認に成功しました。
トランザクションのテストを実行中
トランザクションのテストに成功しました。
トランザクションを実行中
準備 : 1/1
scriptletの実行中: zabbix-web-mysql-5.0.0-1.el8.noarch 1/1
アップグレード中 : zabbix-web-mysql-5.0.0-1.el8.noarch 1/10
アップグレード中 : zabbix-web-5.0.0-1.el8.noarch 2/10
scriptletの実行中: zabbix-web-5.0.0-1.el8.noarch 2/10
アップグレード中 : zabbix-web-japanese-5.0.0-1.el8.noarch 3/10
scriptletの実行中: zabbix-web-japanese-5.0.0-1.el8.noarch 3/10
scriptletの実行中: zabbix-server-mysql-5.0.0-1.el8.x86_64 4/10
アップグレード中 : zabbix-server-mysql-5.0.0-1.el8.x86_64 4/10
警告: /etc/zabbix/zabbix_server.conf は /etc/zabbix/zabbix_server.conf.rpmnew として作成されました。

scriptletの実行中: zabbix-server-mysql-5.0.0-1.el8.x86_64 4/10
scriptletの実行中: zabbix-agent2-5.0.0-1.el8.x86_64 5/10
アップグレード中 : zabbix-agent2-5.0.0-1.el8.x86_64 5/10
警告: /etc/zabbix/zabbix_agent2.conf は /etc/zabbix/zabbix_agent2.conf.rpmnew として作成されました。

scriptletの実行中: zabbix-agent2-5.0.0-1.el8.x86_64 5/10
scriptletの実行中: zabbix-web-japanese-4.4.8-1.el8.noarch 6/10
整理 : zabbix-web-japanese-4.4.8-1.el8.noarch 6/10
scriptletの実行中: zabbix-web-4.4.8-1.el8.noarch 7/10
整理 : zabbix-web-4.4.8-1.el8.noarch 7/10
整理 : zabbix-web-mysql-4.4.8-1.el8.noarch 8/10
scriptletの実行中: zabbix-server-mysql-4.4.8-1.el8.x86_64 9/10
整理 : zabbix-server-mysql-4.4.8-1.el8.x86_64 9/10
scriptletの実行中: zabbix-server-mysql-4.4.8-1.el8.x86_64 9/10
scriptletの実行中: zabbix-agent2-4.4.8-1.el8.x86_64 10/10
整理 : zabbix-agent2-4.4.8-1.el8.x86_64 10/10
scriptletの実行中: zabbix-agent2-4.4.8-1.el8.x86_64 10/10
検証 : zabbix-agent2-5.0.0-1.el8.x86_64 1/10
検証 : zabbix-agent2-4.4.8-1.el8.x86_64 2/10
検証 : zabbix-server-mysql-5.0.0-1.el8.x86_64 3/10
検証 : zabbix-server-mysql-4.4.8-1.el8.x86_64 4/10
検証 : zabbix-web-5.0.0-1.el8.noarch 5/10
検証 : zabbix-web-4.4.8-1.el8.noarch 6/10
検証 : zabbix-web-japanese-5.0.0-1.el8.noarch 7/10
検証 : zabbix-web-japanese-4.4.8-1.el8.noarch 8/10
検証 : zabbix-web-mysql-5.0.0-1.el8.noarch 9/10
検証 : zabbix-web-mysql-4.4.8-1.el8.noarch 10/10

アップグレード済み:
zabbix-agent2-5.0.0-1.el8.x86_64 zabbix-server-mysql-5.0.0-1.el8.x86_64
zabbix-web-5.0.0-1.el8.noarch zabbix-web-japanese-5.0.0-1.el8.noarch
zabbix-web-mysql-5.0.0-1.el8.noarch

完了しました!

バージョン確認

# zabbix_server -V
zabbix_server (Zabbix) 5.0.0
Revision 9665d62db0 11 May 2020, compilation time: May 11 2020 14:31:28

何事もなく完了しました。
しかし、GUIのレイアウトが変わったので操作に戸惑いそうです。。

zabbix-serverが起動に失敗する。

構築時は普通に稼働していたzabbix-serverですが、
監視対象を追加していくと、ある時からzabbixが落ちる→起動失敗が連続していた。
手動でzabbix-serverを起動しようとしても無理なので対処。

環境はこんな感じ

# cat /etc/redhat-release
CentOS Linux release 8.1.1911 (Core)
# rpm -qa | grep zabbix
zabbix-server-mysql-4.4.8-1.el8.x86_64
zabbix-web-4.4.8-1.el8.noarch
zabbix-web-japanese-4.4.8-1.el8.noarch
zabbix-web-mysql-4.4.8-1.el8.noarch
zabbix-agent2-4.4.8-1.el8.x86_64
zabbix-release-4.4-1.el8.noarch

ログを見ると

May 7 16:21:19 hogehoge1 systemd[1]: zabbix-server.service: Control process exited, code=exited status=1
May 7 16:21:19 hogehoge1 systemd[1]: zabbix-server.service: Failed with result 'exit-code'.
May 7 16:21:29 hogehoge1 systemd[1]: zabbix-server.service: Service RestartSec=10s expired, scheduling restart.
May 7 16:21:29 hogehoge1 systemd[1]: zabbix-server.service: Scheduled restart job, restart counter is at 6.
May 7 16:21:29 hogehoge1 systemd[1]: Stopped Zabbix Server.
May 7 16:21:29 hogehoge1 systemd[1]: Starting Zabbix Server...
May 7 16:21:29 hogehoge1 systemd[1]: zabbix-server.service: Can't open PID file /run/zabbix/zabbix_server.pid (yet?) after start: No such file or directory
May 7 16:21:29 hogehoge1 systemd[1]: zabbix-server.service: Supervising process 120150 which is not our child. We'll most likely not notice when it exits.
May 7 16:21:29 hogehoge1 systemd[1]: Started Zabbix Server.
May 7 16:21:29 hogehoge1 kill[120153]: kill: 十分な引数がありません
May 7 16:21:29 hogehoge1 systemd[1]: zabbix-server.service: Control process exited, code=exited status=1
May 7 16:21:29 hogehoge1 systemd[1]: zabbix-server.service: Failed with result 'exit-code'.

こんな感じでsystemdの自動再起動が走ってコケてを繰り返しています。

監視対象追加が起因していると思われますのでzabbixの設定を見てみます。

/etc/zabbix/zabbix_server.conf

のCacheSizeが
デフォルトのままでしたので32Mに増やします。

### Option: CacheSize
# Size of configuration cache, in bytes.
# Shared memory size for storing host, item and trigger data.
#
# Mandatory: no
# Range: 128K-8G
# Default:
# CacheSize=8M
CacheSize=32M

これで、zabbix-serverの起動が出来るようになりました。

MariaDB 10.5.2をインストールしてみた。

先日リリースされたMariaDB 10.5.2をインストールしてみた。

現時点では、Do not use beta releases in production!と書かれており注意です。

参考にしたのはMariaDB公式サイト
悩むことなくインストールできました。
入れたOSは↓

# cat /etc/redhat-release
CentOS Linux release 8.1.1911 (Core)


それでは作業開始
.repoを作ります。

# vim /etc/yum.repos.d/MariaDB.repo
# MariaDB 10.5 CentOS repository list - created 2020-04-14 13:37 UTC
# http://downloads.mariadb.org/mariadb/repositories/
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.5/centos8-amd64
module_hotfixes=1
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1

続きを読む "MariaDB 10.5.2をインストールしてみた。"

sshfsでリモートでサーバーのディレクトリをmountしてみた。

sshfsでリモートサーバーのディレクトリをmountしてみました。
使用したOSはCentOS7です。
mountする領域は
クライアントが/mnt/hoge1
サーバーが192.168.100.50 /mnt/hoge2

まずはepel-repoをインストール

# yum install epel-release -y


次にsshfsをインストール

# yum install --enablerepo=epel sshfs -y

ローカル環境なので簡単にクライアントからサーバーへパス無しログイン設定をします。

# ssh-copy-id root@192.168.100.50

サーバー側でクライアントからのmount許可設定をします。

# vim /etc/exports
/mnt/hoge2 192.168.100.50/255.255.255.255(rw,no_root_squash,no_subtree_check)

設定反映

# exportfs -ra

次にクライアント側のmount設定をします。

# vim /etc/fstab
192.168.100.50:/mnt/hoge1 /mnt/hoge2 fuse.sshfs defaults,_netdev 0 0

手動でやるときは

# sshfs root@192.168.100.50:/mnt/hoge1 /mnt/hoge2

マウント確認

# mount -a

マウントできてれば完了

nutanix VMのディスクをIDEからSCSIに変換してみた。

IDEで作ったNutanix上のVMをscsiに変換してみた。
念のため作業前にVMのsnap shotは取得しておきます。

まずは、Nutanix clusterのCVMに入り対象を確認

# acli
vm.get hoge-vm-01
hoge-vm-01 {
config {
agent_vm: False
allow_live_migrate: True
boot {
device {
disk_addr {
bus: "ide"
index: 1
}
}
uefi_boot: False
}
disk_list {
addr {
bus: "ide"
index: 0
}
cdrom: True
device_uuid: "31334ace-7c53-464d-9492-f5ea86e49ce6"
empty: True
}
disk_list {
addr {
bus: "ide" ←変換対象はこれ
index: 1
}
container_id: 66602
container_uuid: "3772c06c-d082-4300-82d7-bf61bbe31af0"
device_uuid: "ffc51c77-bf6e-435b-8740-a9c002d1128e"
naa_id: "naa.6506b8d305671382c9c7b5660af464f1"
source_vmdisk_uuid: "4237633a-d01e-40e1-b5d5-31771e64ee73"
vmdisk_size: 57982058496
vmdisk_uuid: "f4a8ba40-2610-4470-b6f1-11019bb55585"
}
hwclock_timezone: "UTC"
memory_mb: 4096
name: "hoge-vm-01"
nic_list {
mac_addr: "50:6b:8d:88:9e:a1"
network_name: "VLAN2"
network_type: "kNativeNetwork"
network_uuid: "8da3d3f7-109f-447c-95bf-c82219bc93ad"
type: "kNormalNic"
uuid: "58637f42-1938-4245-adee-77f44e3b5a78"
vlan_mode: "kAccess"
}
num_cores_per_vcpu: 1
num_threads_per_core: 1
num_vcpus: 2
num_vnuma_nodes: 0
}
host_name: "172.16.40.6"
host_uuid: "d44d53c3-ffa5-4abe-9d18-07232d3cbfd9"
logical_timestamp: 58
state: "kOn"
uuid: "a01ec35d-23c9-4543-938c-c16f59807473"
}

対象が分かったらideからscsiに変換します。

vm.disk_create hoge-vm-01 bus=scsi clone_from_vmdisk=vm:hoge-vm-01:ide.1
DiskCreate: complete

確認します。

vm.get hoge-vm-01
hoge-vm-01 {
config {
agent_vm: False
allow_live_migrate: True
boot {
device {
disk_addr {
bus: "ide"
index: 1
}
}
uefi_boot: False
}
disk_list {
addr {
bus: "ide"
index: 0
}
cdrom: True
device_uuid: "31334ace-7c53-464d-9492-f5ea86e49ce6"
empty: True
}
disk_list {
addr {
bus: "ide"
index: 1
}
container_id: 66602
container_uuid: "3772c06c-d082-4300-82d7-bf61bbe31af0"
device_uuid: "ffc51c77-bf6e-435b-8740-a9c002d1128e"
naa_id: "naa.6506b8d305671382c9c7b5660af464f1"
source_vmdisk_uuid: "4237633a-d01e-40e1-b5d5-31771e64ee73"
vmdisk_size: 57982058496
vmdisk_uuid: "f4a8ba40-2610-4470-b6f1-11019bb55585"
}
disk_list {
addr {
bus: "scsi" ←scsiにてclone
index: 0
}
container_id: 66602
container_uuid: "3772c06c-d082-4300-82d7-bf61bbe31af0"
device_uuid: "cce3f4e3-9b67-499e-a9c5-965ab30207d2"
naa_id: "naa.6506b8dd156861c3f39cfde644856f40"
source_vmdisk_uuid: "f4a8ba40-2610-4470-b6f1-11019bb55585"
vmdisk_size: 57982058496
vmdisk_uuid: "cb4fcb59-b217-4eec-b146-0697ae25afb7"
}
hwclock_timezone: "UTC"
memory_mb: 4096
name: "hoge-vm-01"
nic_list {
mac_addr: "50:6b:8d:88:9e:a1"
network_name: "VLAN2"
network_type: "kNativeNetwork"
network_uuid: "8da3d3f7-109f-447c-95bf-c82219bc93ad"
type: "kNormalNic"
uuid: "58637f42-1938-4245-adee-77f44e3b5a78"
vlan_mode: "kAccess"
}
num_cores_per_vcpu: 1
num_threads_per_core: 1
num_vcpus: 2
num_vnuma_nodes: 0
}
logical_timestamp: 59
state: "kOff"
uuid: "a01ec35d-23c9-4543-938c-c16f59807473"
}

変換できてるようです。

元のディスクを削除します。
タブ連打で出てくるのでacliのコマンドモードは便利です。

vm.disk_delete hoge-vm-01 disk_addr=
ide.0 ide.1 scsi.0
vm.disk_delete hoge-vm-01 disk_addr=ide.1
Delete existing disk? (yes/no) yes
DiskDelete: complete

再度確認

vm.get hoge-vm-01
hoge-vm-01 {
config {
agent_vm: False
allow_live_migrate: True
disk_list {
addr {
bus: "ide"
index: 0
}
cdrom: True
device_uuid: "31334ace-7c53-464d-9492-f5ea86e49ce6"
empty: True
}
disk_list {
addr {
bus: "scsi"
index: 0
}
container_id: 66602
container_uuid: "3772c06c-d082-4300-82d7-bf61bbe31af0"
device_uuid: "cce3f4e3-9b67-499e-a9c5-965ab30207d2"
naa_id: "naa.6506b8dd156861c3f39cfde644856f40"
source_vmdisk_uuid: "f4a8ba40-2610-4470-b6f1-11019bb55585"
vmdisk_size: 57982058496
vmdisk_uuid: "cb4fcb59-b217-4eec-b146-0697ae25afb7"
}
hwclock_timezone: "UTC"
memory_mb: 4096
name: "hoge-vm-01"
nic_list {
mac_addr: "50:6b:8d:88:9e:a1"
network_name: "VLAN2"
network_type: "kNativeNetwork"
network_uuid: "8da3d3f7-109f-447c-95bf-c82219bc93ad"
type: "kNormalNic"
uuid: "58637f42-1938-4245-adee-77f44e3b5a78"
vlan_mode: "kAccess"
}
num_cores_per_vcpu: 1
num_threads_per_core: 1
num_vcpus: 2
num_vnuma_nodes: 0
}
logical_timestamp: 60
state: "kOff"
uuid: "a01ec35d-23c9-4543-938c-c16f59807473"

変換完了です。

CentOS 8でKubernetes Clusterを構築してみた_2

前回CentOS 8でKubernetes Clusterを構築してみた_1でmaster nodeの構築が終わったので、Worker Nodeサーバーを構築します。

selinux・firewalld・swapは無効・hostsに追記・docker・kubeadm をインストールする所まではmasterサーバーと同様です。
自分はKVMのcloneでnode用のサーバーを2台構築しました。


前回masterサーバーでkubeadm initを実行して表示されたkubeadm join~の結果をコピペします。

# kubeadm join 192.168.5.101:6443 --token vb94zf.j2un0ry3aunvx9y3 --discovery-token-ca-cert-hash sha256:f42734223e79931159a470fe37a27677c51bcca051feccefbb8a050fbbfcad43
W0318 23:57:21.802582 1546 join.go:346] [preflight] WARNING: JoinControlPane.controlPlane settings will be ignored when control-plane flag is not set.
[preflight] Running pre-flight checks
[WARNING IsDockerSystemdCheck]: detected "cgroupfs" as the Docker cgroup driver. The recommended driver is "systemd". Please follow the guide at https://kubernetes.io/docs/setup/cri/
[WARNING FileExisting-tc]: tc not found in system path

error execution phase preflight: couldn't validate the identity of the API Server: abort connecting to API servers after timeout of 5m0s
To see the stack trace of this error execute with --v=5 or higher

コケました。。

nodeからmasterへのpingの疎通は問題ありません。
masterでtokenを再確認します。

[root@master ~]# kubeadm token list

何も表示されません。
tokenを再作成します。

[root@master ~]# kubeadm token create --ttl 0
W0319 00:23:48.794101 21520 validation.go:28] Cannot validate kube-proxy config - no validator is available
W0319 00:23:48.794139 21520 validation.go:28] Cannot validate kubelet config - no validator is available
77m1r6.thccq5p3w9a0513z
[root@master ~]# kubeadm token list
TOKEN TTL EXPIRES USAGES DESCRIPTION EXTRA GROUPS
77m1r6.thccq5p3w9a0513z authentication,signing system:bootstrappers:kubeadm:default-node-token

出来たようなので再度nodeサーバーでjoinしてみます。

# kubeadm join 192.168.5.101:6443 --token 77m1r6.thccq5p3w9a0513z --discovery-token-ca-cert-hash sha256:f42734223e79931159a470fe37a27677c51bcca051feccefbb8a050fbbfcad43
W0319 21:59:35.792352 1067 join.go:346] [preflight] WARNING: JoinControlPane.controlPlane settings will be ignored when control-plane flag is not set.
[preflight] Running pre-flight checks
[WARNING IsDockerSystemdCheck]: detected "cgroupfs" as the Docker cgroup driver. The recommended driver is "systemd". Please follow the guide at https://kubernetes.io/docs/setup/cri/
[WARNING FileExisting-tc]: tc not found in system path
[preflight] Reading configuration from the cluster...
[preflight] FYI: You can look at this config file with 'kubectl -n kube-system get cm kubeadm-config -oyaml'
[kubelet-start] Downloading configuration for the kubelet from the "kubelet-config-1.17" ConfigMap in the kube-system namespace
[kubelet-start] Writing kubelet configuration to file "/var/lib/kubelet/config.yaml"
[kubelet-start] Writing kubelet environment file with flags to file "/var/lib/kubelet/kubeadm-flags.env"
[kubelet-start] Starting the kubelet
[kubelet-start] Waiting for the kubelet to perform the TLS Bootstrap...

This node has joined the cluster:
* Certificate signing request was sent to apiserver and a response was received.
* The Kubelet was informed of the new secure connection details.

Run 'kubectl get nodes' on the control-plane to see this node join the cluster.

うまく行ったようなのでmasterで確認します。

[root@master ~]# kubectl get nodes
NAME STATUS ROLES AGE VERSION
master.hoge.net Ready master 2d22h v1.17.4
node-01.hoge.net Ready 21h v1.17.4

無事にnodeが追加されました。

同様にもう一台node用のサーバーを構築しjoinをします。

[root@master ~]# kubectl get nodes
NAME STATUS ROLES AGE VERSION
master.hoge.net Ready master 6d22h v1.17.4
node-01.hoge.net Ready 4d21h v1.17.4
node-02.hoge.net Ready 4d v1.17.4

これで、master1台node2台のKubernetes Clusterができました。

CentOS 8でKubernetes Clusterを構築してみた_1

CentOS 8でKubernetes Clusterを構築してみます。
KVMのVMで構築します。
master×1とnode×2の構成です。

selinuxやfirewalldは無効にします。
また、swapが有るとダメなのでswapは無効にしておきます。

# free -m
total used free shared buff/cache available
Mem: 1989 216 754 8 1017 1612
Swap: 2115 0 2115
# swapoff -a
# free -m
total used free shared buff/cache available
Mem: 1989 215 756 8 1016 1614
Swap: 0 0 0

hostsに各サーバーを記載

cat <> /etc/hosts
192.168.5.101 master master.hoge.net
192.168.5.102 node-01 node-01.hoge.net
192.168.5.103 node-02 node-02.hoge.net
EOF

これらは3台すべてで実施します。

準備が出来たらmasterサーバーにdockerをインストールします。
自分が行った手順はこちらcentos8にdockerをインストールしてみた。

dockerがインストール出来たらいよいよkubernetesのインストールです。
リポジトリを追加します。

# cat < /etc/yum.repos.d/kubernetes.repo
> [kubernetes]
> name=Kubernetes
> baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64
> enabled=1
> gpgcheck=1
> repo_gpgcheck=1
> gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
> EOF

kubeadmのインストールです。

# dnf install kubeadm
Kubernetes 378 B/s | 454 B 00:01
Kubernetes 30 kB/s | 1.8 kB 00:00
Importing GPG key 0xA7317B0F:
Userid : "Google Cloud Packages Automatic Signing Key "
Fingerprint: D0BC 747F D8CA F711 7500 D6FA 3746 C208 A731 7B0F
From : https://packages.cloud.google.com/yum/doc/yum-key.gpg
Is this ok [y/N]: y
Importing GPG key 0xBA07F4FB:
Userid : "Google Cloud Packages Automatic Signing Key "
Fingerprint: 54A6 47F9 048D 5688 D7DA 2ABE 6A03 0B21 BA07 F4FB
From : https://packages.cloud.google.com/yum/doc/yum-key.gpg
Is this ok [y/N]: y
Kubernetes 8.3 kB/s | 975 B 00:00
Importing GPG key 0x3E1BA8D5:
Userid : "Google Cloud Packages RPM Signing Key "
Fingerprint: 3749 E1BA 95A8 6CE0 5454 6ED2 F09C 394C 3E1B A8D5
From : https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
Is this ok [y/N]: y
Kubernetes 48 kB/s | 87 kB 00:01
Dependencies resolved.
================================================================================
Package Arch Version Repository Size
================================================================================
Installing:
kubeadm x86_64 1.17.4-0 kubernetes 8.7 M
Installing dependencies:
socat x86_64 1.7.3.2-6.el8 AppStream 298 k
conntrack-tools x86_64 1.4.4-9.el8 BaseOS 205 k
libnetfilter_cthelper x86_64 1.0.0-13.el8 BaseOS 24 k
libnetfilter_cttimeout x86_64 1.0.0-11.el8 BaseOS 24 k
libnetfilter_queue x86_64 1.0.2-11.el8 BaseOS 30 k
cri-tools x86_64 1.13.0-0 kubernetes 5.1 M
kubectl x86_64 1.17.4-0 kubernetes 9.4 M
kubelet x86_64 1.17.4-0 kubernetes 20 M
kubernetes-cni x86_64 0.7.5-0 kubernetes 10 M

Transaction Summary
================================================================================
Install 10 Packages

Total download size: 54 M
Installed size: 244 M
Is this ok [y/N]: y
Downloading Packages:
(1/10): libnetfilter_cthelper-1.0.0-13.el8.x86_ 633 kB/s | 24 kB 00:00
(2/10): libnetfilter_cttimeout-1.0.0-11.el8.x86 2.5 MB/s | 24 kB 00:00
(3/10): conntrack-tools-1.4.4-9.el8.x86_64.rpm 3.4 MB/s | 205 kB 00:00
(4/10): libnetfilter_queue-1.0.2-11.el8.x86_64. 1.1 MB/s | 30 kB 00:00
(5/10): socat-1.7.3.2-6.el8.x86_64.rpm 2.5 MB/s | 298 kB 00:00
(6/10): 0767753f85f415bbdf1df0e974eafccb653bee0 16 MB/s | 8.7 MB 00:00
(7/10): 14bfe6e75a9efc8eca3f638eb22c7e2ce759c67 5.2 MB/s | 5.1 MB 00:00
(8/10): 06400b25ef3577561502f9a7a126bf4975c03b3 9.9 MB/s | 9.4 MB 00:00
(9/10): 548a0dcd865c16a50980420ddfa5fbccb8b5962 10 MB/s | 10 MB 00:00
(10/10): 0c45baca5fcc05bb75f1e953ecaf85844efac0 8.0 MB/s | 20 MB 00:02
--------------------------------------------------------------------------------
Total 13 MB/s | 54 MB 00:04
warning: /var/cache/dnf/kubernetes-33343725abd9cbdc/packages/14bfe6e75a9efc8eca3f638eb22c7e2ce759c67f95b43b16fae4ebabde1549f3-cri-tools-1.13.0-0.x86_64.rpm: Header V4 RSA/SHA512 Signature, key ID 3e1ba8d5: NOKEY
Kubernetes 28 kB/s | 1.8 kB 00:00
Importing GPG key 0xA7317B0F:
Userid : "Google Cloud Packages Automatic Signing Key "
Fingerprint: D0BC 747F D8CA F711 7500 D6FA 3746 C208 A731 7B0F
From : https://packages.cloud.google.com/yum/doc/yum-key.gpg
Is this ok [y/N]: y
Key imported successfully
Importing GPG key 0xBA07F4FB:
Userid : "Google Cloud Packages Automatic Signing Key "
Fingerprint: 54A6 47F9 048D 5688 D7DA 2ABE 6A03 0B21 BA07 F4FB
From : https://packages.cloud.google.com/yum/doc/yum-key.gpg
Is this ok [y/N]: y
Key imported successfully
Kubernetes 9.2 kB/s | 975 B 00:00
Importing GPG key 0x3E1BA8D5:
Userid : "Google Cloud Packages RPM Signing Key "
Fingerprint: 3749 E1BA 95A8 6CE0 5454 6ED2 F09C 394C 3E1B A8D5
From : https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
Is this ok [y/N]: y
Key imported successfully
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
Preparing : 1/1
Installing : kubectl-1.17.4-0.x86_64 1/10
Installing : cri-tools-1.13.0-0.x86_64 2/10
Installing : libnetfilter_queue-1.0.2-11.el8.x86_64 3/10
Running scriptlet: libnetfilter_queue-1.0.2-11.el8.x86_64 3/10
Installing : libnetfilter_cttimeout-1.0.0-11.el8.x86_64 4/10
Running scriptlet: libnetfilter_cttimeout-1.0.0-11.el8.x86_64 4/10
Installing : libnetfilter_cthelper-1.0.0-13.el8.x86_64 5/10
Running scriptlet: libnetfilter_cthelper-1.0.0-13.el8.x86_64 5/10
Installing : conntrack-tools-1.4.4-9.el8.x86_64 6/10
Running scriptlet: conntrack-tools-1.4.4-9.el8.x86_64 6/10
Installing : socat-1.7.3.2-6.el8.x86_64 7/10
Installing : kubernetes-cni-0.7.5-0.x86_64 8/10
Installing : kubelet-1.17.4-0.x86_64 9/10
Installing : kubeadm-1.17.4-0.x86_64 10/10
Running scriptlet: kubeadm-1.17.4-0.x86_64 10/10
Verifying : socat-1.7.3.2-6.el8.x86_64 1/10
Verifying : conntrack-tools-1.4.4-9.el8.x86_64 2/10
Verifying : libnetfilter_cthelper-1.0.0-13.el8.x86_64 3/10
Verifying : libnetfilter_cttimeout-1.0.0-11.el8.x86_64 4/10
Verifying : libnetfilter_queue-1.0.2-11.el8.x86_64 5/10
Verifying : cri-tools-1.13.0-0.x86_64 6/10
Verifying : kubeadm-1.17.4-0.x86_64 7/10
Verifying : kubectl-1.17.4-0.x86_64 8/10
Verifying : kubelet-1.17.4-0.x86_64 9/10
Verifying : kubernetes-cni-0.7.5-0.x86_64 10/10

Installed:
kubeadm-1.17.4-0.x86_64
socat-1.7.3.2-6.el8.x86_64
conntrack-tools-1.4.4-9.el8.x86_64
libnetfilter_cthelper-1.0.0-13.el8.x86_64
libnetfilter_cttimeout-1.0.0-11.el8.x86_64
libnetfilter_queue-1.0.2-11.el8.x86_64
cri-tools-1.13.0-0.x86_64
kubectl-1.17.4-0.x86_64
kubelet-1.17.4-0.x86_64
kubernetes-cni-0.7.5-0.x86_64

Complete!

kubeletの自動起動を有効にして起動。

systemctl enable kubelet
/etc/systemd/system/multi-user.target.wants/kubelet.service → /usr/lib/systemd/system/kubelet.service.
# systemctl start kubelet

kubeadmを起動します。

# kubeadm init
W0316 23:27:57.301449 4904 validation.go:28] Cannot validate kube-proxy config - no validator is available
W0316 23:27:57.301498 4904 validation.go:28] Cannot validate kubelet config - no validator is available
[init] Using Kubernetes version: v1.17.4
[preflight] Running pre-flight checks
[WARNING IsDockerSystemdCheck]: detected "cgroupfs" as the Docker cgroup driver. The recommended driver is "systemd". Please follow the guide at https://kubernetes.io/docs/setup/cri/
[WARNING FileExisting-tc]: tc not found in system path
[preflight] Pulling images required for setting up a Kubernetes cluster
[preflight] This might take a minute or two, depending on the speed of your internet connection
[preflight] You can also perform this action in beforehand using 'kubeadm config images pull'
[kubelet-start] Writing kubelet environment file with flags to file "/var/lib/kubelet/kubeadm-flags.env"
[kubelet-start] Writing kubelet configuration to file "/var/lib/kubelet/config.yaml"
[kubelet-start] Starting the kubelet
[certs] Using certificateDir folder "/etc/kubernetes/pki"
[certs] Generating "ca" certificate and key
[certs] Generating "apiserver" certificate and key
[certs] apiserver serving cert is signed for DNS names [master.hogehoge.net kubernetes kubernetes.default kubernetes.default.svc kubernetes.default.svc.cluster.local] and IPs [10.96.0.1 192.168.5.101]
[certs] Generating "apiserver-kubelet-client" certificate and key
[certs] Generating "front-proxy-ca" certificate and key
[certs] Generating "front-proxy-client" certificate and key
[certs] Generating "etcd/ca" certificate and key
[certs] Generating "etcd/server" certificate and key
[certs] etcd/server serving cert is signed for DNS names [master.hogehoge.net localhost] and IPs [192.168.5.101 127.0.0.1 ::1]
[certs] Generating "etcd/peer" certificate and key
[certs] etcd/peer serving cert is signed for DNS names [master.hogehoge.net localhost] and IPs [192.168.5.101 127.0.0.1 ::1]
[certs] Generating "etcd/healthcheck-client" certificate and key
[certs] Generating "apiserver-etcd-client" certificate and key
[certs] Generating "sa" key and public key
[kubeconfig] Using kubeconfig folder "/etc/kubernetes"
[kubeconfig] Writing "admin.conf" kubeconfig file
[kubeconfig] Writing "kubelet.conf" kubeconfig file
[kubeconfig] Writing "controller-manager.conf" kubeconfig file
[kubeconfig] Writing "scheduler.conf" kubeconfig file
[control-plane] Using manifest folder "/etc/kubernetes/manifests"
[control-plane] Creating static Pod manifest for "kube-apiserver"
[control-plane] Creating static Pod manifest for "kube-controller-manager"
W0316 23:28:22.896741 4904 manifests.go:214] the default kube-apiserver authorization-mode is "Node,RBAC"; using "Node,RBAC"
[control-plane] Creating static Pod manifest for "kube-scheduler"
W0316 23:28:22.897850 4904 manifests.go:214] the default kube-apiserver authorization-mode is "Node,RBAC"; using "Node,RBAC"
[etcd] Creating static Pod manifest for local etcd in "/etc/kubernetes/manifests"
[wait-control-plane] Waiting for the kubelet to boot up the control plane as static Pods from directory "/etc/kubernetes/manifests". This can take up to 4m0s
[apiclient] All control plane components are healthy after 35.502341 seconds
[upload-config] Storing the configuration used in ConfigMap "kubeadm-config" in the "kube-system" Namespace
[kubelet] Creating a ConfigMap "kubelet-config-1.17" in namespace kube-system with the configuration for the kubelets in the cluster
[upload-certs] Skipping phase. Please see --upload-certs
[mark-control-plane] Marking the node master.hogehoge.net as control-plane by adding the label "node-role.kubernetes.io/master=''"
[mark-control-plane] Marking the node master.hogehoge.net as control-plane by adding the taints [node-role.kubernetes.io/master:NoSchedule]
[bootstrap-token] Using token: vb94zf.j2un0ry3aunvx9y3
[bootstrap-token] Configuring bootstrap tokens, cluster-info ConfigMap, RBAC Roles
[bootstrap-token] configured RBAC rules to allow Node Bootstrap tokens to post CSRs in order for nodes to get long term certificate credentials
[bootstrap-token] configured RBAC rules to allow the csrapprover controller automatically approve CSRs from a Node Bootstrap Token
[bootstrap-token] configured RBAC rules to allow certificate rotation for all node client certificates in the cluster
[bootstrap-token] Creating the "cluster-info" ConfigMap in the "kube-public" namespace
[kubelet-finalize] Updating "/etc/kubernetes/kubelet.conf" to point to a rotatable kubelet client certificate and key
[addons] Applied essential addon: CoreDNS
[addons] Applied essential addon: kube-proxy

Your Kubernetes control-plane has initialized successfully!

To start using your cluster, you need to run the following as a regular user:

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

You should now deploy a pod network to the cluster.
Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at:
https://kubernetes.io/docs/concepts/cluster-administration/addons/

Then you can join any number of worker nodes by running the following on each as root:

kubeadm join 192.168.5.101:6443 --token vb94zf.j2un0ry3aunvx9y3 \
--discovery-token-ca-cert-hash sha256:f42734223e79931159a470fe37a27677c51bcca051feccefbb8a050fbbfcad43

kubeadm join 192.168.5.101:6443 --token~のコマンドはnode追加の時に必要です。

上のログがおしえてくれてる必要なディレクトリやconfigを作ります。

# mkdir -p $HOME/.kube
# cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
# chown $(id -u):$(id -g) $HOME/.kube/config

ここまで来たらkubectlが使えるか確認します。

# kubectl get nodes
NAME STATUS ROLES AGE VERSION
master.hogehoge.net NotReady master 3m2s v1.17.4

NotReadyとなってますが、この時点では問題ないです。

それでは、podネットワークとやらを作ります。

# export kubever=$(kubectl version | base64 | tr -d '\ n')
# kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=$kubever
> "
error: unable to read URL "https://cloud.weave.works/k8s/net?k8s-version=Q2xpZW50IFZlcNpb246IHZlcNpb24uSW5mb3tNYWpvcjoiMSIsIE1pbm9yOiIxNyIsIEdpdFZl", server reported 400 Bad Request, status code=400
https://github.com/weaveworks/weave/issues/3048

コケました・・・。
バージョンを食わして実行しているようなので

バージョン確認

# kubectl version
Client Version: version.Info{Major:"1", Minor:"17", GitVersion:"v1.17.4", GitCommit:"8d8aa39598534325ad77120c120a22b3a990b5ea", GitTreeState:"clean", BuildDate:"2020-03-12T21:03:42Z", GoVersion:"go1.13.8", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"17", GitVersion:"v1.17.4", GitCommit:"8d8aa39598534325ad77120c120a22b3a990b5ea", GitTreeState:"clean", BuildDate:"2020-03-12T20:55:23Z", GoVersion:"go1.13.8", Compiler:"gc", Platform:"linux/amd64"}

kubernetesのバージョンはv1.17.4なようなので

直打ちで挑戦

# kubectl apply -n kube-system -f "https://cloud.weave.works/k8s/v1.17.4/net"
serviceaccount/weave-net created
clusterrole.rbac.authorization.k8s.io/weave-net created
clusterrolebinding.rbac.authorization.k8s.io/weave-net created
role.rbac.authorization.k8s.io/weave-net created
rolebinding.rbac.authorization.k8s.io/weave-net created
daemonset.apps/weave-net created

出来たようです。
確認します。

# kubectl get nodes
NAME STATUS ROLES AGE VERSION
master.hogehoge.net NotReady master 58m v1.17.4

しばらくすると・・・。

[root@master ~]# kubectl get nodes
NAME STATUS ROLES AGE VERSION
master.hogehoge.net Ready master 59m v1.17.4

Readyになりました!
取り合えずkubernetesのmaster nodeの構築は出来たようです。