国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

k8s容器集群工作負載節(jié)點跨越多個云計算廠商

這篇具有很好參考價值的文章主要介紹了k8s容器集群工作負載節(jié)點跨越多個云計算廠商。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

1. 背景介紹

??隨著亞馬遜云、阿里云、華為云、騰訊云等云計算服務(wù)廠商越來越安全、穩(wěn)定,以及價格越來越便宜,越來越多的企業(yè)或個人開始嘗試或正在使用云計算服務(wù)廠商提供的IaaS服務(wù)替代自建IDC機房中的基礎(chǔ)設(shè)施資源。面對各個云計算廠商的營銷套路,不少企業(yè)不知道選哪家云商的服務(wù)比較合適,一怕被綁架,上車容易下車難,第一年免費用,第二年沒折扣;二怕今年上阿里,明年華為更便宜,后年騰訊更優(yōu)惠,服務(wù)遷移難。如何讓業(yè)務(wù)在不同云商之間隨意切換呢?這樣就能實現(xiàn)想用哪家的云就選哪家的資源。
??下邊通過實驗的方式嘗試一種實現(xiàn)上述訴求的方法,即搭建一套k8s容器集群平臺,不同云商上云主機部署工作負載節(jié)點,并注冊到k8s集群。實現(xiàn)一套容器集群管理多個云商的工作負載節(jié)點,于是根據(jù)云商的優(yōu)惠政策,動態(tài)的將容器化部署的服務(wù)有側(cè)重點的分布到性價比更高的云商上。
k8s容器集群工作負載節(jié)點跨越多個云計算廠商
??如上圖所示,華為云上部署3個節(jié)點,阿里云上部署3個節(jié)點,其中華為云上 k8s-master1 與 k8s-master2 為 k8s 集群的管理服務(wù),k8s-node1 為 k8s 集群的工作負載節(jié)點,阿里云上的 k8s-node2、k8s-node3、k8s-node4 為 k8s 集群的工作負載節(jié)點。

2. 跨云商內(nèi)網(wǎng)打通

??通過建立GRE隧道,在華為云 k8s-master2 與阿里云 k8s-node2 節(jié)點之間建立 GRE 隧道,打通華為云與阿里云內(nèi)網(wǎng)通信。同時使用 iptables 設(shè)置流量轉(zhuǎn)發(fā)規(guī)則,例如 k8s-master2 通過設(shè)置 iptables 規(guī)則將阿里云上的主機對 k8s-master1 與 k8s-node1 的流量進行轉(zhuǎn)發(fā),同理,k8s-node2 通過設(shè)置 iptables 規(guī)則將華為云上的主機對 k8s-node3 與 k8s-node4 的流量進行轉(zhuǎn)發(fā),從而實現(xiàn)華為云與阿里云上所有主機之間的內(nèi)網(wǎng)互通。
??建立 GRE 隧道的方法請參考 構(gòu)建GRE隧道打通不同云商的云主機內(nèi)網(wǎng) 。這篇文章主要介紹了在兩個云商之間搭建 GRE 隧道實現(xiàn)兩個內(nèi)網(wǎng)互通的方法。由于使用 route 工具添加的路由并不會持久話的保存(服務(wù)器重啟將會丟失),所以,本章將會介紹如何搭建 GRE 隧道,并持久話保存。

2.1 阿里云環(huán)境安裝部署

2.1.1 加載驅(qū)動模塊

??在阿里云 k8s-node2 節(jié)點上執(zhí)行下邊命令

cat >  /etc/sysctl.d/gre.conf <<EOF
net.ipv4.ip_forward=1
EOF

2.1.2 添加 GRE 隧道開機啟動腳本

??在阿里云 k8s-node2 節(jié)點上執(zhí)行下邊命令

cat > /etc/init.d/gre.sh <<EOF
#!/bin/bash
ip tunnel del tunnel999
ip tunnel add tunnel999 mode gre remote 112.124.59.21 local 172.26.32.235
ip link set tunnel999 up mtu 1476
ip addr add 192.168.100.2 peer 192.168.100.1/32 dev tunnel999
ip route add 192.168.0.0/24 dev tunnel999
EOF

chmod +x /etc/init.d/gre.sh

cat > /usr/lib/systemd/system/gre.service <<EOF
[Unit]
Description=GRE Service
After=network.target

[Service]
Type=oneshot
User=root
ExecStart=/etc/init.d/gre.sh

[Install]
WantedBy=multi-user.target
EOF

systemctl enable gre
systemctl start gre

2.1.3 配置 iptalbes 規(guī)則

??在阿里云 k8s-node2 節(jié)點上執(zhí)行下邊命令

iptables -t nat -A POSTROUTING -o eth0 -s 192.168.100.1 -j MASQUERADE
iptables -A FORWARD -s 192.168.100.1 -o eth0 -j ACCEPT


iptables -t nat -A POSTROUTING -o tunnel999 -s 192.168.0.0/24 -j MASQUERADE
iptables -A FORWARD -s 192.168.0.0/24 -o tunnel999 -j ACCEPT

2.1.4 在其他節(jié)點配置路由

??在阿里云 k8s-node3 和 k8s-node4 節(jié)點上執(zhí)行下邊的命令,添加華為云內(nèi)網(wǎng)CIDR路由到 k8s-node2 節(jié)點內(nèi)網(wǎng)IP上。

route add -net 192.168.0.0/24 gw 172.26.32.235

??添加完成后 k8s-node3 和 k8s-node4 暫時無法訪問華為云主機內(nèi)網(wǎng)IP,等待華為云上安裝部署完成后,才可以訪問華為云上主機內(nèi)網(wǎng)IP。

2.2 華為云上安裝部署

2.2.1 加載驅(qū)動模塊

??在華為云 k8s-master2 節(jié)點上執(zhí)行下邊命令

cat >  /etc/sysctl.d/gre.conf <<EOF
net.ipv4.ip_forward=1
EOF

2.2.2 添加 GRE 隧道開機啟動腳本

??在華為云 k8s-master2 節(jié)點上執(zhí)行下邊命令

cat > /etc/init.d/gre.sh <<EOF
#!/bin/bash
ip tunnel del tunnel999
ip tunnel add tunnel999 mode gre remote 114.116.84.123 local 192.168.0.200
ip link set tunnel999 up mtu 1476
ip addr add 192.168.100.1 peer 192.168.100.2/32 dev tunnel999
ip route add 172.26.32.0/24 dev tunnel999
EOF

chmod +x /etc/init.d/gre.sh

cat > /usr/lib/systemd/system/gre.service <<EOF
[Unit]
Description=GRE Service
After=network.target

[Service]
Type=oneshot
User=root
ExecStart=/etc/init.d/gre.sh

[Install]
WantedBy=multi-user.target
EOF

systemctl enable gre
systemctl start gre

2.2.3 配置 iptalbes 規(guī)則

??在華為云 k8s-master2 節(jié)點上執(zhí)行下邊命令

iptables -t nat -A POSTROUTING -o eth0 -s 192.168.100.2 -j MASQUERADE
iptables -A FORWARD -s 192.168.100.2 -o eth0 -j ACCEPT


iptables -t nat -A POSTROUTING -o tunnel999 -s 172.26.32.0/24 -j MASQUERADE
iptables -A FORWARD -s 172.26.32.0/24 -o tunnel999 -j ACCEPT

2.2.4 在其他節(jié)點配置路由

??在華為云 k8s-master1 和 k8s-node1 節(jié)點上執(zhí)行下邊命令,添加阿里云內(nèi)網(wǎng)CIDR路由到 k8s-master2 節(jié)點內(nèi)網(wǎng)IP上。

route add -net 172.26.32.0/24 gw 192.168.0.200

??添加完成后就可以在 k8s-node1 和 k8s-master1 節(jié)點上訪問阿里云上所有云主機的內(nèi)網(wǎng)IP,并且阿里云上的所有云主機可以訪問華為云上所有云主機的內(nèi)網(wǎng)IP。

3. 構(gòu)建K8S集群

??首先在華為云上安裝部署 kubernetes 集群主節(jié)點,具體操作步驟請參考:部署安裝kubernetes集群。

4. 容器集群跨云商添加工作負載節(jié)點

??在阿里云主機上安裝 kubernetes worker 節(jié)點配置。主要涉及到:Linux 內(nèi)核升級,Containerd 容器安裝,Linux 參數(shù)優(yōu)化,Kubelet與Kube-Proxy 組件部署。下邊操作以阿里云 172.26.32.235 主機為例。

4.1 安裝Containerd 容器服務(wù)

  • 在線安裝 containerd 服務(wù)
yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

yum install containerd
  • 導(dǎo)出 containerd 默認配置
containerd config default > /etc/containerd/config.toml
  • 編輯 /etc/containerd/config.toml 文件
	sandbox_image = "registry.k8s.io/pause:3.6"
    
    替換成
    
    sandbox_image = "registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.6"
	[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc.options]
        SystemdCgroup = false
        
	替換成
	
	[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc.options]
        SystemdCgroup = true

添加國內(nèi)鏡像倉庫,這個非常關(guān)鍵,否則將會導(dǎo)致鏡像下載失敗,Pod中服務(wù)無法啟動。

    [plugins."io.containerd.grpc.v1.cri".registry]
      ......
      [plugins."io.containerd.grpc.v1.cri".registry.mirrors]
      
      在containerd 配置文件中找到上邊內(nèi)容,并在此處添加下邊兩行, 注意縮進,下邊兩行內(nèi)容與上邊一行有2個空格的縮進,下邊兩行內(nèi)容之間也存在2個空格的縮進。
      
        [plugins."io.containerd.grpc.v1.cri".registry.mirrors."docker.io"]
          endpoint = ["http://hub-mirror.c.163.com","https://docker.mirrors.ustc.edu.cn","https://registry.docker-cn.com"]
  • 重啟 containerd 容器運行時服務(wù)
systemctl enable containerd
systemctl restart containerd

4.2 Linux 參數(shù)優(yōu)化

??Linux 參數(shù)優(yōu)化請參考 K8S安裝過程七:Kubernetes 節(jié)點配置調(diào)整

4.3 Kubernetes Worker 節(jié)點組件安裝

4.3.1 獲取安裝包

??從華為云已經(jīng)安裝部署好的節(jié)點上獲取 kubernetes 的安裝包。詳細過程請參考:K8S安裝過程九:Kubernetes Worker 節(jié)點安裝

  • 獲取安裝包以及ssl證書。
scp root@192.168.0.200:/opt/kubernetes.tar.gz /opt/
mkdir -p /etc/kubernetes/ssl
scp root@192.168.0.200:/etc/kubernetes/ssl/* /etc/kubernetes/ssl/

cd /opt
tar -xvf kubernetes.tar.gz
mkdir /opt/kubernetes/manifests

4.3.2 kubelet 創(chuàng)建 systemctl 啟動服務(wù)

cat > /usr/lib/systemd/system/kubelet.service <<EOF
[Unit]
Description=Kubernetes Kubelet
After=docker.service

[Service]
EnvironmentFile=/opt/kubernetes/cfg/kubelet.conf
ExecStart=/opt/kubernetes/server/bin/kubelet \$KUBELET_OPTS
Restart=on-failure
LimitNOFILE=65536

[Install]
WantedBy=multi-user.target
EOF

4.3.3 啟動 kubelet

systemctl enable kubelet
systemctl start kubelet
  • 查看 kubelet 服務(wù)啟動狀態(tài)
systemctl status kubelet

k8s容器集群工作負載節(jié)點跨越多個云計算廠商

4.3.4 為 kube-proxy 創(chuàng)建 systemctl 啟動服務(wù)

cat > /usr/lib/systemd/system/kube-proxy.service <<EOF
[Unit]
Description=Kubernetes Proxy
After=network.target

[Service]
EnvironmentFile=/opt/kubernetes/cfg/kube-proxy.conf
ExecStart=/opt/kubernetes/server/bin/kube-proxy \$KUBE_PROXY_OPTS
Restart=on-failure
RestartSec=10
LimitNOFILE=65536

[Install]
WantedBy=multi-user.target
EOF

4.3.5 啟動 kube-proxy 服務(wù)

systemctl enable kube-proxy
systemctl start kube-proxy
  • 查看 kube-proxy 服務(wù)的啟動狀態(tài)
systemctl status kube-proxy

k8s容器集群工作負載節(jié)點跨越多個云計算廠商

??到此,跨越不同云商搭建容器集群完成,此時的容器集群中工作負載節(jié)點涵蓋了華為云與阿里云。后續(xù)添加其他云商的云主機,流程與上述類似。
k8s容器集群工作負載節(jié)點跨越多個云計算廠商文章來源地址http://www.zghlxwxcb.cn/news/detail-407154.html

5. 總結(jié)

  • 容器集群中工作負載節(jié)點跨越多個云商,不同云商之間的服務(wù)互相調(diào)用實際上走的是公網(wǎng)流量,如果公網(wǎng)帶寬資源不足,將會導(dǎo)致跨云服務(wù)調(diào)用存在性能瓶頸。
  • 采用跨云商部署容器集群,建議將不同云商工作負載中運行的業(yè)務(wù)具備獨立性,也即是減少不同云商上服務(wù)之間的互相調(diào)用。
  • 涉及到中間件的使用時,需要考慮跨越云商訪問中間件時,保證訪問性能。

到了這里,關(guān)于k8s容器集群工作負載節(jié)點跨越多個云計算廠商的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • K8s 部署 CNI 網(wǎng)絡(luò)組件+k8s 多master集群部署+負載均衡

    K8s 部署 CNI 網(wǎng)絡(luò)組件+k8s 多master集群部署+負載均衡

    ------------------------------ 部署 CNI 網(wǎng)絡(luò)組件 ------------------------------ ---------- 部署 flannel ---------- K8S 中 Pod 網(wǎng)絡(luò)通信: ●Pod 內(nèi)容器與容器之間的通信 在同一個 Pod 內(nèi)的容器(Pod 內(nèi)的容器是不會跨宿主機的)共享同一個網(wǎng)絡(luò)命名空間,相當于它們在同一臺機器上一樣,可以用 lo

    2024年02月08日
    瀏覽(23)
  • k8s集群刪除master節(jié)點

    k8s集群刪除master節(jié)點

    1.在另外的master節(jié)點執(zhí)行以下命令 kubectl get node? ? ? #查看需要刪除的節(jié)點名稱 kubectl delete node k8s-master01? #刪除名為k8s-master01的節(jié)點 2.在k8s-master01清空集群配置信息 kubeadm reset ?--cri-socket=unix:///var/run/cri-dockerd.sock? #因為我使用的是1.26.0版本的k8s所以需要指定cri rm -rf?/var/lib/

    2024年02月13日
    瀏覽(31)
  • k8s簡介、虛擬機快速搭建k8s集群、集群管理方式及K8S工作原理和組件介紹

    k8s簡介、虛擬機快速搭建k8s集群、集群管理方式及K8S工作原理和組件介紹

    1.1、部署方式的變遷 傳統(tǒng)部署時代: 在物理服務(wù)器上運行應(yīng)用程序 無法為應(yīng)用程序定義資源邊界 導(dǎo)致資源分配問題 例如,如果在物理服務(wù)器上運行多個應(yīng)用程序,則可能會出現(xiàn)一個應(yīng)用程序占用大部分資源的情況, 結(jié)果可能導(dǎo)致其他應(yīng)用程序的性能下降。 一種解決方案是

    2024年02月12日
    瀏覽(29)
  • k8s其他master節(jié)點加入集群命令

    k8s其他master節(jié)點加入集群命令

    ? kubeadm join 192.168.0.236:16443 --token 7t2weq.bjbawausm0jaxury ? ? ? ? --discovery-token-ca-cert-hash sha256:92175a356db070deb2ddd3823e288e3005a4baeec9b68580dcc11ce4d3767195 ? ? ? ? --control-plane --certificate-key a01487c705d04e23832dafee30b06e9ef2ed9d946e9c5c1e869d915da043b640

    2024年01月18日
    瀏覽(29)
  • k8s容器集群管理

    k8s容器集群管理 k8s簡介 容器技術(shù)的發(fā)展 使用kubeadm安裝k8s kubectl Kubernetes 架構(gòu) k8s節(jié)點 節(jié)點與控制面之間的通信 控制器 k8s容器 Kubernetes 對象 Kubernetes 對象管理 Kubernetes 對象管理 指令式命令 Kubernetes 對象管理 指令式對象配置 k8s對象管理 聲明式對象配置 使用 Kustomize 對 Kubern

    2024年02月10日
    瀏覽(19)
  • k8s集群部署 | 三節(jié)點(復(fù)用)高可用集群過程參考

    k8s集群部署 | 三節(jié)點(復(fù)用)高可用集群過程參考

    1.1.1 實驗架構(gòu)圖 1.1.2 系統(tǒng)版本說明 OS 版本:CentOS Linux release 7.9.2009 (Core) 初始內(nèi)核版本:3.10.0-1160.71.1.el7.x86_64 配置信息:2C2G 150G硬盤 文件系統(tǒng):xfs 網(wǎng)絡(luò):外網(wǎng)權(quán)限 k8s 版本:1.25.9 1.1.3 環(huán)境基本信息 K8s集群角色 IP地址 主機名 組件信息 控制節(jié)點1(工作節(jié)點1) 192.168.204.10 k8

    2024年02月04日
    瀏覽(30)
  • k8s單節(jié)點部署,容器運行時使用containerd

    k8s單節(jié)點部署,容器運行時使用containerd

    環(huán)境 系統(tǒng) : entOS Linux release 7.9.2009 (Core IP:192.168.44.177 硬件要求:控制平面最少需要 2c2g 安裝前環(huán)境準備 如果是集群部署還需要配置時間同步 關(guān)閉防火墻 關(guān)閉selinux 關(guān)閉swap分區(qū) 如果沒有開啟swap分區(qū)可以跳過這步 刪除掉 /etc/fstab 有關(guān)swap分區(qū)的信息 設(shè)置主機名 開始安裝容器

    2024年04月12日
    瀏覽(23)
  • 設(shè)置k8s中節(jié)點node的ROLES值,K8S集群怎么修改node1的集群ROLES

    其實這個Roles就是一個標簽,執(zhí)行以下命令給node1 和 node2 打上worker標簽 k8s-node1 打上標簽為worker1 k8s-node2 打上標簽為worker2

    2024年02月02日
    瀏覽(20)
  • K8S集群node節(jié)點狀態(tài)為notready

    Kubernetes集群中的node節(jié)點狀態(tài)顯示為notready,這通常意味著該節(jié)點上的一個或多個組件出現(xiàn)了故障。在這種情況下,您需要進一步檢查該節(jié)點的狀態(tài)以確定問題的原因。您可以使用kubectl命令檢查node的詳細信息,例如: 此命令將顯示該節(jié)點的狀態(tài),以及可能導(dǎo)致notready狀態(tài)的任

    2024年02月15日
    瀏覽(36)
  • k8s node節(jié)點加入集群,token過期

    k8s node節(jié)點加入集群,token過期

    1、master01節(jié)點執(zhí)行 ?kubeadm token create --print-join-command 2、執(zhí)行命令 kubeadm join 192.168.0.236:16443 --token qucd8q.hsfq4a1afluzaky3 --discovery-token-ca-cert-hash sha256:92175a356db070deb2ddd3823e288e3005a4baeec9b68580dcc11ce4d3767195 3、查看node02節(jié)點是否加入集群

    2024年01月18日
    瀏覽(23)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包