国产性生交xxxxx免费-国产中文字幕-啊灬啊灬啊灬快灬高潮了,亚洲国产午夜精品理论片在线播放 ,亚洲欧洲日本无在线码,色爽交视频免费观看

鍋爐信息網 > 鍋爐知識 > 鍋爐學習

構建多云環境下的K3S集群

發布時間:

    作為一名有追求的羊毛黨,雙十一和雙十二當然不容錯過, 薅完阿里云,又薅了騰訊云,正好在筆記本上跑kubernetes實在是不過癮且不爽,

作為一名有追求的羊毛黨,雙十一和雙十二當然不容錯過, 薅完阿里云,又薅了騰訊云,正好在筆記本上跑kubernetes實在是不過癮且不爽, 有了薅來的云主機, 咱也可以奢侈一把了,無論是學習、測試還是部署自己的應用,直接有一個公網的集群可以用,都是一件很爽的事情。所以不得不夸一下騰訊云的這次羊毛十分給力, 不同于以往和現在其他云服務商小水管帶寬的云主機,就像給你一把槍卻只給一顆子彈,用起來便秘一樣的難受, 這次騰訊云大方的給了5-8M的公網帶寬,可以說十分良心, 作為NO.1的某云趕緊學著點,卷起來, 卷起來羊毛才多嘛^_^。

一、資源

k3s作為輕量且使用起來基本與原生kubernetes差別不是很大,資源消耗很低, server最低只需要512M內存即可運行。特別適合羊毛黨到處薅來的低配置云主機。筆者當前擁有阿里云輕量一臺, 1核2G,5M帶寬,一次薅了4年,價格一年99當時以為占了大便宜,誰知道騰訊云這一波卷,立馬變的不香了,這個配置留著做k3s集群的master倒是合適。 騰訊云這一波羊毛: 2核4G 8M帶寬(8M帶寬可玩性就豐富多了),222/三年,或者1核2G 150/3年(這個就算了, 做kubernetes配置還是要高一點) 無論那種規格每賬號限一臺,限輕量應用服務器新用戶(作為資深羊毛黨這不是事,老爸老媽老婆老妹兒的身份證注冊一個妥妥的安排了)截止2022年1月17日活動仍然同志們可以沖一把。

騰訊云活動頁

二、需求

不同賬號甚至不同云服務商, 內網肯定是不通的。所以我們要想辦法實現跨公網的容器網絡通信,保障任意一臺節點上的pod能訪問任意節點上的pod和service,和正常的kubernetes集群體驗一致。跨地域的話可能會產生額外10毫秒左右的延遲,問題不大。 要實現這樣的效果,wireguard是個非常好的選擇。WireGuard是一個易于配置、快速且安全的開源VPN,可以輕松地在樹莓派之類低端設備到高端服務器上部署(弱弱的說一句,利用云主機,可以部署wireguard實現手機、家里的NAS設備、智能路由器等的組網,組成專屬網絡,隨時隨地設備間互聯訪問,為了不跑題這里不多說,有興趣可以了解一下,有時間再擼一篇文章專門說明。)。wireguard已被集成在linux內核中(要5.4以上),Linux原生支持,從效率和穩定性上來說要比N2N高上不少。另一個好消息是flannel插件內置了wireguard模式, so,我們直接拿來用即可只是配置的時候有些坑要注意一下,按照下面的文檔做,順利開車。

三、安裝依賴

  • 升級內核

# 安裝源nrpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.orgnrpm -Uvh http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpmnyum --disablerepo=* --enablerepo=elrepo-kernel repolistnyum --disablerepo=* --enablerepo=elrepo-kernel install kernel-ml.x86_64 -ynn# 卸載舊內核相關nyum remove kernel-tools-libs.x86_64 kernel-tools.x86_64 -ynn# 安裝新版內核tools、header等nyum --disablerepo=* --enablerepo=elrepo-kernel install kernel-ml-tools kernel-ml-devel kernel-ml-headers -ynn#重新生成grubngrub2-mkconfig -o /boot/grub2/grub.cfgnn# 重啟nrebootnn# 檢查當前內核版本nuname -ann# Linux VM-12-9-centos 5.15.7-1.el8.elrepo.x86_64 #1 SMP Mon Dec 6 12:56:31 EST 2021 x86_64 x86_64 x86_64 GNU/Linux

  • 安裝wireguard

yum install kmod-wireguard wireguard-tools

  • 安裝k3s

# 國內加速ncurl -sfL http://rancher-mirror.cnrancher.com/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn sh -

  • 設置k3s server節點配置: vim /etc/systemd/system/k3s.service 注意根據實際情況替換公網地址和內網地址. BTW:這里在server的配置中禁用了traefik, 因為通過k3s自己的traefik crd部署邏輯在這個場景下部署無法成功, 可以部署完集群后通過helm安裝。

[Unit]nDescription=Lightweight KubernetesnDocumentation=https://k3s.ionWants=network-online.targetnAfter=network-online.targetnn[Install]nWantedBy=multi-user.targetnn[Service]nType=notifynEnvironmentFile=/etc/systemd/system/k3s.service.envnKillMode=processnDelegate=yesn# Having non-zero Limit*s causes performance problems due to accounting overheadn# in the kernel. We recommend using cgroups to do container-local accounting.nLimitNOFILE=1048576nLimitNPROC=infinitynLimitCORE=infinitynTasksMax=infinitynTimeoutStartSec=0nRestart=alwaysnRestartSec=5snExecStartPre=-/sbin/modprobe br_netfilternExecStartPre=-/sbin/modprobe overlaynExecStart=/usr/local/bin/k3s n server --flannel-backend wireguard --tls-san 公網地址,內網地址 --node-ip 內網地址 --node-external-ip 公網地址 --no-deploy servicelb n --disable traefikn --kube-proxy-arg "proxy-mode=ipvs" "masquerade-all=true" n --kube-proxy-arg "metrics-bind-address=0.0.0.0"

  • 獲取token:

cat /var/lib/rancher/k3s/server/node-token n# 內容類似如下:nK10fc6653356f8b0c457cd1a8e41d87b7d33b49a97f4e6b8qweqweqwewq12788a06e85647454::server:53c2qweqweqweqw4d8145be9e7

  • 設置agent節點: 注意根據實際情況替換配置中的公網地址和內網地址

[Unit]nDescription=Lightweight KubernetesnDocumentation=https://k3s.ionWants=network-online.targetnAfter=network-online.targetnn[Install]nWantedBy=multi-user.targetnn[Service]nType=notifynEnvironmentFile=/etc/systemd/system/k3s.service.envnKillMode=processnDelegate=yesn# Having non-zero Limit*s causes performance problems due to accounting overheadn# in the kernel. We recommend using cgroups to do container-local accounting.nLimitNOFILE=1048576nLimitNPROC=infinitynLimitCORE=infinitynTasksMax=infinitynTimeoutStartSec=0nRestart=alwaysnRestartSec=5snExecStartPre=-/sbin/modprobe br_netfilternExecStartPre=-/sbin/modprobe overlaynExecStart=/usr/local/bin/k3s agent n --node-external-ip 公網地址 n --node-ip 內網地址 n --kube-proxy-arg "proxy-mode=ipvs" "masquerade-all=true" n --kube-proxy-arg "metrics-bind-address=0.0.0.0"

  • 設置agent變量

vim /etc/systemd/system/k3s.service.envnn# 此處定義集群的api service訪問地址以及token內容為:nK3S_URL=https://server的公網地址:6443nK3S_TOKEN=K10fc6653356f8b0c457cd1a8e41d87b7d33b49a97f4e6b8qweqweqwewq12788a06e85647454::server:53c2qweqweqweqw4d8145be9e7n

  • 重啟服務

systemctl daemon-reload && systemctl restart k3s

  • 查看集群狀態

[root@my ~]# kubectl get nodenNAME STATUS ROLES AGE VERSIONnnode1.wangxun.tech Ready shanghai 4d4h v1.21.7+k3s1nwangxun.tech Ready control-plane,hangzhou,master 4d4h v1.21.7+k3s

  • 配置注解

# 所有節點添加注解, 否則 wireguard默認會嘗試通過內網地址進行互聯,內網肯定是無法連接的導致pod之間無法互相通信nkubectl annotate nodes 節點名稱 flannel.alpha.coreos.com/public-ip-overwrite=節點公網IP

  • 配置metrics-server

#與wireguard的問題一樣,默認情況下,其他節點也會嘗試使用內網地址來請求metrics-server,需要修改啟動參數,使用公網地址。nkubectl edit deployment metrics-server -n kube-systemn# spec.template.spec.containers下的command配置如下:n- command:n - /metrics-servern - --kubelet-preferred-address-types=ExternalIPn - --kubelet-insecure-tls

  • 檢查跨主機通信

[root@wangxun ~]# kubectl get pod -A -o widenNAMESPACE NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATESnkube-system metrics-server-cd69c4c45-gcqbh 1/1 Running 0 4d2h 10.42.1.3 node1.wangxun.tech <none> <none>nkube-system coredns-7448499f4d-wfkss 1/1 Running 0 3d4h 10.42.1.34 node1.wangxun.tech <none> <none>ndefault traefik-66d78697f-ckbx4 1/1 Running 0 3d4h 10.42.1.37 node1.wangxun.tech <none> <none>ndefault traefik-66d78697f-wq2c9 1/1 Running 1 2d3h 10.42.0.31 wangxun.tech <none> <none>nkube-system local-path-provisioner-5ff76fc89d-4h5tm 1/1 Running 8 2d6h 10.42.0.32 wangxun.tech <none> <none>nn[root@wangxun ~]# ping 10.42.1.46nPING 10.42.1.46 (10.42.1.46) 56(84) bytes of data.n64 bytes from 10.42.1.46: icmp_seq=1 ttl=63 time=15.9 msn64 bytes from 10.42.1.46: icmp_seq=2 ttl=63 time=15.8 msn64 bytes from 10.42.1.46: icmp_seq=3 ttl=63 time=15.9 msn^Cn--- 10.42.1.46 ping statistics ---n3 packets transmitted, 3 received, 0% packet loss, time 4msnrtt min/avg/max/mdev = 15.847/15.874/15.916/0.107 msn[root@wangxun ~]# ping 10.42.0.31nPING 10.42.0.31 (10.42.0.31) 56(84) bytes of data.n64 bytes from 10.42.0.31: icmp_seq=1 ttl=64 time=0.079 msn64 bytes from 10.42.0.31: icmp_seq=2 ttl=64 time=0.095 msn64 bytes from 10.42.0.31: icmp_seq=3 ttl=64 time=0.076 msn^Cn--- 10.42.0.31 ping statistics ---n3 packets transmitted, 3 received, 0% packet loss, time 84msnrtt min/avg/max/mdev = 0.076/0.083/0.095/0.011 msnn# 可以發現杭州節點上ping上海節點上的pod存在15毫秒的延遲。

  • 檢查metrics

# 查看節點資源使用情況n[root@wangxun ~]# kubectl top nodenW1214 21:10:46.996987 713827 top_node.go:119] Using json format to get metrics. Next release will switch to protocol-buffers, switch early by passing --use-protocol-buffers flagnNAME CPU(cores) CPU% MEMORY(bytes) MEMORY%nnode1.wangxun.tech 40m 2% 1507Mi 38%nwangxun.tech 90m 9% 1200Mi 60%nn# 查看POD資源使用情況n[root@wangxun ~]# kubectl top pod -AnW1214 21:11:02.771539 713937 top_pod.go:140] Using json format to get metrics. Next release will switch to protocol-buffers, switch early by passing --use-protocol-buffers flagnNAMESPACE NAME CPU(cores) MEMORY(bytes)ndefault traefik-66d78697f-ckbx4 2m 36Mindefault traefik-66d78697f-wq2c9 1m 45Minkube-system coredns-7448499f4d-wfkss 2m 20Minkube-system local-path-provisioner-5ff76fc89d-4h5tm 1m 25Minkube-system metrics-server-cd69c4c45-gcqbh 1m 16Mi


  • 到此k3s集群部署完成, 如果有更多的主機,可以重復agent的配置步驟進行添加。

精選推薦

  • 催化燃燒設備供應商
    催化燃燒設備供應商

    催化燃燒設備供應商,催化燃燒處理裝置廠家,本裝置是采用廢氣先進入噴淋塔過濾——干式過濾—-蜂窩活性碳吸附—脫附再生——催化燃

  • 該不該有模具供應商
    該不該有模具供應商

    今天紅姐又來跟我探討供應商的管理問題了。故事是這樣的:供應商來料不良,原因是模具問題。而那個模具是我們找的一家模具供應商做的

  • 什么牌子高壓鍋好,高壓鍋哪個牌子好,高壓鍋什么牌子好,高壓鍋哪個品牌好
    什么牌子高壓鍋好,高壓鍋哪個牌子好,高

    1蘇泊爾 雙重安全閥門 高壓鍋雙重安全閥,防燙把手,復合底。這款高壓鍋擁有雙重安全閥門,更好的保證使用安全。搭載防燙傷把手,方便起

  • 高壓鍋啥牌子好,高壓鍋哪個牌子的好,什么高壓鍋牌子好,高壓鍋推薦選購指南
    高壓鍋啥牌子好,高壓鍋哪個牌子的好,什

    1、雙喜階梯型復底高壓鍋推薦理由:高壓鍋滿足上蒸下煮,飯菜同時進行,方便快速,有效提升烹飪效率。多重安全防護,安全系數較高,家人使用

0