centos7 部署kubernetes(帶自動部署腳本)

目錄

一、實驗規劃

1、規劃表

2、安裝前宿主機檢查

1.配置主機名

2.制作ssh免密(VM1中執行)

?3.修改hosts 文件

4. 修改內核相關參數

5.加載模塊

6.?清空iptables、關閉防火墻、關閉交換空間、禁用selinux

7.?安裝ipvs與時鐘同步

8.配置docker的yum源、安裝docker及開機自啟

?3、安裝kubeadm、kubelet、kubectl

4、部署master節點

1.生成yaml文件及初始化集群

2.?拉取網絡組件配置文件 - calico

3.部署calico

4.錯誤處理

5、worker節點加入集群

6、k8s自動部署環境腳本?

7、worker端運行kubectl?


一、實驗規劃

1、規劃表

設備

主機名

IP

角色

虛擬機1(VM1)

K8s01

192.168.248.20

Master

虛擬機2(VM2)

K8s02

192.168.248.21

Node

虛擬機3(VM3)

K8s03

192.168.248.22

Node

默認已自行配置過IP地址,配置IP方式有很多:netplan、nmtui、nmcli、networking等方式?

2、安裝前宿主機檢查

1.配置主機名

VM1執行

[root@localhost ~]# hostnamectl set-hostname k8s01

VM2執行

[root@localhost ~]# hostnamectl set-hostname k8s02

VM3執行

[root@localhost ~]# hostnamectl set-hostname k8s03

配置完成后,退出當前連接的遠程終端,重新登錄自動生效

2.制作ssh免密(VM1中執行)

[root@k8s01 ~]# ssh-keygen -t rsa -f ~/.ssh/id_rsa -N ''    #生成公鑰
#-t rsa指定使用RSA算法生成密鑰對
#-f ~/.ssh/id_rsa指定將私鑰保存在~/.ssh/id_rsa文件中
#-N ''設置空密碼以保護私鑰文件[root@k8s01 ~]# ls /root/.ssh/  #查看公私鑰是否生成
id_rsa  id_rsa.pub[root@k8s01 ~]# for i in 192.168.248.{20..22}; do ssh-copy-id root@$i; done #將私鑰拷貝給需要遠程的主機

?3.修改hosts 文件

echo -e "192.168.248.20 k8s01
192.168.248.21 k8s02
192.168.248.22 k8s03" >> /etc/hosts

4. 修改內核相關參數

echo -e "net.ipv4.ip_forward = 1
vm.swappiness = 0
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
fs.may_detach_mounts = 1" > /etc/sysctl.d/k8s.conf
#net.ipv4.ip_forward:將IPv4轉發功能開啟,允許系統作為路由器轉發IP數據包
#net.bridge.bridge-nf-call-ip6tables = 1: 允許通過網橋的IPV6數據包進行iptables規則的處理
#net.bridge.bridge-nf-call-iptables = 1:  允許通過網橋的IPV4數據包進行iptables規則的處理
#fs.may_detach_mounts = 1: 在卸載文件系統時允許解除掛載

5.加載模塊

echo -e "#!/bin/bash
modprobe -- br_netfilter
modprobe -- ip_vs
modprobe -- ip_vs_rr
modprobe -- ip_vs_wrr
modprobe -- ip_vs_sh
modprobe -- nf_conntrack_ipv4
" >> /etc/sysconfig/modules/ipvs.modules
#br_netfilter:      加載br_netfilter內核模塊,它是用于網橋與網絡層之間的過濾器。
#ip_vs:            加載ip_vs內核模塊,它提供IPVS(IP Virtual Server)功能,用于實現負載均衡。
#ip_vs_rr:         加載ip_vs_rr內核模塊,它是IPVS中的一種負載均衡調度算法,使用輪詢方式進行負載均衡。
#ip_vs_wrr:        加載ip_vs_wrr內核模塊,它是IPVS中的一種負載均衡調度算法,使用加權輪詢方式進行負載均衡。
#ip_vs_sh:         加載ip_vs_sh內核模塊,它是IPVS中的一種負載均衡調度算法,使用哈希方式進行負載均衡。
#nf_conntrack_ipv4:加載nf_conntrack_ipv4內核模塊,它是IPv4連接跟蹤模塊,用于跟蹤網絡連接狀態chmod 755 /etc/sysconfig/modules/ipvs.modules && bash /etc/sysconfig/modules/ipvs.modules &&  lsmod | grep -E "ip_vs|nf_conntrack_ipv4" > /dev/null

6.?清空iptables、關閉防火墻、關閉交換空間、禁用selinux

iptables -F 
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config 
systemctl disable --now firewalld > /dev/null 
swapoff -a  
sed -i 's@/dev/mapper/centos-swap@#/dev/mapper/centos-swap@g' /etc/fstab

7.?安裝ipvs與時鐘同步

yum install -y ipset ipvsadm bash-completion sshpass 
yum install -y chrony –y > /dev/null 
systemctl enable --now chronyd 
sleep 20 
chronyc sources

8.配置docker的yum源、安裝docker及開機自啟

yum install wget -y
wget -O /etc/yum.repos.d/docker-ce.repo https://download.docker.com/linux/centos/docker-ce.repo
sed -i 's+download.docker.com+mirrors.tuna.tsinghua.edu.cn/docker-ce+' /etc/yum.repos.d/docker-ce.repo
yum install --setopt=obsoletes=0 docker-ce-18.06.3.ce-3.el7 -y
mkdir -p /etc/docker
echo -e '{"registry-mirrors": ["https://u6xekpvk.mirror.aliyuncs.com"]
}' > /etc/docker/daemon.json #替換鏡像加速器
systemctl daemon-reload && systemctl restart docker && systemctl enable docker
sleep 3
systemctl status docker

?3、安裝kubeadm、kubelet、kubectl

yum install -y kubelet-1.19.16 kubeadm-1.19.16 kubectl-1.19.16
systemctl enable kubelet --now

4、部署master節點

1.生成yaml文件及初始化集群

kubeadm config print init-defaults --component-configs KubeletConfiguration --component-configs KubeProxyConfiguration > kubeadm.yaml #生成kubeadm的yaml文件
sed -i "/advertiseAddress:/ s/:.*/: ${MASTER_IP}/" /root/kubeadm.yaml
sed -i "/imageRepository:/ s%:.*%: registry.aliyuncs.com/google_containers%" /root/kubeadm.yaml
sed -i "/serviceSubnet:/ a \ \ podSubnet: 10.244.0.0/16" /root/kubeadm.yaml
sed -i '/mode: ""/ c mode: "ipvs"' /root/kubeadm.yaml
kubeadm config images pull --config /root/kubeadm.yaml
kubeadm init --config kubeadm.yaml | tee k8s.txt
#出現如下內容說明初始化成功
"To start using your cluster, you need to run the following as a regular user:mkdir -p $HOME/.kubesudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/configsudo chown $(id -u):$(id -g) $HOME/.kube/configYou should now deploy a pod network to the cluster.
Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at:https://kubernetes.io/docs/concepts/cluster-administration/addons/Then you can join any number of worker nodes by running the following on each as root:kubeadm join 192.168.248.20:6443 --token abcdef.0123456789abcdef \--discovery-token-ca-cert-hash sha256:233778c959cc5aa1e42813fe04e8a492c8c9aba48882b757d49f617648e7ff65"#修改YAML文件
eval `sed -n '/mkdir/ s/  //p' /root/k8s.txt`
eval `sed -n "/sudo cp/ s/  //p" /root/k8s.txt`
eval `sed -n "/sudo chown/ s/  //p" /root/k8s.txt`
curl https://docs.projectcalico.org/archive/v3.20/manifests/calico.yaml -O
kubectl apply -f calico.yaml

此為worker節點假如集群的命令

?根據提示內容命令,添加環境變量

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

2.?拉取網絡組件配置文件 - calico

curl https://docs.projectcalico.org/archive/v3.20/manifests/calico.yaml -O

3.部署calico

kubectl apply -f calico.yaml
kubectl get pods -A #當所有pod都為runing 1/1時表示部署完成

4.錯誤處理

pod狀態一直處于”ContainerCreating“ 或其它狀態,通過如下命令強制刪除pod,刪除后會自動創建新的pod

kubectl delete -n kube-system  pods 容器ID  --force --grace-period=0

5、worker節點加入集群

kubeadm join 192.168.248.20:6443 --token abcdef.0123456789abcdef \--discovery-token-ca-cert-hash sha256:233778c959cc5aa1e42813fe04e8a492c8c9aba48882b757d49f617648e7ff65"
#注意!!!使用init時生成出來的提示命令

6、k8s自動部署環境腳本?

自動部署單master節點 + 雙worker腳本

7、worker端運行kubectl?

加入完成后,系統提示使用命令“kubectl get node”查看集群狀態,輸入命令后,系統會有以下報錯:

[root@k8s02 ~]# kubectl get nodes
The connection to the server localhost:8080 was refused - did you specify the right host or port?

使用以下命令將master節點的admin.conf文件拷貝到當前節點

[root@k8s02 ~]# mkdir -p $HOME/.kube
[root@k8s02 ~]# scp root@192.168.248.20:/etc/kubernetes/admin.conf $HOME/.kube/config
[root@k8s02 ~]# chown $(id -u):$(id -g) $HOME/.kube/config

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/37748.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/37748.shtml
英文地址,請注明出處:http://en.pswp.cn/news/37748.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Three.js 監聽紋理加載

本文簡介 本文介紹 Three.js 的基礎方法:監聽材質加載。 在 《Three.js 基礎紋理貼圖》 里介紹了如何給圖形貼圖,貼圖前需要先把紋理加載好。我們基于這篇文章繼續講解如何監聽材質加載成功或者失敗。 監聽單個材質 我們使用 TextureLoader 的 load() 方…

TC3XX - MCAL知識點(二十六):GETH MCAL配置及代碼實戰(以太網)

目錄 1、概述 2、MCAL配置 2.1、配置目標 2.2、ETH配置 2.2.1、EthGeneral 2.2.2、EthCtrlOffloading 2.2.3、EthConfigSet 2.3、Port配置 2.4、IRQ配置 2.5、MC

ChatGPT收錄

VSCode插件-ChatGPT 多磨助手 多磨助手 (domore.run) Steamship Steamship 免費合集 免費chatGPT - Ant Design Pro 免費AI聊天室 (xyys.one)

解決flutter showDialog下拉框,復選框等無法及時響應的問題

使用StatefulBuilder _showDialogr() {showDialog(context: context,builder: (BuildContext ctx) {return StatefulBuilder(builder: (BuildContext context, StateSetter setState) {return Scaffold(body: Column(children: <Widget>[Container(height: 400,padding: …

使用nio代替傳統流實現文件上傳和下載功能

1.文件下載 /**NIO文件下載工具類* author olalu*/ public class NioDownloadUtils {/*** description:* param file: 要下在文件* return: void*/public static void downloadDoc(File file,HttpServletResponse response) throws IOException {OutputStream outputStream r…

武漢地鐵19號線完成5G專網全覆蓋,現場測試下行速率超千兆!

近日&#xff0c;極目新聞記者從中國移動湖北公司獲悉&#xff0c;隨著武漢地鐵19號線全線隧道正式貫通&#xff0c;湖北移動目前已完成新月溪公園至鼓架山站5G網絡覆蓋&#xff0c;軌行區5G專網全覆蓋&#xff0c;并成功進行試車驗證&#xff0c;19號線成為國內首條全線實現5G…

實習筆記(一)

自定義注解&#xff1a; 自定義注解中有三個元注解Target,Retention,Document /*** 系統日志注解** author Mark sunlightcsgmail.com*/ Target(ElementType.METHOD) Retention(RetentionPolicy.RUNTIME) Documented public interface SysLog {String value() default "…

2023全國大學生數學建模競賽C題思路模型代碼

目錄 1.C題思路模型&#xff1a;比賽開始后&#xff0c;第一時間更新&#xff0c;獲取見文末名片 2.比賽時間&#xff1a;2023年9月7日18點到2023年9月10日20點 3 全國大學生數學建模競賽常見數模問題 3.1 分類問題 3.2 優化問題 詳細思路見此名片&#xff0c;開賽第一時間…

面試題解析 | 為什么Redis使用單線程性能會優于多線程?

大家好&#xff0c;我是小米&#xff01;今天我要和大家聊一個有關Redis的熱門面試題&#xff1a;為什么Redis使用單線程性能會優于多線程&#xff1f;相信這個問題在很多同學心中都曾經糾結過&#xff0c;那么接下來&#xff0c;就讓我們一起來揭開這個技術之謎吧&#xff01;…

LeetCode 37題:解數獨

題目 編寫一個程序&#xff0c;通過填充空格來解決數獨問題。 數獨的解法需 遵循如下規則&#xff1a; 數字 1-9 在每一行只能出現一次。數字 1-9 在每一列只能出現一次。數字 1-9 在每一個以粗實線分隔的 3x3 宮內只能出現一次。&#xff08;請參考示例圖&#xff09; 數獨…

IDEA簡單拷貝一份新項目記錄

IDEA簡單拷貝項目記錄 拷貝后改項目名&#xff0c;然后iml 配置文件改項目名&#xff0c;然后 .idea 中的compiler.xml 里面的name標簽改項目名。 就可以了

【軟件工程】軟件測試

軟件測試的對象 軟件程序文檔 測試對象&#xff1a;各個階段產生的源程序和文檔。 軟件測試的目的 基于不同的立場&#xff0c;對軟件測試的目的存在著兩種完全對立的觀點。 &#xff08;1&#xff09;一種觀點是通過測試暴露出軟件中所包含的故障和缺陷(從用戶的角度)&#xf…

ssh-keygen 做好免密登錄后不生效

免密說明 通常情況下&#xff0c;我們ssh到其他服務器需要知道服務器的用戶名和密碼。對于需要經常登錄的服務器每次都輸入密碼比較麻煩&#xff0c;因此我們可以在兩臺服務器上做免密登錄&#xff0c;即在A服務器可以免密登錄B服務器。 在A服務器上登錄B服務器時&#xff0c;…

Tik Tok娛樂+電商MCN怎么做?

在美國外的熱門市場中&#xff0c;TikTok 主要做的區域市場包括中東、拉美、歐洲和東亞&#xff0c;而這里面適合做電商的其實并不多。 歐洲、東亞都屬于成熟市場&#xff0c;且 TikTok 本身在歐洲面臨 DSA 法案更嚴格的審查&#xff0c;與在英國相同&#xff0c;歐洲各市場消…

第G1周:生成對抗網絡(GAN)入門

&#x1f368; 本文為[&#x1f517;365天深度學習訓練營]內部限免文章&#xff08;版權歸 *K同學啊* 所有&#xff09; &#x1f356; 作者&#xff1a;[K同學啊] 一、理論基礎 生成對抗網絡&#xff08;Generative Adversarial Networks, GAN&#xff09;是近年來深度學習領域…

Windows安裝Go開發環境

Windows安裝Go開發環境 一、Go語言下載地址 https://golang.google.cn/dl/ 二、設置工作空間GOPATH目錄(Go語言開發的項目路徑) 首先進入我的C盤&#xff08;你放到其他盤也行&#xff09;&#xff0c;新建一個文件夾&#xff0c;名字叫做mygo&#xff08;這個就是你的工作目…

ArcGIS Maps SDK for JavaScript系列之一:在Vue3中加載ArcGIS地圖

目錄 ArcGIS Maps SDK for JavaScript簡介ArcGIS Maps SDK for JavaScript 4.x 的主要特點和功能AMD modules 和 ES modules兩種方式比較Vue3中使用ArcGIS Maps SDK for JavaScript的步驟創建 Vue 3 項目安裝 ArcGIS Maps SDK for JavaScript創建地圖組件 ArcGIS Maps SDK for …

“深入理解JVM:探索Java虛擬機的內部工作原理“

標題&#xff1a;深入理解JVM&#xff1a;探索Java虛擬機的內部工作原理 摘要&#xff1a;本文將深入探索Java虛擬機&#xff08;JVM&#xff09;的內部工作原理&#xff0c;包括JVM的架構、類加載、內存管理、垃圾回收機制等方面。通過理解JVM的內部工作原理&#xff0c;我們…

華為開源自研AI框架昇思MindSpore應用案例:基于MindSpore框架的UNet-2D案例實現

目錄 一、環境準備1.進入ModelArts官網2.使用CodeLab體驗Notebook實例 二、環境準備與數據讀取三、模型解析Transformer基本原理Attention模塊 Transformer EncoderViT模型的輸入整體構建ViT 四、模型訓練與推理模型訓練模型驗證模型推理 近些年&#xff0c;隨著基于自注意&…

改造舊項目-長安分局人事費用管理系統

一、系統環境搭建 1、搭建前臺環境 vue3vite構建項目復制“銀稅系統”頁面結構&#xff0c;包括&#xff1a;路由、vuex存儲、菜單、登錄&#xff08;復制一個干凈的空架子&#xff09; 2、搭建后臺環境 新三大框架 SSMP聚合工程&#xff1a;common、admin&#xff0c;新的…