您好,登錄后才能下訂單哦!
Kubernetes從1.3開始引入kubeadm來(lái)試圖簡(jiǎn)化其復(fù)雜的安裝。但kubeadm至今仍不穩(wěn)定,而且我個(gè)人覺(jué)得kubeadm反而麻煩,還不如直接用腳本或者其他自動(dòng)化工具來(lái)安裝來(lái)的利索。關(guān)于kubeadm配置master的ha,也有相應(yīng)的替代方案,比如使用keepalived或者corosync等高可用集群軟件。所以在這篇文檔中,我還是會(huì)使用傳統(tǒng)的方式來(lái)安裝kubernetes集群
Kubernetes依賴于docker和etcd,docker的網(wǎng)絡(luò),在這里直接使用flannel。在這篇文檔里,不會(huì)對(duì)master的高可用做過(guò)多的闡述,我們先簡(jiǎn)單的建立一個(gè)基本可用最小化集群。我這里使用的三臺(tái)CentOS 7.2的服務(wù)器,各服務(wù)器角色介紹如下:
192.168.1.20 server-20 master節(jié)點(diǎn)、node節(jié)點(diǎn)、etcd節(jié)點(diǎn) 192.168.1.21 server-21 node節(jié)點(diǎn)、etcd節(jié) 192.168.1.22 server-22 node節(jié)點(diǎn)、etcd節(jié)點(diǎn)
需要說(shuō)明的是,這里需要大家自己設(shè)定好基本環(huán)境,比如關(guān)閉selinux,配置時(shí)間同步,清空現(xiàn)有的iptables策略,以及配置好epel源等。
1、安裝并啟動(dòng)docker
docker的安裝比較簡(jiǎn)單,直接使用yum安裝即可:
yum install -y docker systemctl start docker systemctl enable docker
2、安裝etcd
在所有節(jié)點(diǎn)上執(zhí)行如下安裝操作:
yum -y install etcd # 創(chuàng)建etcd data 目錄 mkdir -p /opt/etcd/data chown -R etcd:etcd /opt/etcd/ # 修改配置文件,/etc/etcd/etcd.conf 需要修改如下參數(shù): ETCD_NAME=server-20 ETCD_DATA_DIR="/opt/etcd/data/server-20.etcd" ETCD_LISTEN_PEER_URLS=" ETCD_LISTEN_CLIENT_URLS=" ETCD_INITIAL_ADVERTISE_PEER_URLS=" ETCD_INITIAL_CLUSTER="server-20= ETCD_ADVERTISE_CLIENT_URLS="http://192.168.1.20:2379"
# 修改 etcd 啟動(dòng)文件 sed -i 's/\\\"${ETCD_LISTEN_CLIENT_URLS}\\\"/\\\"${ETCD_LISTEN_CLIENT_URLS}\\\" --listen-client-urls=\\\"${ETCD_LISTEN_CLIENT_URLS}\\\" --advertise-client-urls=\\\"${ETCD_ADVERTISE_CLIENT_URLS}\\\" --initial-cluster-token=\\\"${ETCD_INITIAL_CLUSTER_TOKEN}\\\" --initial-cluster=\\\"${ETCD_INITIAL_CLUSTER}\\\" --initial-cluster-state=\\\"${ETCD_INITIAL_CLUSTER_STATE}\\\"/g' /usr/lib/systemd/system/etcd.service
# 啟動(dòng) etcd systemctl enable etcd systemctl start etcd systemctl status etcd # 查看集群狀態(tài) etcdctl cluster-health
# 啟動(dòng) etcd systemctl enable etcd systemctl start etcd systemctl status etcd # 查看集群狀態(tài) etcdctl cluster-health
3、配置flannel
先在etcd中注冊(cè)flannel子網(wǎng):
etcdctl set /coreos.com/network/config '{"network": "172.16.0.0/16"}'
在所有節(jié)點(diǎn)安裝flannel:
yum install -y flannel
修改flannel配置文件/etc/sysconfig/flanneld如下:
FLANNEL_ETCD="http://192.168.1.20:2379,http://192.168.1.21:2379,http://192.168.1.22:2379"FLANNEL_ETCD_KEY="/coreos.com/network"
啟動(dòng)flannel:
systemctl start flanneld systemctl enable flanneld
需要說(shuō)明的是,如果要讓docker使用flannel的網(wǎng)絡(luò),docker必須要后于flannel啟動(dòng),所以需要重新啟動(dòng)docker:
systemctl restart docker
4、安裝kubernetes服務(wù)端
我這里使用的是網(wǎng)上別人提供的私有的kubernetes的yum源,如下:
vim /etc/yum.repos.d/kube.repo [kube] name=Mritd Repository baseurl=https://yum.mritd.me/centos/7/x86_64enabled=1gpgcheck=1gpgkey=https://mritd.b0.upaiyun.com/keys/rpm.public.key
先通過(guò)yumdownloader將所有kubernetes相關(guān)的包下載下來(lái),然后再通過(guò)本地yum實(shí)現(xiàn)安裝:
yumdownloader kubernetes-master kubernetes-client kubernetes-nodeyum localinstall -y kubernetes-master kubernetes-client
修改kubernetes master上的配置文件如下:
vim /etc/kubernetes/config KUBE_LOGTOSTDERR="--logtostderr=true"KUBE_LOG_LEVEL="--v=0"KUBE_ALLOW_PRIV="--allow-privileged=false"KUBE_MASTER="--master=http://10.5.10.116:8080"vim /etc/kubernetes/apiserver KUBE_API_ADDRESS="--address=0.0.0.0"KUBE_API_PORT="--port=8080 --secure-port=443"KUBE_MASTER="--master=http://10.5.10.116:8080"KUBELET_PORT="--kubelet-port=10250"KUBE_ETCD_SERVERS="--etcd-servers=http://10.5.10.116:2379,http://10.5.10.117:2379,http://10.5.10.131:2379"KUBE_SERVICE_ADDRESSES="--service-cluster-ip-range=10.254.0.0/16"KUBE_ADMISSION_CONTROL="--admission-control=NamespaceLifecycle,NamespaceExists,LimitRanger,SecurityContextDeny,ResourceQuota"
啟動(dòng)kubernetes master:
systemctl start kube-apiserver kube-controller-manager kube-scheduler systemctl enable kube-apiserver kube-controller-manager kube-scheduler
5、安裝kubernetes node端
yum install -y kubernetes-node
修改node的配置文件:
vim /etc/kubernetes/config KUBE_LOGTOSTDERR="--logtostderr=true"KUBE_LOG_LEVEL="--v=0"KUBE_ALLOW_PRIV="--allow-privileged=false"KUBE_MASTER="--master=http://10.5.10.116:8080"vim /etc/kubernetes/kubelet KUBELET_ADDRESS="--address=0.0.0.0"KUBELET_HOSTNAME="--hostname-override=server-116"KUBELET_API_SERVER="--api-servers=http://10.5.10.116:8080"KUBELET_POD_INFRA_CONTAINER="--pod-infra-container-p_w_picpath=myhub.fdccloud.com/library/pod-infrastructure:latest"
啟動(dòng)node端:
systemctl start kubelet kube-proxy systemctl enable kubelet kube-proxy
最后通過(guò)在kubernetes master上通過(guò)kubectl查看各節(jié)點(diǎn)是否正常:
[root@server-116 ~]# kubectl get nodes NAME STATUS AGE server-20 Ready 1d server-21 Ready 1d server-22 Ready 1d
至此,完成kubernetes 1.5的基本安裝
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。