本篇內容介紹了“CentOS7.2安裝Kubernetes1.03的詳細步驟”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
截止2015年9月1日,CentOS 已經把 Kubernetes 加入官方源,所以現在安裝Kubernetes已經方便很多。
各組件版本如下:
Kubernetes-1.03 docker-1.8.2 flannel-0.5.3 etcd-2.1.1
Kubernetes部署環境角色如下:
CentOS 7.2 64位系統,3臺虛擬機: master:192.168.32.15 minion1:192.168.32.16 minion2:192.168.32.17
1. 預處理
每臺機器禁用iptables 避免和docker 的iptables沖突:
systemctl stop firewalld systemctl disable firewalld
禁用selinux:
vim /etc/selinux/config #SELINUX=enforcing SELINUX=disabled
在2個minions機器安裝docker:
yum -y install docker yum -y update reboot
CentOS系統,使用devicemapper作為存儲后端,初始安裝docker 會使用loopback, 導致docker啟動報錯,需要update之后再啟動。
Docker啟動腳本更新
vim /etc/sysconfig/docker
添加:-H tcp://0.0.0.0:2375,最終配置如下,以便以后提供遠程API維護:
OPTIONS=--selinux-enabled -H tcp://0.0.0.0:2375 -H fd://
提前說明一下,kubernetes運行pods時需要連帶運行一個叫pause的鏡像,需要先從docker.io上下載此鏡像,然后用docker命令改名字:
docker pull docker.io/kubernetes/pause docker tag kubernetes/pause gcr.io/google_containers/pause:0.8.0 docker tag gcr.io/google_containers/pause:0.8.0 gcr.io/google_containers/pause
2. master結點的安裝與配置
安裝etcd與kubernetes-master:
yum -y install etcd kubernetes-master
修改etcd配置文件:
# egrep -v “^#” /etc/etcd/etcd.conf ETCD_NAME=default ETCD_DATA_DIR="/var/lib/etcd/default.etcd" ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379" ETCD_ADVERTISE_CLIENT_URLS="http://192.168.32.15:2379"
修改kube-master配置文件:
# egrep -v ‘^#’ /etc/kubernetes/apiserver | grep -v ‘^$’ KUBE_API_ADDRESS="--address=0.0.0.0" KUBE_ETCD_SERVERS="--etcd_servers=http://192.168.32.15:2379" KUBE_SERVICE_ADDRESSES="--service-cluster-ip-range=10.254.0.0/16" KUBE_ADMISSION_CONTROL="--admission_control=NamespaceLifecycle,NamespaceExists,LimitRanger,SecurityContextDeny,ServiceAccount,ResourceQuota" KUBE_API_ARGS=""
# egrep -v ‘^#’ /etc/kubernetes/controller-manager |grep -v ‘^$’ KUBE_CONTROLLER_MANAGER_ARGS="--node-monitor-grace-period=10s --pod-eviction-timeout=10s"
[root@localhost ~]# egrep -v ‘^#’ /etc/kubernetes/config | egrep -v ‘^$’ KUBE_LOGTOSTDERR="--logtostderr=true" KUBE_LOG_LEVEL="--v=0" KUBE_ALLOW_PRIV="--allow_privileged=false" KUBE_MASTER="--master=http://192.168.32.15:8080"
啟動服務:
systemctl enable etcd kube-apiserver kube-scheduler kube-controller-manager systemctl start etcd kube-apiserver kube-scheduler kube-controller-manager
定義flannel網絡配置到etcd,這個配置會推送到各個minions的flannel服務上:
etcdctl mk /coreos.com/network/config '{"Network":"172.17.0.0/16"}'
3. minion結點的安裝與配置
yum -y install kubernetes-node flannel
修改kube-node和flannel配置文件:
# egrep -v ‘^#’ /etc/kubernetes/config | grep -v ‘^$’ KUBE_LOGTOSTDERR="--logtostderr=true" KUBE_LOG_LEVEL="--v=0" KUBE_ALLOW_PRIV="--allow_privileged=false" KUBE_MASTER="--master=http://192.168.32.15:8080"
# egrep -v ‘^#’ /etc/kubernetes/kubelet | grep -v ‘^$’ KUBELET_ADDRESS="--address=127.0.0.1" KUBELET_HOSTNAME="--hostname_override=192.168.32.16" KUBELET_API_SERVER="--api_servers=http://192.168.32.15:8080" KUBELET_ARGS="--pod-infra-container-image=kubernetes/pause"
為etcd服務配置flannel,修改配置文件 /etc/sysconfig/flanneld:
FLANNEL_ETCD="http://192.168.32.15:2379" FLANNEL_ETCD_KEY="/coreos.com/network"
啟動服務:
systemctl enable flanenld kubelet kube-proxy systemctl restart flanneld docker systemctl start kubelet kube-proxy
在每個minions可以看到2塊網卡:docker0和flannel0,這2塊網卡的ip在不同的機器ip地址不同:
#minion1 4: flannel0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1472 qdisc pfifo_fast state UNKNOWN qlen 500 link/none inet 172.17.98.0/16 scope global flannel0 valid_lft forever preferred_lft forever 5: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN link/ether 02:42:9a:01:ca:99 brd ff:ff:ff:ff:ff:ff inet 172.17.98.1/24 scope global docker0 valid_lft forever preferred_lft forever #minion2 4: flannel0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1472 qdisc pfifo_fast state UNKNOWN qlen 500 link/none inet 172.17.67.0/16 scope global flannel0 valid_lft forever preferred_lft forever 5: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN link/ether 02:42:25:be:ba:64 brd ff:ff:ff:ff:ff:ff inet 172.17.67.1/24 scope global docker0 valid_lft forever preferred_lft forever
4. 檢查狀態
登陸master,確認minions的狀態:
[root@master ~]# kubectl get nodes NAME LABELS STATUS 192.168.32.16 kubernetes.io/hostname=192.168.32.16 Ready 192.168.32.17 kubernetes.io/hostname=192.168.32.17 Ready
“CentOS7.2安裝Kubernetes1.03的詳細步驟”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。