kubeadm安裝K8s集群之高可用組件keepalived+nginx

系列文章目錄
1.kubeadm安裝K8s集群之基礎環境配置
2.kubeadm安裝K8s集群之高可用組件keepalived+nginx
3.kubeadm安裝K8s集群之master節點加入
4.kubeadm安裝K8s集群之worker1節點加入

kubeadm安裝K8s集群之高可用組件keepalived+nginx

    • 1.安裝kubeadm、kubectl、kubelet
    • 2.安裝高可用組件nginx
    • 3.安裝高可用組件keepalived

1.安裝kubeadm、kubectl、kubelet

kubeadm:是用于初始化和管理kubernetes集群的工具,簡化集群的創建維護;
kubelet:是每個節點的代理,負責容器的生命周期和節點級別的任務管理;
kubectl:是作為用戶的命令行界面,用來與kubernetes集群進行交換,便于管理和操作集群資源;

  • 添加kubernetes yum源;
cat > /etc/yum.repos.d/kubernetes.repo <<EOF
[kubernetes]
name=Kubernetes Repo
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
enabled=1
EOF
  • 安裝軟件包,我這里是安裝指定版本1.19.1-0;
yum install -y kubelet-1.19.1-0.x86_64 kubeadm-1.19.1-0.x86_64 kubectl-1.19.1-0.x86_64
  • 配置kubelet鏡像倉庫

默認配置的pause鏡像使用 gcr.io 倉庫,國內可能無法訪問,所以這里配置 Kubelet 使用阿里云的 pause 鏡像;

首先獲取 Docker cgroups 驅動程序信息

DOCKER_CGROUPS=$(docker info --format '{{.CgroupDriver}}')
echo $DOCKER_CGROUPS

注意:獲取Docker cgroups驅動程序信息是為了保證docker和kubelet的cgroup-driver保持一致,如果不一致,在初始化集群時會報錯:[kubelet-check] The HTTP call equal to 'curl -sSL http://xxxxxxx:xxx connect: connection refused.

編輯Kubelet配置文件

cat >/etc/sysconfig/kubelet <<EOF
KUBELET_EXTRA_ARGS="--cgroup-driver=${DOCKER_CGROUPS} --pod-infra-container-image=registry.cn-hangzhou.aliyuncs.com/google_containers/pause-amd64:3.1"
EOF

在這里插入圖片描述

加載配置并將kubelet設置為開機自啟;

#加載system系統配置管理文件
systemctl daemon-reload
#設置開機自啟并啟動,啟動肯定是報錯,因為kubelet還沒有在master進行初始化啟動
systemctl enable kubelet && systemctl restart kubelet

2.安裝高可用組件nginx

  • 啟用EPEL倉庫后安裝 Nginx
yum install -y epel-release
yum install -y nginx
  • 加載nginx stream模塊

因為需要用到nginx的stream模塊,yum安裝的nginx默認是沒有這個模塊的,所以需要手動安裝所有mod;

yum -y install nginx-all-modules.noarch

安裝成功后/usr/lib64/nginx/modules/目錄中會增加以下文件;

ll /usr/lib64/nginx/modules/

在這里插入圖片描述

  • 配置nginx配置文件

首先備份一下默認的nginx.conf文件

cp /etc/nginx/nginx.conf /etc/nginx/nginx.confbak

修改配置文件中的內容執行命令,將以下內容覆蓋重定向到配置文件中;

提示:以下內容請根據文件中的注釋調整對應的實際情況的內容;

cat >/etc/nginx/nginx.conf <<EOF
#手動將上面安裝的nginx stream模塊加載進來;
load_module /usr/lib64/nginx/modules/ngx_stream_module.so;
events {worker_connections  1024;
}stream {log_format  main  '$remote_addr $upstream_addr - [$time_local] $status $upstream_bytes_sent';access_log  /var/log/nginx/k8s-access.log  main;upstream k8s-apiserver {server 192.168.0.105:6443;   # master1 apiserver的ip和端口,請根據實際情況替換該內容;server 192.168.0.106:6443;   # master2 apiserver的ip和端口,請根據實際情況替換該內容;}server {listen 16443;  # 因nginx與master節點復用,這個監聽端口不能是6443,否則會沖突proxy_pass k8s-apiserver;}
}http {include       mime.types;default_type  application/octet-stream;sendfile        on;keepalive_timeout  65;server {listen       80;server_name  localhost;location / {root   html;index  index.html index.htm;}error_page   500 502 503 504  /50x.html;location = /50x.html {root   html;}}
}
EOF

將nginx設置為開機自啟

systemctl enable nginx && systemctl start nginx && systemctl status nginx

3.安裝高可用組件keepalived

通過模擬虛擬路由器的來保證,主服務器出現故障時自動將流量切換到備用服務器,從而保證服務的持續可用,確保服務的連續性和可靠性;

  • 安裝 Keepalived
yum install -y keepalived
  • 修改配置keepalived配置文件

首先備份默認的配置文件

cp /etc/keepalived/keepalived.conf /etc/keepalived/keepalived.confbak

修改配置文件中的內容執行命令,將以下內容覆蓋重定向到配置文件中;

提示:以下內容請根據文件中的注釋調整對應的實際情況的內容;

cat > /etc/keepalived/keepalived.conf << EOF
! Configuration File for keepalivedglobal_defs {notification_email {acassen@firewall.locfailover@firewall.locsysadmin@firewall.loc}notification_email_from Alexandre.Cassen@firewall.locsmtp_server 192.168.200.1smtp_connect_timeout 30router_id LVS_DEVELvrrp_skip_check_adv_addrvrrp_garp_interval 0vrrp_gna_interval 0
}vrrp_script check_nginx { #配置健康檢查腳本相關內容script "/etc/keepalived/check_nginx.sh" #配置健康檢查腳本路徑interval 2weight -20  #健康檢查腳本返回的狀態碼為1,就權重下降20,實現VIP飄移;}
vrrp_instance VI_1 {state MASTERinterface ens33 #ens33:網絡接口名稱,需要調整為實際對應的名稱,可以執行ifconfig查看對應名字;virtual_router_id 51priority 100advert_int 1authentication {auth_type PASSauth_pass 1111 #可以理解為設置認證的密碼,這里可根據情況調整;}virtual_ipaddress {192.168.15.253/24 #vip設置一組虛擬IP地址,可根據實際情況的需要調整,}track_script {check_nginx #設置健康檢查}
}
EOF

如圖,啟動好keepalived的服務后可以輸入命令會把vip顯示出來,ip addr show

在這里插入圖片描述

編寫健康檢查腳本check_nginx.sh,這里為了演示隨便寫的個簡單腳本,實際使用環境中不應如此粗糙;

cat > /etc/keepalived/check_nginx.sh << 'EOF'
#!/bin/bash
#這里隨便寫了一個簡單的健康檢查腳本,計算nginx的16443端口的數量,如果數量是0就判定為服務不正常;
#16443是上文nginx配置的監聽端口,如果上面不是設置的16443這里需要調整為對應的;count=$(ss -antp |grep 16443 |egrep -cv "grep|$$")
if [ "$count" -eq 0 ];thenexit 1
elseexit 0
fi
EOF
  • 啟動 Keepalived

將keepalived為開機自啟動,并開啟服務

systemctl enable keepalived && systemctl start keepalived

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

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

相關文章

子網劃分實例

看到有人問這個問題&#xff1a; 想了一下&#xff0c;這是一個子網劃分的問題&#xff1a; 處理方法如圖&#xff1a; 這是一個子網劃分的問題 設備1用三層交換機&#xff0c;端口設置為路由模式&#xff0c;設備2和設備3為傻瓜交換機模式 設備2和設備3下掛設備都是26為掩碼&…

【前端知識】微前端框架qiankun

微前端框架qiankun 簡介一、核心思想二、主要特性三、關鍵技術四、使用場景五、使用示例六、優勢與劣勢七、總結 使用一、創建主應用&#xff08;Angular CLI項目&#xff09;二、創建子應用&#xff08;Vue CLI項目&#xff09;三、啟動并測試 使用場景一、大型前端應用的拆分…

Ubuntu22.04深度學習環境安裝【Anaconda+Pycharm】

anaconda可以提供多個獨立的虛擬環境&#xff0c;方便我們學習深度學習&#xff08;比如復現論文&#xff09;&#xff1b; Pycharm編輯器可以高效的編寫python代碼&#xff0c;也是一個很不錯的工具。 下面就記錄下Ubuntu22.04的安裝流程&#xff1a; 1.Anaconda安裝 下載Ana…

Transformer圖解

前言 transformer是目前NLP甚至是整個深度學習領域不能不提到的框架&#xff0c;同時大部分LLM也是使用其進行訓練生成模型&#xff0c;所以transformer幾乎是目前每一個機器人開發者或者人工智能開發者不能越過的一個框架。接下來本文將從頂層往下去一步步掀開transformer的面…

網絡安全在數字時代保護庫存數據中的作用

如今&#xff0c;通過軟件管理庫存已成為一種標準做法。企業使用數字工具來跟蹤庫存水平、管理供應鏈和規劃財務。 然而&#xff0c;技術的便利性也帶來了網絡威脅的風險。黑客將庫存數據視為有價值的目標。保護這些數據不僅重要&#xff0c;而且必不可少。 了解網絡安全及其…

種子流和花粉流怎么理解它們之間的大小關系

種子流和花粉流是植物繁殖和遺傳多樣性研究中的兩個重要概念&#xff0c;它們分別描述了種子和花粉在空間上的傳播過程。理解它們之間的大小關系&#xff0c;即傳播距離和對遺傳結構的影響&#xff0c;對于生態學和保護生物學具有重要意義。 種子流&#xff08;Seed Dispersal&…

唇形同步視頻生成工具:Wav2Lip

一、模型介紹 今天介紹一個唇形同步的工具-Wav2Lip&#xff1b;Wav2Lip是一種用于生成唇形同步&#xff08;lip-sync&#xff09;視頻的深度學習算法&#xff0c;它能夠根據輸入的音頻流自動為給定的人臉視頻添加準確的口型動作。 &#xff08;Paper&#xff09; Wav2Lip模型…

C編程求助問題:實驗報告類型如何畫出流程圖并編寫程序?

求助問題&#xff1a;請問一下怎么做 是實驗報告類型的 畫出流程圖并編寫程序&#xff1a; (1) 從鍵盤上任意輸入5個字母&#xff0c;按ASCII從小到大的順序依次排列輸出。 (2) 輸入某個字母&#xff0c;查找題(1)數組中是否存在&#xff0c;若存在則輸出該字母在數組中的位置。…

C—指針初階(2)

如果看完閣下滿意的話&#xff0c;能否一鍵三連呢&#xff0c;我的動力就是大家的支持與肯定&#xff0c;沖&#xff01; 二級指針 我們先看概念以及作用&#xff1a;用來存放一級指針的地址的指針 先看例子&#xff0c;我們逐一分析 我們先分析上面那個“1” 標注那里&#x…

Gradle-學習

本來沒有想了解Gradle&#xff0c;但是在想看SpringBoot源碼的時候發現&#xff0c;在SpringBoot2.2.8版本之后&#xff0c;不再使用maven進行構建&#xff0c;而是使用Gradle。想著把SpringBoot源碼導入idea學習下源碼&#xff0c;但是來來回回折騰了好幾回&#xff0c;都是報…

PE文件結構:NT頭部

NT 頭部&#xff08;NT Header&#xff09;是 PE 文件格式的核心部分之一&#xff0c;它包含了有關程序如何加載、執行以及一些重要的文件屬性。NT 頭部常被認為是 PE 頭部 的核心或“真正的”PE 頭部&#xff0c;因為操作系統加載 PE 文件時&#xff0c;首先會查找 DOS 頭部的…

Oracle EBS FA 如何打開關閉的資產會計期間?

用戶“運行折舊”,誤勾選為“關閉期間”,還有一部分資產還需要操作報廢和調整,希望后臺打開關閉的資產會計期 系統環境 RDBMS : 12.1.0.2.0 Oracle Applications : 12.2.9 解決方案 由官方提供SQL腳本代碼如下: /*rollback120.sql - for Release 12.X only(based on r…

算法基礎學習Day6(動態窗口)

文章目錄 1.題目2.題目解答1.最大連續1的個數題目及題目解析算法學習思路一:暴力解法思路二:滑動窗口 代碼提交 2.將x減到0的最小操作數題目及題目解析算法學習滑動窗口解決問題 代碼提交 1.題目 1004. 最大連續1的個數 III - 力扣&#xff08;LeetCode&#xff09;1658. 將 x…

基于springboot+vue的公交線路查詢系統(全套)

一、系統架構 前端&#xff1a;vue | element-ui | html 后端&#xff1a;springboot | mybatis-plus 環境&#xff1a;jdk1.8 | mysql | maven | nodejs 二、代碼及數據庫 三、功能介紹 01. web端-首頁1 02. web端-首頁2 03. web端-注冊 04. web端-登錄 …

ASP.NET Core8.0學習筆記(二十五)——EF Core Include導航數據加載之預加載與過濾

一、導航屬性數據加載 1.在EF Core中可以使用導航屬性來加載相關實體。 2.加載實體的三種方式&#xff1a; (1)預先加載&#xff1a;直接在查詢主體時就把對應的依賴實體查出來&#xff08;作為初始查詢的一部分&#xff09; (2)顯式加載&#xff1a;使用代碼指示稍后顯式的從…

Linux 基礎環境的開發工具以及使用(下)

1. make / Makefile 自動化構建的工具 1&#xff09;引入 在我們進行一些大型的工程的時候&#xff0c;代碼量是極其大&#xff0c;當我們代碼在進行一系列的編譯的時候&#xff0c;難免會出現一些錯誤&#xff0c;當我們對錯誤進行一系列的更改之后&#xff0c;難道我們需要…

沃豐科技智能客服在跨境電商獨立站中的核心角色

隨著全球化進程的加速和互聯網技術的不斷發展&#xff0c;跨境電商行業蓬勃興起&#xff0c;為消費者提供了更廣闊、更便捷的購物選擇。在這樣一個競爭激烈的市場環境中&#xff0c;優質的客戶服務成為了企業脫穎而出的關鍵。沃豐科技智能客服憑借其先進的技術和人性化的設計理…

uniapp 彈出軟鍵盤后打開二級頁面,解決其UI布局變動

軟鍵盤彈出&#xff0c;此時點擊某按鈕打開二級頁面&#xff0c;position:fixed 位于底部的按鈕不見了&#xff08;通過加高其區域&#xff0c;發現被下移動了&#xff09;&#xff0c;什么原因不清楚? 但是發現是軟鍵盤彈出導致&#xff0c;問題解決通過隱藏鍵盤再打開二級頁…

Centos7下搭建Prometheus+Grafana監控

Prometheus 監控 Prometheus 監控系統的架構包括以下組件&#xff1a; Prometheus Server&#xff1a; Prometheus 服務器是監控系統的核心組件&#xff0c;負責收集、存儲和處理指標數據。它定期從各種數據源&#xff08;如 Exporter、Agent 等&#xff09;拉取指標數據&…

MyBatis-Plus(為簡化開發而生)

一、MyBatis-Plus概述 官網&#xff1a; baomidou.com MyBatis-Plus&#xff08;簡稱 MP&#xff09; 在 MyBatis 的基礎上只做增強不做改變&#xff0c;為簡化開發、提高效率而生。 &#xff08;1&#xff09;單表操作 不需要編寫sql語句&#xff0c;封裝方法&#xff0c;…