在鯤鵬服務器搭建k8s高可用集群分享

高可用架構

本文采用kubeadm方式搭建k8s高可用集群,k8s高可用集群主要是對apiserver、etcd、controller-manager、scheduler做的高可用;高可用形式只要是為:

1. apiserver利用haproxy+keepalived做的負載,多apiserver節點同時工作;

2. etcd利用k8s內部提供的解決方案做的高可用,最多容忍一臺etcd服務宕機

3. controller-manager、scheduler的高可用機制為如果多個服務同時存在,則會選舉一個leader工作,另外兩個處于sleep的狀態

集群信息規劃

主機名稱

系統版本

主機IP

備注

K8s-master01

Centos7.6

192.168.0.101

Master01/registry

K8s-master02

Centos7.6

192.168.0.102

Master02

K8s-master03

Centos7.6

192.168.0.103

Master03

K8s-node01

Centos7.6

192.168.0.111

Node01

K8s-node02

Centos7.6

192.168.0.112

Node02

K8s-node03

Centos7.6

192.168.0.113

Node03

Apiserver-keepalived

Centos7.6

192.168.0.100

HA-apiserver

服務器的初始化

#此些操作根據實際需求所有服務器都需要操作?

修改hosts文件?

192.168.0.101 k8s-master01

192.168.0.102 k8s-master02?

192.168.0.103 k8s-master03

192.168.0.111 k8s-node01

192.168.0.112 k8s-node02

192.168.0.113 k8s-node03

修改主機名稱

hostnamectl set-hostname k8s-master01

hostname -b k8s-master01

#其余服務器按照此方式進行修改

關閉NetworkManager服務

[root@k8s-master01 ~]# systemctl stop NetworkManager
[root@k8s-master01 ~]# systemctl disable NetworkManager
Removed symlink /etc/systemd/system/multi-user.target.wants/NetworkManager.service.
Removed symlink /etc/systemd/system/dbus-org.freedesktop.nm-dispatcher.service.
Removed symlink /etc/systemd/system/network-online.target.wants/NetworkManager-wait-online.service.

修改服務器的IP地址

[root@k8s-master01 ~]# sed -i '/IP/d' /etc/sysconfig/network-scripts/ifcfg-ens33
[root@k8s-master01 ~]# sed -i 's/BOOTPROTO=dhcp/BOOTPROTO=static/g' /etc/sysconfig/network-scripts/ifcfg-ens33
[root@k8s-master01 ~]# sed -i 's/ONBOOT=no/ONBOOT=yes/g' /etc/sysconfig/network-scripts/ifcfg-ens33
[root@k8s-master01 ~]# sed -i '/UUID/d' /etc/sysconfig/network-scripts/ifcfg-ens33
[root@k8s-master01 ~]# echo -e "IPADDR=192.168.0.101\nNETMASK=255.255.255.0\nGATEWAY=192.168.0.1" >> /etc/sysconfig/network-scripts/ifcfg-ens33
[root@k8s-master01 ~]# systemctl restart network

安裝依賴包

[root@k8s-master01 ~]# yum install -y conntrack ntpdate ntp ipvsadm ipset jq iptables curl sysstat libseccomp wgetvimnet-tools git

設置防火墻并且清空規則

[root@k8s-master01 ~]# systemctl stop firewalld && systemctl disable firewalld
[root@k8s-master01 ~]#yum -y install iptables-services && systemctl start iptables && systemctl enable iptables&& iptables -F && service iptables save

關閉selinux

[root@k8s-master02 ~]# swapoff -a && sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab
[root@k8s-master01 ~]# setenforce 0 && sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config

服務器之間免密配置

#生成密鑰
[root@k8s-master01 ~]# ssh-keygen -t rsa#將密鑰傳到其他服務器上面
[root@k8s-master01 ~]# ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.0.102

Docker依賴安裝

[root@k8s-master01 ~]# yum install -y   yum-utils device-mapper-persistent-data lvm2

安裝Docker

[root@k8s-master01 ~]# yum-config-manager --add-repo  http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

安裝Docker

[root@k8s-master01 ~]# yum update -y && yum install -y docker-ce

配置daemon配置文件

[root@k8s-master01 ~]# mkdir -p /etc/docker
[root@k8s-master01 ~]# mkdir -p  /etc/systemd/system/docker.service.d
[root@k8s-master01 ~]# cat > /etc/docker/daemon.json < {
> "exec-opts": ["native.cgroupdriver=systemd"], #著重注意標紅字體
> "log-driver": "json-file",
> "log-opts": {
> "max-size": "100m"
> },
> "insecure-registries":["http://registry.k8s-test.com"] #后面會使用到私有鏡像倉庫
> }
> EOF

啟動docker并且設置開機自啟動

[root@k8s-master01 ~]# systemctl daemon-reload && systemctl restart docker && systemctl enable docker

安裝kubelet

[root@k8s-master01 ~]# cat  <  /etc/yum.repos.d/kubernetes.repo
> [kubernetes]
> name=Kubernetes
> baseurl=http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
> enabled=1
> gpgcheck=0
> repo_gpgcheck=0
> gpgkey=http://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
> http://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
> EOF[root@k8s-master01 ~]# yum install -y kubelet-1.16.4 kubeadm-1.16.4 kubectl-1.16.4

啟動kubelet并且設置為開機啟動

[root@k8s-master01 ~]#  systemctl enable kubelet && systemctl start kubelet

Keepalive安裝

[root@k8s-master01 ~]# yum -y install keepalived

修改配置文件:

master01和master02和master03配置一樣,只是router_id記得變一下

[root@k8s-master01 ~]# more /etc/keepa hived/keepalhived.Conf
! Configuration File for keepalived 
global_ defs{router_id master01
}
vrrp_instance VI_1 {state BACKUPinterface ens33virtual_router_id 5priority 90advert_int 1authentication {auth type PASSauth pass 1111}virtual ipaddress {192.168.0.100}
}

啟動keepalived

[root@k8s-master02 ~]# systemctl enable keepalived && systemctl start keepalived

驗證

master01

master02

master03

k8s安裝

下載鏡像

[root@k8s-master01 tools]# sh get_images.sh

部署鏡像中心

[root@k8s-master01 images]# docker images | grep k8s-registry.com/registry[root@k8s-master01 images]# docker run -d -p 80:5000 -v /home/registry:/var/lib/registry --restart=always --name registry k8s-registry.com/registry:1.0

將鏡像push到鏡像中心

[root@k8s-master01 images]# docker images | awk '{print $1":"$2}' | xargs -i docker push {}

創建kubeadm-config.yaml的配置文件

[root@k8s-master01 install-master]# more  kubeadm-config.yaml
apiVersion: kubeadm.k8s.io/v1beta2
kind: ClusterConfiguration
kubernetesVersion: v1.16.4
apiServer:certSANs:- k8s-master01- k8s-master02- k8s-master03- k8s-node01- k8s-node02- k8s-node03- 192.168.0.100- 192.168.0.101- 192.168.0.102- 192.168.0.103- 192.168.0.111- 192.168.0.112- 192.168.0.113
controlPlaneEndpoint: "192.168.0.100:6443"
networking:podSubnet: "10.244.0.0/16"

初始化master

[root@k8s-master01 install-master]# kubeadm init --config=kubeadm-config.yaml

驗證安裝

創建flannel網絡

下載flannelyaml文件

[root@k8s-master01 flannel]# wget https://raw.githubusercontent.com/coreos/flannel/2140ac876ef134e0ed5af15c65e414cf26827915/Documentation/kube-flannel.yml

創建flannel網絡

[root@k8s-master01 flannel]# kubectl app -f kube-flannel.yml

驗證安裝

master節點添加至集群

master01向其他兩個節點頒發證書

[root@k8s-master01 tools]# cat cert-amin-master.sh
[root@k8s-master01 tools]# sh cert-amin-master.sh

其他節點將證書放到指定目錄

[root@k8s-master02 ~]# sh cert-other-master.sh
[root@k8s-master02 ~]# more cert-other-master.sh

加入集群

kubeadm join 192.168.0.100:6443 --token lllil4.2wm1u6ocuxmysn7l \--discovery-token-ca-cert-hash sha256:fa5075ba896b8dbfdaf19125dee28817fdd349b7c4cea9ab243ad4224eb90892 \--control-plane

查看布置的節點

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

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

相關文章

nginx反向代理了解

文章目錄 Nginx反向代理反向代理系統調優Proxy Buffer相關指令 Nginx 具有高性能的http和反向代理的web服務器&#xff0c;同時也是一個pop3/smtp/imap代理服務器&#xff0c;使用c語言編寫 **Web服務器&#xff1a;**也叫網頁服務器&#xff0c;web server&#xff0c;主要功…

易聯眾智慧云膠片平臺,助推醫學影像服務“向云端”

在門診室里,張女士焦急地告訴主治醫師,自己忘了帶CT膠片。“您別急,我用系統查詢一下。”醫生輕點幾下鼠標進入云膠片平臺,只用不到10秒就順利完成了影像調取。“不僅我可以看到,您在手機上也能隨時隨地查閱。”張女士根據提示操作,不僅能調閱自己的影像檔案,連抽血化驗結果都可…

Spring MVC 啟動流程?

在 web.xml 文件中給 Spring MVC 的 Servlet 配置了 load-on-startup&#xff0c;所以程序啟動的時候會初始化 Spring MVC&#xff0c;在 HttpServletBean 中將配置的 contextConfigLocation屬性設置到 Servlet 中&#xff0c;然后在FrameworkServlet 中創建了 WebApplicationC…

[GeoServer系列]Shapefile數據發布

【GeoServer系列】——安裝與發布shapefile數據-CSDN博客 將待發布數據放置指定目錄下 webapps\geoserver\data\data 創建存儲倉庫 新建矢量數據源 發布圖層 設置邊框 設置樣式 使用 方式1 let highRoad new Cesium.WebMapServiceImageryProvider({url: http://local…

blender從視頻中動作捕捉,綁定到人物模型

總共分為3個步驟&#xff1a; 1、從視頻中捕捉動作模型 小K動畫網-AIGC視頻動捕平臺 地址&#xff1a;https://xk.yunbovtb.com/ 需要注冊 生成的FBX文件&#xff0c;不能直接導入到blender中&#xff0c; 方法有2種&#xff1a; 第一種&#xff1a;需要轉換一下&#x…

Spring Cloud學習筆記(Nacos):Nacos持久化(未完成)

這是本人學習的總結&#xff0c;主要學習資料如下 - 馬士兵教育 1、Overview2、單機使用MySQL 1、Overview 我們關閉單機下的Nacos后&#xff0c;再重新啟動會發現之前配置的內容沒有被刪除。這時因為Nacos有內嵌的數據庫derby&#xff0c;會自己持久化。 但是在集群的情況下…

QT6.0以上版本實現實時圖像傳輸

目錄 服務端開啟攝像頭&#xff0c;捕獲存儲圖片TCP圖像傳輸延時函數 客戶端建立連接接收數據和處理緩沖區接收的一些想法 QT借助tcp實現圖像傳輸&#xff0c;達到類似實時監控的目的。 QT到6.0以上后貌似原來的5.0的一些圖像的捕獲的函數都無法使用了&#xff0c;網上好像也沒…

KAN(Kolmogorov-Arnold Network)的理解 3

系列文章目錄 第一部分 KAN的理解——數學背景 第二部分 KAN的理解——網絡結構 第三部分 KAN的實踐——第一個例程 文章目錄 系列文章目錄前言KAN 的第一個例程 get started 前言 這里記錄我對于KAN的探索過程&#xff0c;每次會嘗試理解解釋一部分問題。歡迎大家和我一起討…

百度/迅雷/夸克,網盤免費加速,已破!

哈嘍&#xff0c;各位小伙伴們好&#xff0c;我是給大家帶來各類黑科技與前沿資訊的小武。 之前給大家安利了百度網盤及迅雷的加速方法&#xff0c;詳細方法及獲取參考之前文章&#xff1a; 剛剛&#xff01;度盤、某雷已破&#xff01;速度50M/s&#xff01; 本次主要介紹夸…

Python sorted 用法:深入解析排序函數的奧秘

Python sorted 用法&#xff1a;深入解析排序函數的奧秘 在Python編程中&#xff0c;sorted函數是一個強大的工具&#xff0c;用于對可迭代對象進行排序。然而&#xff0c;它的用法和功能遠不止表面看起來那么簡單。本文將深入剖析sorted函數的四個方面、五個方面、六個方面和…

simulink基礎學習筆記

寫在前面 這個筆記是看B站UP 快樂的宇航boy 所出的simulink基礎教程系列視頻過程中記下來的&#xff0c;寫的很粗糙不完整&#xff0c;也不會補。視頻教程很細跟著做就行。 lesson1-7節的筆記up有&#xff0c;可以加up的群&#xff0c;里面大佬挺活躍的。 lesson8 for循環 For …

【C++初階學習】第十二彈——stack和queue的介紹和使用

C語言棧&#xff1a;數據結構——棧(C語言版)-CSDN博客 C語言隊列&#xff1a;數據結構——隊列&#xff08;C語言版&#xff09;-CSDN博客 前言&#xff1a; 在之前學習C語言的時候&#xff0c;我們已經學習過棧與隊列&#xff0c;并學習過如何使用C語言來實現棧與隊列&…

Python | 平均績點

字符串的概念和特點 字符串既可以使用單引號&#xff0c;也可以使用雙引號""來創建 可以使用運算符來拼接字符串&#xff0c;并返回字符串拼接后的結果。 first_name "Tom" last_name "Jerry" full_name first_name " " &quo…

OCR圖片轉Excel表格:沒結構化的弊端

隨著OCR技術的不斷發展&#xff0c;將表格圖片轉為excel已不再是難題&#xff0c;但是&#xff0c;目前市面上的程序還大多處于僅能將圖片表格轉為普通的excel格式階段&#xff0c;而不能將其結構化&#xff0c;這樣就會產生許多的弊端&#xff0c;具體弊端如下&#xff1a; &l…

數據容器的通用操作、字符串大小比較 總結完畢!

1.數據容器的通用操作 1&#xff09;五類數據容器是否都支持while循環/for循環 五類數據容器都支持for循環遍歷 列表、元組、字符串都支持while循環&#xff0c;集合、字典不支持&#xff08;無法下標索引&#xff09; 盡管遍歷的形式不同&#xff0c;但都支持遍歷操作 2&a…

辦公軟件 Office 安裝教程(親測有效)

Office 現已更名為 Microsoft 365。習慣還是稱作 Office。 1、Office 套裝下載 Windows 的樣子 這里下載的是最新版本的 O365ProPlus 安裝完成后&#xff0c;點擊關閉&#xff08;請先不要打開&#xff09;。 Mac 的樣子 這里下載的是Office for Mac 2019&#xff08;更多版…

QNAP的jellyfin無法使用TMDB刮削的問題

解決方法很簡單&#xff0c;修改QNAP的HOSTS文件 使用DNS Checker工具查詢對應IP&#xff1a; image.tmdb.org api.themoviedb.org www.themoviedb.org 打開hosts文件&#xff0c;添加下列內容&#xff0c;wq保存 [~] # vi /etc/hosts 169.150.249.166 image.tmdb.org 103.2…

速遞FineWeb:一個擁有無限潛力的15T Tokens的開源數據集

大模型技術論文不斷&#xff0c;每個月總會新增上千篇。本專欄精選論文重點解讀&#xff0c;主題還是圍繞著行業實踐和工程量產。若在某個環節出現卡點&#xff0c;可以回到大模型必備腔調或者LLM背后的基礎模型新閱讀。而最新科技&#xff08;Mamba,xLSTM,KAN&#xff09;則提…

【TB作品】MSP430F149單片機,6通道ADC,串口發送

功能 用6個引腳采集ADC&#xff0c;串口發送到電腦 部分程序 /** Otherwise, the compiler removes it* because it is not used for anything.*/ int kaiguanliang[4]; /* 四個開關量 */unsigned char adok_ifg 1; …

內核宕機自救

【問題】在測試內核級防篡改時&#xff0c;偶爾會遇到內核宕機的問題 【結論】進入緊急救援模式&#xff0c;將服務進程文件的start注釋掉&#xff0c;即可 在Linux系統啟動時&#xff0c;內核啟動順序選擇界面&#xff0c;進入系統歡迎界面按上下左右鍵進入GRUB界面&#xff…