k8s安裝步驟:
1、所有機器上執行以下命令,准備安裝環境:(注意是所有機器,主機master,從機node都要安裝)
1.1、安裝epel-release源(EPEL (Extra Packages for Enterprise Linux)是基於Fedora的一個項目,為“紅帽系”的操作系統提供額外的軟件包,適用於RHEL、CentOS和Scientific Linux.
)
yum -y install epel-release
1.2、所有機器關閉防火牆
systemctl stop firewalld systemctl disable firewalld
setenforce 0
#查看防火牆狀態
firewall-cmd --state
2、現在開始master主機上192.168.126.130 安裝kubernetes Master
2.1、使用yum安裝etcd、kubernetes-master
yum -y install etcd kubernetes-master
2.2、編輯:vi /etc/etcd/etcd.conf文件,修改結果如下:
#etcd名稱
ETCD_NAME=default
#etcd數據存儲位置
ETCD_DATA_DIR="/var/lib/etcd/default.etcd"
#監聽的端口
ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379"
#[cluster]
#集群監聽的端口
ETCD_ADVERTISE_CLIENT_URLS="http://0.0.0.0:2379"
2.3、配置:vi /etc/kubernetes/apiserver文件,配置結果如下:
#監聽的接口,如果配置為127.0.0.1則只監聽localhost,配置為0.0.0.0會監聽所有接口,這里配置為0.0.0.0
KUBE_API_ADDRESS="--address=0.0.0.0"
#apiserver的監聽端口,默認8080
KUBE_API_PORT="--port=8080"
#minion上kubelet監聽的端口,默認10250
KUBELET_PORT="--kubelet-port=10250"
#etcd服務地址,前面已經啟動了etcd服務,端口為2379
KUBE_ETCD_SERVERS="--etcd-servers=http://127.0.0.1:2379"
#kubernetes可以分配的ip的范圍,kubernetes啟動的每一個pod以及serveice都會分配一個ip地址,將從這個范圍分配
KUBE_SERVICE_ADDRESSES="--service-cluster-ip-range=10.254.0.0/16"
#需要額外添加的配置項,簡單地啟用一個集群無需配置
KUBE_API_ARGS=""
2.4、啟動etcd、kube-apiserver、kube-controller-manager、kube-scheduler等服務,並設置開機啟動。
for SERVICES in etcd kube-apiserver kube-controller-manager kube-scheduler; do systemctl restart $SERVICES;systemctl enable $SERVICES;systemctl status $SERVICES ; done
2.5、在etcd中定義flannel網絡
etcdctl mk /atomic.io/network/config '{"Network":"172.17.0.0/16"}'
以上master主機上的配置安裝什么的都弄完了
3、接下來弄node從機上的配置安裝什么的
3.1、在node機上192.168.126.128 安裝kubernetes Node和flannel組件應用
yum -y install flannel kubernetes-node
3.2、為flannel網絡指定etcd服務,修改/etc/sysconfig/flanneld文件,配置結果如下圖:
#etcd的訪問地址及端口
FLANNEL_ETCD_ENDPOINTS="http://192.168.126.130:2379"
#服務范圍
FLANNEL_ETCD_PREFIX="/kube-centos/network"
#其他
FLANNEL_OPTIONS=""
3.3、修改:vi /etc/kubernetes/config文件,配置結果如下圖:
#表示錯誤日志記錄到文件還是輸出到stderr
KUBE_LOGTOSTDERR="--logtostderr=true"
#日志等級
KUBE_LOG_LEVEL="--v=0"
#允許運行特權容器
KUBE_ALLOW_PRIV="--allow-privileged=false"
#apiserver的服務地址,controller-manager、scheduler及kubelet都會用到這個配置,這里配置為192.168.126.130
KUBE_MASTER="--master=http://192.168.126.130:8080"
3.4、修改node機的kubelet配置文件/etc/kubernetes/kubelet
#minion監聽的地址,每個minion根據實際的ip配置,這里配置為0.0.0.0
KUBELET_ADDRESS="--address=0.0.0.0"
#監聽的端口
KUBELET_PORT="--port=10250"
#apiserver的訪問地址及端口
KUBELET_API_SERVER="--api-servers=http://192.168.126.130:8080"
#額外增加的參數
KUBELET_ARGS="--logtostderr=false --v=0 --log-dir=/data/logs/kubernetes"
3.5、node節點機上啟動kube-proxy,kubelet,docker,flanneld等服務,並設置開機啟動。
for SERVICES in kube-proxy kubelet docker flanneld;do systemctl restart $SERVICES;systemctl enable $SERVICES;systemctl status $SERVICES; done
以上所有master主機,node節點機上的配置就完成了,接下來看看k8s集群是否搭建起來了
在master主機上192.168.126.130 執行如下命令,查看運行的node節點機器:
kubectl get nodes
成功啦,結果圖如下: