K8S 集群的安裝
K8S 集群的安裝本文主要結合自己安裝K8S集群的經歷介紹一下K8S集群的安裝過程安裝過程主要參考博文 https://www.cnblogs.com/spl
K8S 集群的安裝
本文主要結合自己安裝K8S集群的經歷介紹一下K8S集群的安裝過程
安裝過程主要參考博文 https://www.cnblogs.com/spll/p/10033316.html
言歸正傳。
集群部署在自己的虛擬機上,首先要保證每一個虛擬機至少2核,否則集群無法運行。集群規劃如下
master:192.168.56.4
node1:192.168.56.2
node2:192.168.56.3
系統基于Centos7,node節點需要安裝docker,由于虛擬機資源有限,后續再考慮master的HA等問題
集群規劃好了,開始安裝
1. 關閉防火墻和selinux
關閉所有節點的防火墻和selinux
修改 /etc/selinux/config ,設置SELINUX為disabled
關閉防火墻
# service firewalld stop
防止防火墻開機啟動
# systemctl disable firewalld.service
修改后,重啟server
2. 在master節點上安裝 K8S Master
安裝etcd和kubernates-master
yum -y install etcd kubernetes-master
2.1 修改etcd的配置文件
此次etcd使用單機版
vi /etc/etcd/etcd.conf
修改內容如下
ETCD_DATA_DIR="/data/etcd" # etcd存儲數據的路徑
ETCD_NAME="default" #etcd的名字
ETCD_LISTEN_CLIENT_URLS="http://192.168.56.4:2379" # etcd對外提供服務的地址,如果是集群用逗號分割,此處不要寫域名,也不要使用127.0.0.1,使用機器的實際ip,否則api-server連接會有問題,2379是etcd的默認端口。
ETCD_ADVERTISE_CLIENT_URLS="http://192.168.56.4:2379" # 此成員的客戶端URL列表,用于通告群集的其余部分。這些URL可以包含域名。
2.2 修改api-server的配置文件
vi /etc/kubernetes/apiserver
修改如下內容
KUBE_API_ADDRESS="--insecure-bind-address=0.0.0.0" # 監聽地址,改成0.0.0.0,監聽所有接口
KUBE_API_PORT="--port=8080" #監聽的端口,默認8080,酌情修改
KUBE_ETCD_SERVERS="--etcd-servers=http://192.168.56.4:2379" #etcd的地址,不要使用127.0.0.1
KUBE_ADMISSION_CONTROL="--admission-control=NamespaceLifecycle,NamespaceExists,LimitRanger,SecurityContextDeny,ResourceQuota" # 刪掉value中的serviceAccount,serviceAccount與證書有關,此次安裝先不配置證書,所以要先刪掉
2.3 啟動 etcd ,api-server,controller-manager,scheduler
for SERVICES in etcd kube-apiserver kube-controller-manager kube-scheduler; do systemctl restart $SERVICES;systemctl enable $SERVICES;systemctl status $SERVICES ; done
2.4 在etcd中定義flannel網絡
etcdctl mk /http://atomic.io/network/config '{"Network":"172.17.0.0/16"}'
此次安裝集群的網絡使用flannel實現
至此,master的安裝完成
3. 在node節點上安裝
下面的操作需要在兩個node節點上完成
安裝flannel和kubenates-node
yum -y install flannel kubernetes-node
3.1 修改/etc/sysconfig/flanneld配置文件
修改內容如下
FLANNEL_ETCD_ENDPOINTS="http://192.168.56.4:2379" #etcd的url
FLANNEL_ETCD_PREFIX="/http://atomic.io/network" # etcd中定義的網絡的key,在2.4節定義,注意,我們在2.4節定義的是/http://atomic.io/network/config,此處不要寫config
3.2 修改/etc/kubernetes/config配置文件
修改內容如下
KUBE_MASTER="--master=http://192.158.56.4:8080" # master的url
3.3 修改/etc/kubernetes/kubelet
修改內容如下
KUBELET_ADDRESS="--address=0.0.0.0" # 監聽所有接口
KUBELET_HOSTNAME="--hostname-override=192.168.56.2" # kubelet name,配置成本機的ip,(此處應該只是用來展示用,應該沒有其他的實際作用,這只是猜測,沒有驗證)
KUBELET_API_SERVER="--api-servers=http://192.168.56.4:8080" # api-server的url
3.4 啟動 kube-proxy,kubelet,docker,flannel
for SERVICES in kube-proxy kubelet docker flanneld;do systemctl restart $SERVICES;systemctl enable $SERVICES;systemctl status $SERVICES; done
至此node節點也安裝完成
4. 驗證
在master節點上執行命令
kubectl get nodes
看到以下結果,說明安裝成功

5. 后記
在安裝node節點的時候,出現了kubelet啟動失敗的情況 報錯204/MEMORY, 開始還以為是內存不夠了,但是幾個虛機的配置都一樣,應該不會是內存不夠問題,查閱資料說是要關閉swap,否則kubelet會有錯誤,關閉了swap還是不好用,這次安裝其他節點并沒有關閉swap,也沒有出問題。關于swap的問題,如果后面出問題再修改。最后重裝了kubelet,問題jiejue。
這次安裝是最簡單的安裝方式,沒有安裝證書,etcd和master都是單點。后面會繼續完善.









