-
系統配置(master和node節點都配置)
-
修改yum源為阿里源
-
備份本地yum源
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo_bak -
獲取阿里yum源組態檔
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo -
更新yum快取
yum makecache -
查看當前yum源
yum repolist 已加載插件:fastestmirror, langpacks Loading mirror speeds from cached hostfile * base: mirrors.aliyun.com * extras: mirrors.aliyun.com * updates: mirrors.aliyun.com 源標識
-
-
關閉防火墻(必須關閉)
systemctl stop firewalld systemctl disable firewalld -
關閉selinux
setenforce 0 -
關閉交換區
swapoff -a 臨時關閉 free 可以通過這個命令查看swap是否關閉了 vim /etc/fstab 永久關閉 注釋掉swap行資料 -
添加主機名與IP對應關系
vim /etc/hosts 添加如下內容: 10.3.133.115 k8s-master 10.3.133.116 k8s-node1 10.3.133.117 k8s-node2 -
將橋接的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 -
安裝docker
-
下載并安裝docker
wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O/etc/yum.repos.d/docker-ce.repo yum install -y docker-ce -
設定docker的配置
# 創建docker-root的目錄 mkdir /data # 創建docker配置存盤的目錄 mkdir /etc/docker # 設定docker組態檔(注意:"exec-opts": ["native.cgroupdriver=systemd"]) sudo vim /etc/docker/daemon.json 內容如下: { "exec-opts": ["native.cgroupdriver=systemd"], "log-driver": "json-file", "log-opts": { "max-size": "100m" }, "storage-driver": "overlay2", "storage-opts": [ "overlay2.override_kernel_check=true" ], "data-root": "/data/docker" } -
設定開機啟動
systemctl enable docker systemctl start docker -
查看docker版本
docker --version Docker version 20.10.10, build b485636 -
添加阿里云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 -
安裝kubeadm,kubelet和kubectl
在部署kubernetes時,要求master node和worker node上的版本保持一致,否則會出現版本不匹配導致奇怪的問題出現, 使用yum安裝程式時,提示xxx.rpm公鑰尚未安裝 使用 yum install xxx.rpm --nogpgcheck 命令格式跳過公鑰檢查 yum install -y kubelet kubectl kubeadm --nogpgcheck-
設定kubelet開機啟動
systemctl enable kubelet
-
-
-
-
k8s安裝配置
- 規劃
10.3.133.115 k8s-master 10.3.133.116 k8s-node1 10.3.133.117 k8s-node2 - 部署Kubernetes Master(Master節點)
- 初始化kubeadm
# 10.3.133.115 master節點IP kubeadm init \ --apiserver-advertise-address=10.3.133.115 \ --image-repository registry.aliyuncs.com/google_containers \ --kubernetes-version v1.22.3 \ --service-cidr=10.1.0.0/16 \ --pod-network-cidr=10.244.0.0/16 -
初始化成功標識
-
-
使用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命令了 kubectl get node
- 初始化kubeadm
- 安裝Pod網路插件(CNI) 10.1 安裝插件
- 安裝命令如下:建議本地安裝
kubectl apply -f kube-flannel.yml檔案原始地址:kube-flannel.yml/kube-flannel.yml at master · caoran/kube-flannel.yml · GitHub
原始地址檔案使用會有警告,經修改后的最終檔案如下:kube-flannel.yml
- 成功的標識
- 查看是否部署成功
kubectl get pods -n kube-system
pod全部為running表示成功
- 再次查看node,可以看到狀態為ready
- 安裝命令如下:建議本地安裝
- Node節點加入集群 向集群添加新節點,執行在kubeadm init輸出的kubeadm join命令: 復制上面命令,在node節點上執行
清空當前初始化環境 kubeadm reset 直接命令快捷生成(在master上執行):kubeadm token create --print-join-command kubeadm join 10.3.133.115:6443 --token ctn46e.qw4vlqs9t55j85wx \ --discovery-token-ca-cert-hash sha256:548f0da61990b628356f91bef7784d5113ece69bf8c7f19b132d5c256f921c26
- 規劃
-
部署dashboard的Web-UI界面
- 下載檔案原始地址,修改后的最終檔案:最終檔案
- 編輯檔案
//編輯yaml檔案 [root@docker-k8s01 ~]# vim recommended.yaml //跳轉到40行左右,修改其對應的service,型別配置為Nodeport kind: Service apiVersion: v1 metadata: labels: k8s-app: kubernetes-dashboard name: kubernetes-dashboard namespace: kubernetes-dashboard spec: type: NodePort //添加型別為NodePort ports: - port: 443 targetPort: 8443 nodePort: 31010 //映射到宿主機的埠為31010 selector: k8s-app: kubernetes-dashboard //執行yaml檔案 [root@docker-k8s01 ~]# kubectl apply -f recommended.yaml //查看Pod是否運行 [root@docker-k8s01 ~]# kubectl get pod -n kubernetes-dashboard //查看其詳細資訊 [root@docker-k8s01 ~]# kubectl describe pod -n kubernetes-dashboard dashboard-metrics-scraper-76679bc5b9-sbcvw //確保該yaml檔案提供的pod都正常運行 [root@docker-k8s01 ~]# kubectl get svc -n kubernetes-dashboard NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE dashboard-metrics-scraper ClusterIP 10.103.65.117 <none> 8000/TCP 3m3s kubernetes-dashboard NodePort 10.110.154.42 <none> 443:31010/TCP 3m3s - 訪問測驗:這里使用的dashboard版本較高,相較于之前的版本訪問必須使用火狐瀏覽器,這里不需要,
- 訪問https://10.3.133.115:31010(訪問集群內的任意節點IP都可以,注意是https)
- 選擇token方式,另一種方式待研究
- 使用如下方式獲取token值
- 將Token值粘貼到下面

- 至此,就可以在web界面進行監控群集節點的資訊,及創建資源物件
- 注:一般不會在這上面進行創建資源物件
- 訪問https://10.3.133.115:31010(訪問集群內的任意節點IP都可以,注意是https)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/342329.html
標籤:其他




