天天看點

k8s dashboard_3分鐘使用kubeadm部署k8s叢集在三台機器上都執行一下操作在3台機器上,安裝Docker在3台機器上,添加阿裡雲YUM軟體源在3台機器上,安裝kubeadm,kubelet和kubectl部署Kubernetes Master使用kubectl工具worker節點加入叢集部署 Dashboard

kubeadm是官方社群推出的一個用于快速部署kubernetes叢集的工具。

這個工具能通過兩條指令完成一個kubernetes叢集的部署:

k8s dashboard_3分鐘使用kubeadm部署k8s叢集在三台機器上都執行一下操作在3台機器上,安裝Docker在3台機器上,添加阿裡雲YUM軟體源在3台機器上,安裝kubeadm,kubelet和kubectl部署Kubernetes Master使用kubectl工具worker節點加入叢集部署 Dashboard
k8s dashboard_3分鐘使用kubeadm部署k8s叢集在三台機器上都執行一下操作在3台機器上,安裝Docker在3台機器上,添加阿裡雲YUM軟體源在3台機器上,安裝kubeadm,kubelet和kubectl部署Kubernetes Master使用kubectl工具worker節點加入叢集部署 Dashboard
k8s dashboard_3分鐘使用kubeadm部署k8s叢集在三台機器上都執行一下操作在3台機器上,安裝Docker在3台機器上,添加阿裡雲YUM軟體源在3台機器上,安裝kubeadm,kubelet和kubectl部署Kubernetes Master使用kubectl工具worker節點加入叢集部署 Dashboard
k8s dashboard_3分鐘使用kubeadm部署k8s叢集在三台機器上都執行一下操作在3台機器上,安裝Docker在3台機器上,添加阿裡雲YUM軟體源在3台機器上,安裝kubeadm,kubelet和kubectl部署Kubernetes Master使用kubectl工具worker節點加入叢集部署 Dashboard
k8s dashboard_3分鐘使用kubeadm部署k8s叢集在三台機器上都執行一下操作在3台機器上,安裝Docker在3台機器上,添加阿裡雲YUM軟體源在3台機器上,安裝kubeadm,kubelet和kubectl部署Kubernetes Master使用kubectl工具worker節點加入叢集部署 Dashboard

在三台機器上都執行一下操作

關閉防火牆:

$ systemctl stop firewalld.service

$ systemctl disable firewalld.service

關閉selinux:

$ sed -i 's/enforcing/disabled/' /etc/selinux/config #

将SELINUX=disabled 然後注釋掉最後一行SELINUXTYPE=targeted

k8s dashboard_3分鐘使用kubeadm部署k8s叢集在三台機器上都執行一下操作在3台機器上,安裝Docker在3台機器上,添加阿裡雲YUM軟體源在3台機器上,安裝kubeadm,kubelet和kubectl部署Kubernetes Master使用kubectl工具worker節點加入叢集部署 Dashboard

儲存

關閉swap:

$ swapoff -a # 臨時

$ vim /etc/fstab # 永久

注釋掉最後一行,重新開機伺服器

k8s dashboard_3分鐘使用kubeadm部署k8s叢集在三台機器上都執行一下操作在3台機器上,安裝Docker在3台機器上,添加阿裡雲YUM軟體源在3台機器上,安裝kubeadm,kubelet和kubectl部署Kubernetes Master使用kubectl工具worker節點加入叢集部署 Dashboard

設定主機名,分别在3台機器上設定自己對應的主機名

$ hostnamectl set-hostname

在3台機器上添加hosts:

$ cat >> /etc/hosts << EOF

192.168.1.5 k8s-master

192.168.1.6 k8s-node1

192.168.1.7 k8s-node2

EOF

在3台機器上,将橋接的IPv4流量傳遞到iptables的鍊:

$ cat > /etc/sysctl.d/k8s.conf << EOF

net.bridge.bridge-nf-call-ip6tables = 1

net.bridge.bridge-nf-call-iptables = 1

EOF

$ sysctl --system # 生效

在3台機器上,時間同步:

$ yum install ntpdate -y

$ ntpdate ntp.tuna.tsinghua.edu.cn

在3台機器上,安裝Docker

# step 1: 安裝必要的一些系統工具

yum install -y yum-utils device-mapper-persistent-data lvm2

# Step 2: 添加軟體源資訊

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

# Step 3: 更新并安裝 Docker-CE

yum makecache fast

yum -y install docker-ce

# Step 4: 開啟Docker服務

systemctl start docker

systemctl enable docker

在3台機器上,設定阿裡雲鏡像容器加速

cat > /etc/docker/daemon.json << EOF

{

"registry-mirrors": ["https://b5xv4sjm.mirror.aliyuncs.com"],

"exec-opts": ["native.cgroupdriver=systemd"]

}

EOF

重新開機docker服務

在3台機器上,添加阿裡雲YUM軟體源

$ cat > /etc/yum.repos.d/kubernetes.repo << EOF

[kubernetes]

name=Kubernetes

baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/

enabled=1

gpgcheck=1

repo_gpgcheck=1

gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg

EOF

在3台機器上,安裝kubeadm,kubelet和kubectl

yum install -y kubelet-1.17.0 kubeadm-1.17.0 kubectl-1.17.0

systemctl enable kubelet

部署Kubernetes Master

$ kubeadm init

--apiserver-advertise-address=192.168.1.5

--image-repository registry.aliyuncs.com/google_containers

--kubernetes-version v1.17.0

--service-cidr=10.96.0.0/12

--pod-network-cidr=10.244.0.0/16

由于預設拉取鏡像位址k8s.gcr.io國内無法通路,這裡指定阿裡雲鏡像倉庫位址。

使用kubectl工具

mkdir -p $HOME/.kube

sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config

sudo chown $(id -u):$(id -g) $HOME/.kube/config

$ kubectl get nodes

安裝Pod網絡插件(CNI)

kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

注意這裡面需要修改 amd64下面的鏡像位址為國内的阿裡源上的鏡像,才能下載下傳下來

首先使用wget 下載下傳該檔案,但是raw.githubusercontent.com 的DNS解析器可能無法解析,是以需要使用chrome浏覽器或者其他浏覽器下載下傳下來

然後進行修改registry.cn-hangzhou.aliyuncs.com/yanl/flannel:v0.12.0-amd64這個鏡像可以去阿裡的鏡像站查詢到就行

k8s dashboard_3分鐘使用kubeadm部署k8s叢集在三台機器上都執行一下操作在3台機器上,安裝Docker在3台機器上,添加阿裡雲YUM軟體源在3台機器上,安裝kubeadm,kubelet和kubectl部署Kubernetes Master使用kubectl工具worker節點加入叢集部署 Dashboard

然後修改為對應位址即可

k8s dashboard_3分鐘使用kubeadm部署k8s叢集在三台機器上都執行一下操作在3台機器上,安裝Docker在3台機器上,添加阿裡雲YUM軟體源在3台機器上,安裝kubeadm,kubelet和kubectl部署Kubernetes Master使用kubectl工具worker節點加入叢集部署 Dashboard

然後執行kubectl apply -f kube-flannel.yml即可

檢視狀态 kubectl get pods -n kube-system

k8s dashboard_3分鐘使用kubeadm部署k8s叢集在三台機器上都執行一下操作在3台機器上,安裝Docker在3台機器上,添加阿裡雲YUM軟體源在3台機器上,安裝kubeadm,kubelet和kubectl部署Kubernetes Master使用kubectl工具worker節點加入叢集部署 Dashboard

為Running狀态即可

worker節點加入叢集

在192.168.1.6和192.168.1.7執行。

向叢集添加新節點,執行在kubeadm init輸出的kubeadm join指令:

kubeadm join 192.168.1.5:6443 --token 6u5cka.v0tqq07ju651fqee

--discovery-token-ca-cert-hash sha256:8c4654edaeab8f6d9d6afcd239a531810ac7d4b733998a74a4b183fe2d6d2232

該指令來源是master安裝後的日志中顯示

k8s dashboard_3分鐘使用kubeadm部署k8s叢集在三台機器上都執行一下操作在3台機器上,安裝Docker在3台機器上,添加阿裡雲YUM軟體源在3台機器上,安裝kubeadm,kubelet和kubectl部署Kubernetes Master使用kubectl工具worker節點加入叢集部署 Dashboard

檢視叢集節點狀态 kubectl get nodes

k8s dashboard_3分鐘使用kubeadm部署k8s叢集在三台機器上都執行一下操作在3台機器上,安裝Docker在3台機器上,添加阿裡雲YUM軟體源在3台機器上,安裝kubeadm,kubelet和kubectl部署Kubernetes Master使用kubectl工具worker節點加入叢集部署 Dashboard

為Ready即可

k8s dashboard_3分鐘使用kubeadm部署k8s叢集在三台機器上都執行一下操作在3台機器上,安裝Docker在3台機器上,添加阿裡雲YUM軟體源在3台機器上,安裝kubeadm,kubelet和kubectl部署Kubernetes Master使用kubectl工具worker節點加入叢集部署 Dashboard

部署 Dashboard

指令位址

https://github.com/kubernetes/dashboard/releases

k8s dashboard_3分鐘使用kubeadm部署k8s叢集在三台機器上都執行一下操作在3台機器上,安裝Docker在3台機器上,添加阿裡雲YUM軟體源在3台機器上,安裝kubeadm,kubelet和kubectl部署Kubernetes Master使用kubectl工具worker節點加入叢集部署 Dashboard

還是和上面一樣,使用浏覽器将 https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.3/aio/deploy/recommended.yaml 檔案下載下傳下來,然後修改

其中的image,上面的2個就是需要的

registry.cn-hangzhou.aliyuncs.com/inspur_containers/dashboard:v2.0.0-rc5

k8s dashboard_3分鐘使用kubeadm部署k8s叢集在三台機器上都執行一下操作在3台機器上,安裝Docker在3台機器上,添加阿裡雲YUM軟體源在3台機器上,安裝kubeadm,kubelet和kubectl部署Kubernetes Master使用kubectl工具worker節點加入叢集部署 Dashboard

registry.cn-hangzhou.aliyuncs.com/kubernetes_ns/metrics-scraper:v1.0.4

k8s dashboard_3分鐘使用kubeadm部署k8s叢集在三台機器上都執行一下操作在3台機器上,安裝Docker在3台機器上,添加阿裡雲YUM軟體源在3台機器上,安裝kubeadm,kubelet和kubectl部署Kubernetes Master使用kubectl工具worker節點加入叢集部署 Dashboard

這2個鏡像還是可以去阿裡鏡像倉庫去搜尋到然後更改就行

預設Dashboard隻能叢集内部通路,修改Service為NodePort類型,暴露到外部

k8s dashboard_3分鐘使用kubeadm部署k8s叢集在三台機器上都執行一下操作在3台機器上,安裝Docker在3台機器上,添加阿裡雲YUM軟體源在3台機器上,安裝kubeadm,kubelet和kubectl部署Kubernetes Master使用kubectl工具worker節點加入叢集部署 Dashboard

通路位址:http://NodeIP:30001

建立service account并綁定預設cluster-admin管理者叢集角色:

kubectl create serviceaccount dashboard-admin -n kubernetes-dashboard

kubectl create clusterrolebinding dashboard-admin --clusterrole=cluster-admin --serviceaccount=kubernetes-dashboard:dashboard-admin

kubectl describe secrets -n kubernetes-dashboard $(kubectl -n kubernetes-dashboard get secret | awk '/dashboard-admin/{print $1}')

k8s dashboard_3分鐘使用kubeadm部署k8s叢集在三台機器上都執行一下操作在3台機器上,安裝Docker在3台機器上,添加阿裡雲YUM軟體源在3台機器上,安裝kubeadm,kubelet和kubectl部署Kubernetes Master使用kubectl工具worker節點加入叢集部署 Dashboard

通過浏覽器通路 https://192.168.1.5:30001/#/login

k8s dashboard_3分鐘使用kubeadm部署k8s叢集在三台機器上都執行一下操作在3台機器上,安裝Docker在3台機器上,添加阿裡雲YUM軟體源在3台機器上,安裝kubeadm,kubelet和kubectl部署Kubernetes Master使用kubectl工具worker節點加入叢集部署 Dashboard

即可

k8s dashboard_3分鐘使用kubeadm部署k8s叢集在三台機器上都執行一下操作在3台機器上,安裝Docker在3台機器上,添加阿裡雲YUM軟體源在3台機器上,安裝kubeadm,kubelet和kubectl部署Kubernetes Master使用kubectl工具worker節點加入叢集部署 Dashboard