008.Kubernetes二進位制部署Nginx實現高可用
一 Nginx代理實現kube-apiserver高可用
1.1 Nginx實現高可用
基於 nginx 代理的 kube-apiserver 高可用方案。 控制節點的 kube-controller-manager、kube-scheduler 是多例項部署,所以只要有一個例項正常,就可以保證高可用; 叢集內的 Pod 使用 K8S 服務域名 kubernetes 訪問 kube-apiserver, kube-dns 會自動解析出多個 kube-apiserver 節點的 IP,所以也是高可用的; 在每個節點起一個 nginx 程序,後端對接多個 apiserver 例項,nginx 對它們做健康檢查和負載均衡; kubelet、kube-proxy、controller-manager、scheduler 通過本地的 nginx(監聽 127.0.0.1)訪問 kube-apiserver,從而實現 kube-apiserver 的高可用; 從而基於 nginx 4 層透明代理功能實現 K8S 節點( master 節點和 worker 節點)高可用訪問 kube-apiserver 。1.2 下載編譯Nginx
1 [root@k8smaster01 ~]# cd /opt/k8s/work 2 [root@k8smaster01 work]# wget http://nginx.org/download/nginx-1.15.3.tar.gz 3 [root@k8smaster01 work]# tar -xzvf nginx-1.15.3.tar.gz 4 [root@k8smaster01 ~]# cd /opt/k8s/work/nginx-1.15.3/ 5 [root@k8smaster01 nginx-1.15.3]# mkdir nginx-prefix 6 [root@k8smaster01 nginx-1.15.3]# ./configure --with-stream --without-http --prefix=$(pwd)/nginx-prefix --without-http_uwsgi_module --without-http_scgi_module --without-http_fastcgi_module 7 [root@k8smaster01 ~]# cd /opt/k8s/work/nginx-1.15.3/ 8 [root@k8smaster01 nginx-1.15.3]# make && make install
- --with-stream:開啟 4 層透明轉發(TCP Proxy)功能;
- --without-xxx:關閉所有其他功能,這樣生成的動態連結二進位制程式依賴最小。
- [root@k8smaster01 ~]# cd /opt/k8s/work/nginx-1.15.3/
- [root@k8smaster01 nginx-1.15.3]# ./nginx-prefix/sbin/nginx -v
1.3 驗證編譯後的Nginx
1 [root@k8smaster01 ~]# cd /opt/k8s/work/nginx-1.15.3 2 [root@k8smaster01 nginx-1.15.3]# ./nginx-prefix/sbin/nginx -v 3 nginx version: nginx/1.15.3 4 [root@k8smaster01 nginx-1.15.3]# ldd ./nginx-prefix/sbin/nginx #檢視 nginx 動態連結的庫 5 linux-vdso.so.1 => (0x00007ffdda980000) 6 libdl.so.2 => /lib64/libdl.so.2 (0x00007feb37300000) 7 libpthread.so.0 => /lib64/libpthread.so.0 (0x00007feb370e4000) 8 libc.so.6 => /lib64/libc.so.6 (0x00007feb36d17000) 9 /lib64/ld-linux-x86-64.so.2 (0x00007feb37504000)
1.4 安裝和部署Nginx
1 [root@k8smaster01 ~]# cd /opt/k8s/work 2 [root@k8smaster01 work]# source /opt/k8s/bin/environment.sh 3 [root@k8smaster01 work]# for master_ip in ${MASTER_IPS[@]} 4 do 5 echo ">>> ${master_ip}" 6 mkdir -p /opt/k8s/kube-nginx/{conf,logs,sbin} 7 done #建立Nginx目錄 8 [root@k8smaster01 ~]# cd /opt/k8s/work 9 [root@k8smaster01 work]# source /opt/k8s/bin/environment.sh 10 [root@k8smaster01 work]# for master_ip in ${MASTER_IPS[@]} 11 do 12 echo ">>> ${master_ip}" 13 scp /opt/k8s/work/nginx-1.15.3/nginx-prefix/sbin/nginx root@${master_ip}:/opt/k8s/kube-nginx/sbin/kube-nginx 14 ssh root@${master_ip} "chmod a+x /opt/k8s/kube-nginx/sbin/*" 15 ssh root@${master_ip} "mkdir -p /opt/k8s/kube-nginx/{conf,logs,sbin}" 16 done #分發Nginx二進位制
1.5 配置Nginx 四層透明轉發
1 [root@k8smaster01 ~]# cd /opt/k8s/work 2 [root@k8smaster01 work]# cat > kube-nginx.conf <<EOF 3 worker_processes 1; 4 5 events { 6 worker_connections 1024; 7 } 8 9 stream { 10 upstream backend { 11 hash $remote_addr consistent; 12 server 172.24.8.71:6443 max_fails=3 fail_timeout=30s; 13 server 172.24.8.72:6443 max_fails=3 fail_timeout=30s; 14 server 172.24.8.73:6443 max_fails=3 fail_timeout=30s; 15 } 16 17 server { 18 listen 127.0.0.1:8443; 19 proxy_connect_timeout 1s; 20 proxy_pass backend; 21 } 22 } 23 EOF 24 [root@k8smaster01 ~]# cd /opt/k8s/work 25 [root@k8smaster01 work]# source /opt/k8s/bin/environment.sh 26 [root@k8smaster01 work]# for master_ip in ${MASTER_IPS[@]} 27 do 28 echo ">>> ${master_ip}" 29 scp kube-nginx.conf root@${master_ip}:/opt/k8s/kube-nginx/conf/kube-nginx.conf 30 done #分發Nginx四層透明代理配置檔案
1.6 配置Nginx system
1 [root@k8smaster01 ~]# cd /opt/k8s/work 2 [root@k8smaster01 work]# cat > kube-nginx.service <<EOF 3 [Unit] 4 Description=kube-apiserver nginx proxy 5 After=network.target 6 After=network-online.target 7 Wants=network-online.target 8 9 [Service] 10 Type=forking 11 ExecStartPre=/opt/k8s/kube-nginx/sbin/kube-nginx -c /opt/k8s/kube-nginx/conf/kube-nginx.conf -p /opt/k8s/kube-nginx -t 12 ExecStart=/opt/k8s/kube-nginx/sbin/kube-nginx -c /opt/k8s/kube-nginx/conf/kube-nginx.conf -p /opt/k8s/kube-nginx 13 ExecReload=/opt/k8s/kube-nginx/sbin/kube-nginx -c /opt/k8s/kube-nginx/conf/kube-nginx.conf -p /opt/k8s/kube-nginx -s reload 14 PrivateTmp=true 15 Restart=always 16 RestartSec=5 17 StartLimitInterval=0 18 LimitNOFILE=65536 19 20 [Install] 21 WantedBy=multi-user.target 22 EOF
1.7 分發Nginx systemd
1 [root@k8smaster01 ~]# cd /opt/k8s/work 2 [root@k8smaster01 work]# source /opt/k8s/bin/environment.sh 3 [root@k8smaster01 work]# for master_ip in ${MASTER_IPS[@]} 4 do 5 echo ">>> ${master_ip}" 6 scp kube-nginx.service root@${master_ip}:/etc/systemd/system/ 7 done
二 啟動並驗證
2.1 啟動Nginx
1 [root@k8smaster01 ~]# cd /opt/k8s/work 2 [root@k8smaster01 work]# source /opt/k8s/bin/environment.sh 3 [root@k8smaster01 work]# for master_ip in ${MASTER_IPS[@]} 4 do 5 echo ">>> ${master_ip}" 6 ssh root@${master_ip} "systemctl daemon-reload && systemctl enable kube-nginx && systemctl restart kube-nginx" 7 done
2.2 檢查Nginx服務
1 [root@k8smaster01 ~]# cd /opt/k8s/work 2 [root@k8smaster01 work]# source /opt/k8s/bin/environment.sh 3 [root@k8smaster01 work]# for master_ip in ${MASTER_IPS[@]} 4 do 5 echo ">>> ${master_ip}" 6 ssh root@${master_ip} "systemctl status kube-nginx |grep 'Active:'" 7 done
相關推薦
008.Kubernetes二進位制部署Nginx實現高可用
一 Nginx代理實現kube-apiserver高可用 1.1 Nginx實現高可用 基於 nginx 代理的 kube-apiserver 高可用方案。 控制節點的 kube-controller-manager、kube-scheduler 是多例項部署,所以只要有一個例項正常,就可以保證高可用; 叢集
Keepalived+Nginx實現高可用負載均衡集群
連接 靜態 adf -1 rip mail fff hostname dex 一 環境介紹 1.操作系統CentOS Linux release 7.2.1511 (Core) 2.服務keepalived+lvs雙主高可用負載均衡集群及LAMP應用keepalived-1
Keepalived+Nginx實現高可用(HA)
nginx+keepalived ha高可用高可用有2中方式。1、Nginx+keepalived 主從配置這種方案,使用一個vip地址,前端使用2臺機器,一臺做主,一臺做備,但同時只有一臺機器工作,另一臺備份機器在主機器不出現故障的時候,永遠處於浪費狀態,對於服務器不多的網站,該方案不經濟實惠。2、Ngin
keepalived+nginx實現高可用
決定 toc state ipv4 一次 根據 並且 ive lob 方案規劃 vip ip hostname nginx端口 系統 192.168.88.100 182.168.88.1 nginx-01 80 CentOS7.3.1611 192.168.
keepalived+Nginx實現高可用集群
auth timeout cati -c stat -h track ast 顯示 keepalived安裝Nginx安裝 配置keepalived#修改配置vim /etc/keepalived/keepalived.conf #配置文件 ! Config
lvs + keepalived + nginx 實現高可用
1.目的 lvs是四層的負載均衡,keepalived為lvs提供高可用服務,同時檢查後端nginx的健康狀態,nginx主要用來做七層的負載均衡 2.拓撲圖 伺服器 IP地址 說明 Director主節點 192.168.3.105 lvs keepalived Director備節點
keepalived+nginx實現高可用+tomcat
pro location add protoc ins ade 要求 網卡 fire 1、keepalived的yum安裝 安裝依賴包[root@localhost ~]# yum install -y curl gcc openssl-devel libnl3-devel
keepalived + nginx 實現高可用之遠端面籤專案
面籤系統部署文件 1. 準備工作 1.1 前提 運維應確保各個系統網路策略已經開通並驗證通過 運維需提供安裝系統的DVD光碟或映象 雲屋視訊模組由雲屋工程師負責部署安裝 客服系統由客服系統工程師負責部署安裝 面籤系統由面籤系統工程師負責部署安裝 1.2 開始準備工作 //建立使用者
keepalived + nginx 實現高可用之遠程面簽項目
使用說明 pat 使用 部署 mount use top service ngx 面簽系統部署文檔 1. 準備工作 1.1 前提 運維應確保各個系統網絡策略已經開通並驗證通過 運維需提供安裝系統的DVD光盤或鏡像 雲屋視頻模塊由雲屋工程師負責部署安裝 客服系統由客服系統工
分散式架構學習之:Keepalived+Nginx實現高可用Web負載均衡
一、場景需求 二、Keepalived 簡要介紹 Keepalived 是一種高效能的伺服器高可用或熱備解決方案,Keepalived 可以用來防止伺服器單點故障的發生,通過配合 Nginx 可以實現 web 前端服務的高可用。 Keepalived 以 VRRP
Nginx實現高可用(了解)
本地倉庫 ima 可用 說明 本地 pom info 現在 使用 ---恢復內容開始--- 首先說明問題,我需要使用PageHelper插件,但是這個分頁插件是改造過的,是一個pom工程,現在需要當作一個jar包使用,所以需要安裝到本地倉庫 1、 2、 3、 4、
RHCS套件+Nginx實現高可用負載均衡
紅帽叢集套件(RedHat Cluter Suite, RHCS)是一套綜合的軟體元件,可以通過在部署時採用不同的配置,以滿足你對高可用性,負載均衡,可擴充套件性,檔案共享和節約成本的需要。 它提供有如下兩種不同型別的叢集: 1、高可用性:應用/服務故障切換-通過建立n
主題:分散式架構高可用架構_Keepalived+Nginx實現高可用Web負載均衡
一、場景需求 二、Keepalived 簡要介紹 Keepalived 是一種高效能的伺服器高可用或熱備解決方案,Keepalived 可以用來防止伺服器單點故障的發生,通過配合 Nginx 可以實現 web 前端服務的高可用。 Keepalived 以 VRRP
Keepalived + Nginx 實現高可用(雙機熱備) Web 負載均衡 安裝測試筆記
system ati 根據 properly 節點配置 sys .gz ive error: keepalived是什麽 keepalived是集群管理中保證集群高可用的一個服務軟件,其功能類似於heartbeat,用來防止單點故障。 keepalived工作原理 k
利用RHCS Nginx Fence實現高可用叢集部署
叢集概念 HA(High Available)高可用叢集是減少服務中斷時間為目的的伺服器叢集技術,也是保證業務連續性的有效解決方案。叢集,一般有兩個或者兩個以上的計算機組成,這些組成叢集的計算機被稱為節點。 其中由兩個節點組成的叢集被稱為雙機熱備,即使用兩臺
Keepalived實現高可用Nginx反向代理
keepalived實現高可用nginx反向代理由於好久沒有接觸過負載相關的調試了復習一下實驗系統:(1)CentOS 6.5_x86_64;(2)共有二臺主機,本實驗以ip地址來命名主機,即10主機、11主機。實驗前提:防火墻和selinux都關閉,主機之間時間同步實驗軟件:nginx-1.10.2-1.e
nginx實現請求的負載均衡 + keepalived實現nginx的高可用
java 谷歌 you proc max 業務需求 html state opus 前言 使用集群是網站解決高並發、海量數據問題的常用手段。當一臺服務器的處理能力、存儲空間不足時,不要企圖去換更強大的服務器,對大型網站而言,不管多麽強大的服務器,都滿足不了網站持續增長的
初識keepalived(三)——keepalived與nginx代理實現高可用
keepalived nginx 背景介紹nginx除了可以作為web服務器外,同時也是一個反向代理軟件,nginx不能完全取代apache,所以很多場景下nginx作為apache的反向代理服務器。nginx運行在用戶空間,代替用戶向服務器發起請求,請求返回時再經由nginx服務器返回給用戶。不同於
HAProxy+Varnish+LNMP實現高可用負載均衡動靜分離集群部署
else 應用服務器 bash == 開機啟動 多少 heal 啟用 4.0 轉自http://bbs.hfteams.com/forum.php?mod=viewthread&tid=11&extra=page%3D1 HAProxy+Varnish+LN
nginx+keepalived實現高可用負載均衡
其中 centos7.3 9.png IT 配置文件 bsp 是我 add nginx 環境: centos7.3虛擬機A 10.0.3.46 centos7.3虛擬機B 10.0.3.110 虛擬機A和B都需要安裝nginx和keepalived(過程省略,其中keepa