一、環境 三台centos機器 二、軟體及容器準備 1.安裝docker環境 本例安裝 docker-ce版本,repo源為docker-ce.repo文件,拷貝到 /etc/yum.repos.d下 yum install -y docker-ce 2.下載相關鏡像 本例需要一下鏡像,為了集群創建 ...
一、環境
三台centos機器
二、軟體及容器準備
1.安裝docker環境
本例安裝 docker-ce版本,repo源為docker-ce.repo文件,拷貝到 /etc/yum.repos.d下
yum install -y docker-ce
2.下載相關鏡像
本例需要一下鏡像,為了集群創建時不用等候時間過長,我們用一下辦法解決
K8S_VERSION=v1.11.2
ETCD_VERSION=3.2.18
PAUSE_VERSION=3.1
coredns_version=1.1.3
kube-apiserver-amd64:$K8S_VERSION
kube-controller-manager-amd64:$K8S_VERSION
kube-scheduler-amd64:$K8S_VERSION
kube-proxy-amd64:$K8S_VERSION
etcd-amd64:$ETCD_VERSION
pause:$PAUSE_VERSION
coredns:$coredns_version
由於不能上國外網站,我們先從registry.cn-hangzhou.aliyuncs.com/google_containers/ pull 下鏡像,然後 docker tag 為要求的k8s.gcr.io/
為此我寫了一個腳本完成,pull_k8s_image.sh
三、集群構建
在三台機器上做:
1.關閉swap和firewalld
在master和node節點上關閉swap和firewalld
swapoff -a ; systemctl stop firewalld
2.安裝kubeadm, kubelet, kubectl
在/etc/yum.repos.d/下設置kubernetes.repo 源文件
yum -y install kubectl kubeadm kubelet
啟動kubelet
systemctl enable kubelet && systemctl start kubelet
3.初始化master集群
使用kubeadm命令在master節點上初始化集群,由於之後安裝pod網路插件的要求,在集群初始化時需要添加--pod-network-cidr=10.244.0.0/16參數
由於master節點無法訪問google網路, 集群初始化時無法獲得k8s版本號,這裡需要手動設置k8s版本號為1.11.2
kubeadm init --pod-network-cidr=10.244.0.0/16 --kubernetes-version=1.11.2
出現一下畫面代表成功
到這裡集群已經初始化完成,這裡需要記錄一下kubeadm join命令的後續參數,以便於其他兩個node節點加入集群時使用。
4.其他節點加入集群
kubeadm join 192.168.1.16:6443 --token 後邊跟 初始集群時生成的token,192.168.1.16為本例的master 節點
5.驗證集群的狀態
kubectl get nodes
四、安裝dashboard
每個節點:
1.dashboard需要下載k8s.gcr.io/kubernetes-dashboard-amd64:v1.8.3鏡像,可以用前面介紹的方法。
2.下載dashboard部署文件上傳到master節點,部署Dashboard。 部署文件下載地址: https://raw.githubusercontent.com/kubernetes/dashboard/master/src/deploy/recommended/kubernetes-dashboard.yaml3.kubectl apply -f kubernetes-dashboadr.yaml
kubectl get deployment --namespace=kube-system
已經有應用開始運行,
我們更改kubernetes-dashboadr.yaml,以便外網可以訪問
kubectl edit service kubernetes-dashboard --namespace=kube-system
修改service的type:NodePort
kubectl get service --namespace=kube-system
看到監聽的埠為30001,我們在瀏覽器中輸入節點ip及埠,訪問,出現安全認證的頁面,不能訪問,
查閱了很多資料,如下處理:
生成修改許可權的配置文件
更改用戶許可權的文件kubernetes-dashboard-admin.yaml
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:
name: dashboard-admin
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: cluster-admin
subjects:
- kind: ServiceAccount
name: default
namespace: kube-system
kubectl apply -f kubernetes-dashboard-admin.yaml
通過代理調度,在主節點上進行
kubectl proxy --address=192.168.1.16 --disable-filter=true
在瀏覽器中輸入
1.16為主節點,8001為代理開放的埠
顯示界面
點跳過,出現界面
至此dashboard配置完成
同時我們的簡單集群部署完成。