環境情報
- RHEL7.1 × 3台(全てライセンス登録をしておく)
- Kurbenetes Server v0.17.1-748-g01fcb58673001e
- Kurbenetes Client v0.17.1-748-g01fcb58673001e
※KurbenetesはRHEL7の標準を使用
役割 | 名前 |
---|---|
マスター | kubemaster01 |
Minion#1 | minion01 |
Minion#2 | minion02 |
基本的にはRHEL7.1でKubernetesを実体験(構築編)を参照しながら手順を実施しますので、ここではトラブったところだけ示します。
トラブル1 etcdがインストールされない
Kubernetesのパッケージを導入すると、etcdを含めて、必要なパッケージがまとめて導入されます。
とありましたが、されなかったため独自に入れます。
yum -y install etcd
トラブル2 設定ファイルの設定が微妙に違う(Master)
/etc/kubernetes/config
/etc/kubernetes/config
KUBE_MASTER="--master=http://kubemaster01:8080"
/etc/kubernetes/apiserver
/etc/kubernetes/apiserver
KUBE_API_ADDRESS="--address=0.0.0.0"
KUBE_ETCD_SERVERS="--etcd_servers=http://kubemaster01:4001"
KUBE_SERVICE_ADDRESSES="--portal_net=172.16.0.0/16"
/etc/kubernetes/controller-manager
/etc/kubernetes/controller-manager
KUBELET_ADDRESSES="--machines=minion01,minion02"
/etc/etcd/etcd.conf
/etc/etcd/etcd.conf
ETCD_LISTEN_CLIENT_URLS="http://kubemaster01:4001"
ETCD_ADVERTISE_CLIENT_URLS="http://kubemaster01:2379,http://kubemaster01:4001"
トラブル3 設定ファイルの設定が微妙に違う(Minion)
/etc/kubernetes/config
/etc/kubernetes/config
KUBE_MASTER="--master=http://kubemaster01:8080"
/etc/kubernetes/kubelet
/etc/kubernetes/kubelet
KUBELET_ADDRESS="--address=0.0.0.0"
# KUBELET_HOSTNAME="--hostname_override=127.0.0.1" コメントアウトする
KUBELET_API_SERVER="--api_servers=http://kubemaster01:8080"
トラブル4 kubectl get minionコマンドが失敗
kubectl get minion
をコマンドを実行しても何も帰ってきません。
予測変換でみてもありません。
[root@kubemaster01~]# kubectl get
componentstatus pod
endpoints podtemplate
event replicationcontroller
limitrange resourcequota
namespace secret
node service
persistentvolume serviceaccount
persistentvolumeclaim
ということで、別のコマンドkubectl get node
を使用します
[root@kubemaster01~]# kubectl get node
NAME LABELS STATUS
minion01 kubernetes.io/hostname=minion01 Ready
minion02 kubernetes.io/hostname=minion02 Ready
トラブル5 podが同一ノードで実行される
POD IP CONTAINER(S) IMAGE(S) HOST LABELS STATUS CREATED MESSAGE
httpd-controller-3ni8c 10.1.25.5 awcikc0b/10.2.25.10 name=test-httpd Running 39 seconds
test-httpd docker.io/httpd Running 28 seconds
httpd-controller-xkfjf 10.1.25.4 awcikc0b/10.2.25.10 name=test-httpd Running 39 seconds
test-httpd docker.io/httpd
原因はminion02
のdocker0
がDownしていたこと。
8: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1450 qdisc noqueue state DOWN
link/ether 56:84:7a:fe:97:99 brd ff:ff:ff:ff:ff:ff
inet 10.1.94.1/24 scope global docker0
valid_lft forever preferred_lft forever
inet6 fe80::5484:7aff:fefe:9799/64 scope link
valid_lft forever preferred_lft forever
nmcli connection up docker0
を実行後に、kubectl create -f httpd.json
を再度実行するとうまくいった。
[root@kubemaster01~]# kubectl get pod
POD IP CONTAINER(S) IMAGE(S) HOST LABELS STATUS CREATED MESSAGE
httpd-controller-307jp 10.1.25.4 minion01/10.2.25.10 name=test-httpd Running 29 seconds
test-httpd docker.io/httpd Running 18 seconds
httpd-controller-xrb3f 10.1.94.4 minion02/10.2.25.13 name=test-httpd Running 29 seconds
test-httpd docker.io/httpd Running 12 seconds