您好,登錄后才能下訂單哦!
Kubernetes從1.3開始引入kubeadm來試圖簡化其復雜的安裝。但kubeadm至今仍不穩定,而且我個人覺得kubeadm反而麻煩,還不如直接用腳本或者其他自動化工具來安裝來的利索。關于kubeadm配置master的ha,也有相應的替代方案,比如使用keepalived或者corosync等高可用集群軟件。所以在這篇文檔中,我還是會使用傳統的方式來安裝kubernetes集群
Kubernetes依賴于docker和etcd,docker的網絡,在這里直接使用flannel。在這篇文檔里,不會對master的高可用做過多的闡述,我們先簡單的建立一個基本可用最小化集群。我這里使用的三臺CentOS 7.2的服務器,各服務器角色介紹如下:
192.168.1.20 server-20 master節點、node節點、etcd節點 192.168.1.21 server-21 node節點、etcd節 192.168.1.22 server-22 node節點、etcd節點
需要說明的是,這里需要大家自己設定好基本環境,比如關閉selinux,配置時間同步,清空現有的iptables策略,以及配置好epel源等。
1、安裝并啟動docker
docker的安裝比較簡單,直接使用yum安裝即可:
yum install -y docker systemctl start docker systemctl enable docker
2、安裝etcd
在所有節點上執行如下安裝操作:
yum -y install etcd # 創建etcd data 目錄 mkdir -p /opt/etcd/data chown -R etcd:etcd /opt/etcd/ # 修改配置文件,/etc/etcd/etcd.conf 需要修改如下參數: 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 啟動文件 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
# 啟動 etcd systemctl enable etcd systemctl start etcd systemctl status etcd # 查看集群狀態 etcdctl cluster-health
# 啟動 etcd systemctl enable etcd systemctl start etcd systemctl status etcd # 查看集群狀態 etcdctl cluster-health
3、配置flannel
先在etcd中注冊flannel子網:
etcdctl set /coreos.com/network/config '{"network": "172.16.0.0/16"}'
在所有節點安裝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"
啟動flannel:
systemctl start flanneld systemctl enable flanneld
需要說明的是,如果要讓docker使用flannel的網絡,docker必須要后于flannel啟動,所以需要重新啟動docker:
systemctl restart docker
4、安裝kubernetes服務端
我這里使用的是網上別人提供的私有的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
先通過yumdownloader將所有kubernetes相關的包下載下來,然后再通過本地yum實現安裝:
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"
啟動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"
啟動node端:
systemctl start kubelet kube-proxy systemctl enable kubelet kube-proxy
最后通過在kubernetes master上通過kubectl查看各節點是否正常:
[root@server-116 ~]# kubectl get nodes NAME STATUS AGE server-20 Ready 1d server-21 Ready 1d server-22 Ready 1d
至此,完成kubernetes 1.5的基本安裝
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。