国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

最簡單的kubernetes HA安裝方式-sealos詳解

spacewander / 2858人閱讀

摘要:集群三步安裝概述本文教你如何用一條命令構建高可用集群且不依賴和,也無需。通過內核對進行負載均衡,并且帶健康檢測。當然你也可以把用于一些其它場景,比如代理自己的服務等

kubernetes集群三步安裝
概述

本文教你如何用一條命令構建k8s高可用集群且不依賴haproxy和keepalived,也無需ansible。通過內核ipvs對apiserver進行負載均衡,并且帶apiserver健康檢測。

快速入門

sealos項目地址

準備條件

裝好docker并啟動docker

把離線安裝包 下載好拷貝到所有節點的/root目錄下, 不需要解壓,如果有文件服務器更好,sealos支持從一個服務器上wget到所有節點上

安裝

sealos已經放在離線包中,解壓后在kube/bin目錄下(可以解壓一個,獲取sealos bin文件)

sealos init 
    --master 192.168.0.2 
    --master 192.168.0.3 
    --master 192.168.0.4           # master地址列表
    --node 192.168.0.5             # node地址列表
    --user root                    # 服務用戶名
    --passwd your-server-password  # 服務器密碼,用于遠程執行命令
    --pkg kube1.14.1.tar.gz        # 離線安裝包名稱
    --version v1.14.1               # kubernetes 離線安裝包版本,這渲染kubeadm配置時需要使用

然后,就沒有然后了

其它參數:

 --kubeadm-config string   kubeadm-config.yaml local # 自定義kubeadm配置文件,如有這個sealos就不去渲染kubeadm配置
 --pkg-url string          http://store.lameleg.com/kube1.14.1.tar.gz download offline pakage url # 支持從遠程拉取離線包,省的每個機器拷貝,前提你得有個http服務器放離線包
 --vip string              virtual ip (default "10.103.97.2") # 代理master的虛擬IP,只要與你地址不沖突請不要改
清理
sealos clean 
    --master 192.168.0.2 
    --master 192.168.0.3 
    --master 192.168.0.4           # master地址列表
    --node 192.168.0.5             # node地址列表
    --user root                    # 服務用戶名
    --passwd your-server-password
增加節點

新增節點可直接使用kubeadm, 到新節點上解壓

cd kube/shell && init.sh
echo "10.103.97.2 apiserver.cluster.local" >> /etc/hosts   # using vip
kubeadm join 10.103.97.2:6443 --token 9vr73a.a8uxyaju799qwdjv 
    --master 10.103.97.100:6443 
    --master 10.103.97.101:6443 
    --master 10.103.97.102:6443 
    --discovery-token-ca-cert-hash sha256:7c2e69131a36ae2a042a339b33381c6d0d43887e2de83720eff5359e26aec866
安裝dashboard prometheus等

離線包里包含了yaml配置和鏡像,用戶按需安裝。

cd /root/kube/conf
kubectl taint nodes --all node-role.kubernetes.io/master-  # 去污點,根據需求看情況,去了后master允許調度
kubectl apply -f heapster/ # 安裝heapster, 不安裝dashboard上沒監控數據
kubectl apply -f heapster/rbac 
kubectl apply -f dashboard  # 裝dashboard
kubectl apply -f prometheus # 裝監控

是不是很神奇,到底是如何做到這點的?那就需要去看下面兩個東西

關于超級kubeadm

我們定制了kubeadm,做了兩個事情:

在每個node節點上增加了一條ipvs規則,其后端代理了三個master

在node上起了一個lvscare的static pod去守護這個 ipvs, 一旦apiserver不可訪問了,會自動清理掉所有node上對應的ipvs規則, master恢復正常時添加回來。

通過這樣的方式實現每個node上通過本地內核負載均衡訪問masters:

  +----------+                       +---------------+  virturl server: 127.0.0.1:6443
  | mater0   |<----------------------| ipvs nodes    |    real servers:
  +----------+                      |+---------------+            10.103.97.200:6443
                                    |                             10.103.97.201:6443
  +----------+                      |                             10.103.97.202:6443
  | mater1   |<---------------------+
  +----------+                      |
                                    |
  +----------+                      |
  | mater2   |<---------------------+
  +----------+

這是一個非常優雅的方案

其實sealos就是幫你執行了如下命令:
super-kubeadm

在你的node上增加了三個東西:

cat /etc/kubernetes/manifests   # 這下面增加了lvscare的static pod
ipvsadm -Ln                     # 可以看到創建的ipvs規則
cat /etc/hosts                  # 增加了虛擬IP的地址解析
關于lvscare

這是一個超級簡單輕量級的lvs創建與守護進程,支持健康檢查,底層與kube-proxy使用的是相同的庫,支持HTTP的健康檢測。

清理機器上的IPVS規則

ipvsadm -C

啟動幾個nginx作為ipvs代理后端的realserver

docker run -p 8081:80 --name nginx1 -d nginx
docker run -p 8082:80 --name nginx2 -d nginx
docker run -p 8083:80 --name nginx3 -d nginx

啟動lvscare守護它們

lvscare care --vs 10.103.97.12:6443 --rs 127.0.0.1:8081 --rs 127.0.0.1:8082 --rs 127.0.0.1:8083 
--health-path / --health-schem http

可以看到規則已經被創建

ipvsadm -Ln
[root@iZj6c9fiza9orwscdhate4Z ~]# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  10.103.97.12:6443 rr
  -> 127.0.0.1:8081               Masq    1      0          0         
  -> 127.0.0.1:8082               Masq    1      0          0         
  -> 127.0.0.1:8083               Masq    1      0          0 

curl vip:

[root@iZj6c9fiza9orwscdhate4Z ~]# curl 10.103.97.12:6443 



Welcome to nginx!

刪除一個nginx,規則就少了一條

[root@iZj6c9fiza9orwscdhate4Z ~]# docker stop nginx1
nginx1
[root@iZj6c9fiza9orwscdhate4Z ~]# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  10.103.97.12:6443 rr
  -> 127.0.0.1:8082               Masq    1      0          0         
  -> 127.0.0.1:8083               Masq    1      0          1 

再刪除一個:

[root@iZj6c9fiza9orwscdhate4Z ~]# docker stop nginx2
nginx2
[root@iZj6c9fiza9orwscdhate4Z ~]# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  10.103.97.12:6443 rr
  -> 127.0.0.1:8083               Masq    1      0          0 

此時VIP任然可以訪問:

[root@iZj6c9fiza9orwscdhate4Z ~]# curl 10.103.97.12:6443 



Welcome to nginx!

全部刪除, 規則就自動被清除光了, curl也curl不通了,因為沒realserver可用了

[root@iZj6c9fiza9orwscdhate4Z ~]# docker stop nginx3
nginx3
[root@iZj6c9fiza9orwscdhate4Z ~]# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  10.103.97.12:6443 rr
[root@iZj6c9fiza9orwscdhate4Z ~]# curl 10.103.97.12:6443 
curl: (7) Failed connect to 10.103.97.12:6443; 拒絕連接

再把nginx都啟動起來,規則就自動被加回來

[root@iZj6c9fiza9orwscdhate4Z ~]# docker start nginx1 nginx2 nginx3
nginx1
nginx2
nginx3
[root@iZj6c9fiza9orwscdhate4Z ~]# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  10.103.97.12:6443 rr
  -> 127.0.0.1:8081               Masq    1      0          0         
  -> 127.0.0.1:8082               Masq    1      0          0         
  -> 127.0.0.1:8083               Masq    1      0          0 

所以sealos中,上面apiserver就是上面三個nginx,lvscare會對其進行健康檢測。

當然你也可以把lvscare用于一些其它場景,比如代理自己的TCP服務等

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/27772.html

相關文章

  • 構建生產環境可用高可用kubernetes集群

    摘要:集群三步安裝構建生產環境可用的高可用集群項目地址特性支持任意節點的集群自動構建,且集群使用安全證書,通過方式啟動,這樣可以通過監控來監控集群健康狀態支持多節點,允許任意一臺宕機集群功能不受影響使用集群,配置安全證書,網絡管控數據無單點故障包 kubernetes集群三步安裝 構建生產環境可用的高可用kubernetes集群 | sealos項目地址 特性 [x] 支持任意節點的et...

    ShevaKuilin 評論0 收藏0
  • 閑談 Kubernetes 主要特性和經驗分享

    摘要:主要介紹的主要特性和一些經驗。先從整體上看一下的一些理念和基本架構,然后從網絡資源管理存儲服務發現負載均衡高可用安全監控等方面向大家簡單介紹的這些主要特性。集群范圍內的監控主要由和如構建。 主要介紹 Kubernetes 的主要特性和一些經驗。先從整體上看一下Kubernetes的一些理念和基本架構, 然后從網絡、 資源管理、存儲、服務發現、負載均衡、高可用、rolling upgra...

    Guakin_Huang 評論0 收藏0
  • 閑談 Kubernetes 主要特性和經驗分享

    摘要:主要介紹的主要特性和一些經驗。先從整體上看一下的一些理念和基本架構,然后從網絡資源管理存儲服務發現負載均衡高可用安全監控等方面向大家簡單介紹的這些主要特性。集群范圍內的監控主要由和如構建。 主要介紹 Kubernetes 的主要特性和一些經驗。先從整體上看一下Kubernetes的一些理念和基本架構, 然后從網絡、 資源管理、存儲、服務發現、負載均衡、高可用、rolling upgra...

    shevy 評論0 收藏0
  • Kubernetes v1.0特性解析

    摘要:問題是不是定義的一個的容器集群是只部署在同一個主機上楊樂到目前是,同一個里的是部署在同一臺主機的。問題這個圖里的是安裝在哪里的所有的客戶端以及會連接這個嘛楊樂可以任意地方,只要能訪問到集群,會作為的出口。 kubernetes1.0剛剛發布,開源社區400多位貢獻者一年的努力,多達14000多次的代碼提交,最終達到了之前預計的milestone, 并意味著這個開源容器編排系統可以正式在...

    HackerShell 評論0 收藏0
  • Kubernetes集群上部署和管理JFrog Artifactory

    摘要:在本文中我們將介紹如何使用在集群上部署和管理。非常強大,它能夠在任何地方管理集群,因此我們將在實例上以獨立模式啟動,使用它在中部署集群。現在,當你點擊,就會把部署到你的集群上。當安裝完成后,紅色的進度條會變更為綠色。 JFrog Artifactory是一個artifacts倉庫管理平臺,它支持所有的主流打包格式、構建工具和持續集成(CI)服務器。它將所有二進制內容保存在一個單一位置并...

    dunizb 評論0 收藏0

發表評論

0條評論

spacewander

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<