centos 7 yumインストールkubernetes cluster 1.0
5416 ワード
ここでは、1つのmasterと2つのminionsを含むkubernetes clusterをインストールする方法を示します.
環境要件:
centos 7 64ビットシステム3台マシン
master:192.168.5.131
minions:192.168.5.132
minions:192.168.5.133
kubernetesのコンポーネント:
etcd
flannel
kube-apiserver
kube-controller-manager
kube-scheduler
kubelet
kube-proxy
一、centos 7に配備
図は後で添える
前提条件各マシンがiptablesを無効にするdockerのiptablesとの競合を回避する:
2.NTPを取り付け、正常に動作していることを確認する
3.2個のminionsマシン取付docker
CentOSシステムでは、devicemapperをストレージバックエンドとして使用し、最初にdockerをインストールするとloopbackが使用され、dockerの起動エラーが発生します.アップデートしてから起動する必要があります
ps aux|grep dockerの結果は次の通りです.
二、kubernetes masterを取り付ける
次の手順はすべてmasterで実行します. yumでetcdとkubernetes をインストール
2.プロファイル/etc/etcd/etcdを変更する.confは、etcdがすべてのアドレスを傍受していることを確認し、以下のように変更します.
3.プロファイル/etc/kubernetes/apiserverを変更し、以下のように変更します.
4.プロファイル/etc/kubernetes/controller-managerを変更し、minions ipアドレスを定義する
5.サービスの開始
6.flannelネットワーク構成をetcdに定義し、この構成は各minionsのflannelサービスにプッシュされます.
三、minionsのインストール
以下の操作はminions 1,minions 2で実行します. flannelとkubernetes をインストール
2.etcdサービスのflannelを構成し、プロファイル/etc/sysconfig/flanneldを変更する
3.kubernetesプロファイルを変更し、masterを指定します./etc/kubernetes/config
4.クbeletサービスを構成します./etc/kubernetes/kubelet
minions1:
minions2:
5.サービスの開始
6.minionsごとに2つのNICを見ることができます:docker 0とflannel 0、この2つのNICのipは異なる機械のipアドレスで違います
minion1:
minion2:
7.マスターにログインし、minionsの状態を確認する
素晴らしい!kubernetesのクラスタ構成が完了しました.podを始めましょう.
podの作成中にエラーが発生した場合は
apiserverで次のように構成されている場合:
取り除く必要がある
環境要件:
centos 7 64ビットシステム3台マシン
master:192.168.5.131
minions:192.168.5.132
minions:192.168.5.133
kubernetesのコンポーネント:
etcd
flannel
kube-apiserver
kube-controller-manager
kube-scheduler
kubelet
kube-proxy
一、centos 7に配備
図は後で添える
前提条件
$ systemctl stop firewalld
$ systemctl disable firewalld
2.NTPを取り付け、正常に動作していることを確認する
$ yum -y install ntp
$ systemctl start ntpd
$ systemctl enable ntpd
3.2個のminionsマシン取付docker
yum install docker -y
yum update -y
reboot
CentOSシステムでは、devicemapperをストレージバックエンドとして使用し、最初にdockerをインストールするとloopbackが使用され、dockerの起動エラーが発生します.アップデートしてから起動する必要があります
ps aux|grep dockerの結果は次の通りです.
/usr/bin/docker -d --selinux-enabled --storage-driver devicemapper --storage-opt dm.fs=xfs --storage-opt dm.thinpooldev=/dev/mapper/VolGroup00-docker--pool
二、kubernetes masterを取り付ける
次の手順はすべてmasterで実行します.
yum -y install etcd kubernetes
2.プロファイル/etc/etcd/etcdを変更する.confは、etcdがすべてのアドレスを傍受していることを確認し、以下のように変更します.
ETCD_NAME=default
ETCD_DATA_DIR="/var/lib/etcd/default.etcd"
ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379"
3.プロファイル/etc/kubernetes/apiserverを変更し、以下のように変更します.
KUBE_API_ADDRESS="--address=0.0.0.0"
KUBE_API_PORT="--port=8080"
KUBELET_PORT="--kubelet_port=10250"
KUBE_ETCD_SERVERS="--etcd_servers=http://127.0.0.1:2379"
KUBE_SERVICE_ADDRESSES="--portal_net=10.254.0.0/16"
KUBE_ADMISSION_CONTROL="--admission_control=NamespaceAutoProvision,LimitRanger,ResourceQuota"
KUBE_API_ARGS=""
4.プロファイル/etc/kubernetes/controller-managerを変更し、minions ipアドレスを定義する
KUBELET_ADDRESSES="--machines=192.168.5.132,192.168.5.133"
5.サービスの開始
for SERVICES in etcd kube-apiserver kube-controller-manager kube-scheduler; do
systemctl restart $SERVICES
systemctl enable $SERVICES
systemctl status $SERVICES
done
6.flannelネットワーク構成をetcdに定義し、この構成は各minionsのflannelサービスにプッシュされます.
etcdctl mk /coreos.com/network/config '{"Network":"172.17.0.0/16"}'
三、minionsのインストール
以下の操作はminions 1,minions 2で実行します.
yum -y install flannel kubernetes
2.etcdサービスのflannelを構成し、プロファイル/etc/sysconfig/flanneldを変更する
FLANNEL_ETCD="http://192.168.5.131:2379"
3.kubernetesプロファイルを変更し、masterを指定します./etc/kubernetes/config
KUBE_MASTER="--master=http://192.168.5.131:8080"
4.クbeletサービスを構成します./etc/kubernetes/kubelet
minions1:
###
# kubernetes kubelet (minion) config
# The address for the info server to serve on (set to 0.0.0.0 or "" for all interfaces)
KUBELET_ADDRESS="--address=192.168.5.132"
# The port for the info server to serve on
KUBELET_PORT="--port=10250"
# You may leave this blank to use the actual hostname
KUBELET_HOSTNAME="--hostname_override=192.168.5.132"
# location of the api-server
KUBELET_API_SERVER="--api_servers=http://192.168.5.131:8080"
# Add your own!
KUBELET_ARGS=""
minions2:
###
# kubernetes kubelet (minion) config
# The address for the info server to serve on (set to 0.0.0.0 or "" for all interfaces)
KUBELET_ADDRESS="--address=192.168.5.133"
# The port for the info server to serve on
KUBELET_PORT="--port=10250"
# You may leave this blank to use the actual hostname
KUBELET_HOSTNAME="--hostname_override=192.168.5.133"
# location of the api-server
KUBELET_API_SERVER="--api_servers=http://192.168.5.131:8080"
# Add your own!
KUBELET_ARGS=""
5.サービスの開始
for SERVICES in kube-proxy kubelet docker flanneld; do
systemctl restart $SERVICES
systemctl enable $SERVICES
systemctl status $SERVICES
done
6.minionsごとに2つのNICを見ることができます:docker 0とflannel 0、この2つのNICのipは異なる機械のipアドレスで違います
minion1:
ip a | grep flannel | grep inet
inet 172.17.20.0/16 scope global flannel0
minion2:
$ ip a | grep flannel | grep inet
inet 172.17.21.0/16 scope global flannel0
7.マスターにログインし、minionsの状態を確認する
[root@k8s_master ~]# kubectl get nodes
NAME LABELS STATUS
192.168.5.132 kubernetes.io/hostname=192.168.5.132 Ready
192.168.5.133 kubernetes.io/hostname=192.168.5.133 Ready
素晴らしい!kubernetesのクラスタ構成が完了しました.podを始めましょう.
podの作成中にエラーが発生した場合は
is forbidden: no API token found for service account default/default, retry after the token is automatically created and added to the service account
apiserverで次のように構成されている場合:
# default admission control policies#
KUBE_ADMISSION_CONTROL="--admission_control=NamespaceLifecycle,NamespaceExists,LimitRanger,SecurityContextDeny,ServiceAccount,ResourceQuota"
取り除く必要がある
SecurityContextDeny,ServiceAccount