您的位置:首頁>正文

Kubernetes 1.5安裝

Kubernetes從1.3開始引入kubeadm來試圖簡化其複雜的安裝。 但kubeadm至今仍不穩定, 而且我個人覺得kubeadm反而麻煩, 還不如直接用腳本或者其他自動化工具來安裝來的利索。 關於kubeadm配置master的ha, 也有相應的替代方案, 比如使用keepalived或者corosync等高可用集群軟體。 所以在這篇文檔中, 我還是會使用傳統的方式來安裝kubernetes集群

Kubernetes依賴於docker和etcd, docker的網路, 在這裡直接使用flannel。 在這篇文檔裡, 不會對master的高可用做過多的闡述, 我們先簡單的建立一個基本可用最小化集群。 我這裡使用的三台CentOS 7.2的伺服器, 各伺服器角色介紹如下:

10.5.10.116 server-116 master節點、node節點、etcd節點 10.5.10.117 server-117 node節點、etcd節點 10.5.10.131 server-131 node節點、etcd節點

需要說明的是,

這裡需要大家自己設定好基本環境, 比如關閉selinux, 配置時間同步, 清空現有的iptables策略, 以及配置好epel源等。

1、安裝並啟動docker

docker的安裝比較簡單, 直接使用yum安裝即可:

yum install -y docker systemctl start docker systemct enable docker

2、安裝etcd

在所有節點上執行如下安裝操作:

yum install -y etcd

修改/etc/etcd/etcd.conf設定檔如下:

ETCD_NAME=server-116 #etcd的名稱, 可以設置為各節點的主機名稱 ETCD_DATA_DIR="/data/etcd" ETCD_LISTEN_PEER_URLS="http://10.5.10.116:2380" ETCD_LISTEN_CLIENT_URLS="http://10.5.10.116:2379,http://127.0.0.1:2379" ETCD_INITIAL_ADVERTISE_PEER_URLS="http://10.5.10.116:2380" ETCD_INITIAL_CLUSTER="server-116=http://10.5.10.116:2380,server-117=http://10.5.10.117:2380,server-131=http://10.5.10.131:2380" ETCD_INITIAL_CLUSTER_STATE="new" ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster" ETCD_ADVERTISE_CLIENT_URLS="http://10.5.10.116:2379"

創建etcd的資料存儲目錄:

mkdir -p /data/etcd

修改etcd的開機檔案/usr/lib/systemd/system/etcd.service, 因為默認通過yum安裝的etcd的啟動項不適用於etcd集群, 修改部分內容如下:

ExecStart=/bin/bash -c "GOMAXPROCS=$(nproc) /usr/bin/etcd --name="${ETCD_NAME}" --data-dir="${ETCD_DATA_DIR}" --listen-client-urls="${ETCD_LISTEN_CLIENT_URLS}" --initial-advertise-peer-urls="${ETCD_INITIAL_ADVERTISE_PEER_URLS}" --listen-peer-urls="${ETCD_LISTEN_PEER_URLS}" --initial-cluster="${ETCD_INITIAL_CLUSTER}" --advertise-client-urls="${ETCD_ADVERTISE_CLIENT_URLS}" --initial-cluster-token="${ETCD_INITIAL_CLUSTER_TOKEN}" --initial-cluster-state="${ETCD_INITIAL_CLUSTER_STATE}""

啟動etcd:

systemctl start etcd systemct enable etcd

查看etcd集群狀態:

48a6ea53479805ea: name=etcd1 peerURLs=http://10.5.10.116:2380 clientURLs=http://10.5.10.116:2379 isLeader=true 7760fc31c2c1eeb1: name=etcd2 peerURLs=http://10.5.10.117:2380 clientURLs=http://10.5.10.117:2379 isLeader=false f12c14665e56ea5e: name=etcd3 peerURLs=http://10.5.10.131:2380 clientURLs=http://10.5.10.131:2379 isLeader=false

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://10.5.10.116:2379,http://10.5.117:2379,http://10.5.131: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_64 enabled=1 gpgcheck=1 gpgkey=https://mritd.b0.upaiyun.com/keys/rpm.public.key yumdownloader kubernetes-master kubernetes-client kubernetes-node

修改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

啟動node端:

systemctl start kubelet kube-proxy systemctl enable kubelet kube-proxy

最後通過在kubernetes master上通過kubectl查看各節點是否正常:

[root@server-116 ~]# kubectl get nodes NAME STATUS AGE server-116 Ready 1d server-117 Ready 1d server-131 Ready 1d

至此, 完成kubernetes 1.5的基本安裝

同類文章
Next Article
喜欢就按个赞吧!!!
点击关闭提示