如何低成本的搭建一个真实的Kubernetes集群
引言:kubernetes作為當前事實上的容器編排標準,其勢頭可謂是如日中天,然而,kubernetes一直以來被人詬病的就是其復雜的搭建成本,作為個人,除了用miniKube等工具在個人電腦上模擬一個集群,或者通過虛擬機模擬一個集群,但終歸,真實集群和虛擬集群是不同的。我一直在想,如今云服務器已經十分成熟,難道就不能作為搭建kubernetes平臺的基礎設施嗎?
一、架構規劃
其實對于現在的云服務來說,各家競爭激烈,價格也打得比較低,但是存在一個問題:為了吸引新用戶,云服務廠商一般都對產品首單、新用戶首次下單時進行特別大的折扣,入坑后才發現,續費或者購買新服務器動輒上千元💰!實在不是我等普通程序員愿意支出的一筆消費😭。好在我了解到,各云廠商現在在主推一種新的云服務器(可以稱之為云服務器的閹割版),比如騰訊云叫“輕量應用服務器”,阿里云肯定也有對應的產品。這種閹割過的服務器,價格實惠,正適合購買來做個人集群。
那么假如我們是新用戶(新用戶其實很簡單,以前注冊過的,換個手機號注冊就是了,反正一個身份證一般都能綁多個賬號,各個云廠商都差不多政策的。),我們以首單優惠買個閹割版服務器,再通過首單優惠買個云服務器,有兩個服務器不就能搭一個真正的Kubernetes集群嗎?😏
為了方便選擇,我也做了一個價格表,目前阿里云、騰訊云都在搞活動,正是入手的好時機:
| 騰訊云 | 2核2G 200/3年 | 2核2G 298/3年 | 點擊查看 |
| 阿里云 | 2核2G 99/年 | 1核2G 261/3年 | 點擊查看 |
| 華為云 | - | 1核2G 158 /1年 (新用戶可買3臺) | 點擊查看 |
以上這個表格應該對比的很清晰了,都是各廠商活動頁首推的配置,應該是最便宜的了。個人感覺華為云最不實惠,不推薦。
騰訊云別看總價是498,點擊這個連接領取新人優惠券,我算下來,差不多373元拿下兩個云服務器,3年吶,!簡直是買不了吃虧,買不了上當,感覺廠商都要虧本!
貼上我以前做活動時買的,都是1核2G的配置,輕量買了1年(我那時候怕輕量和云服務器不可以在kubernetes集群中互聯互通),云服務器買了3年,都要269元,這樣一算,2核2G兩個3年才373,我簡直血虧😭。
回歸主題!當我們以低成本拿到兩個服務器后,就可以規劃準備搭建集群了,這里我先放個架構圖:
假設 Node1 是我們買的CVM云服務器, Light Node1 是我們買的輕量應用服務器,它們位于不同的網段,我們需要做好網絡規劃,讓兩個網段能互聯互通即可。
搭建步驟
1. 各服務器上安裝docker、kubelet kubectl kubeadm
要搭建kubernetes集群,首先集群中的每個節點都需要安裝好以上這些軟件,docker怎么安裝網絡上教程一大把,我這里就不多介紹了,只是要注意修改/etc/docker/daemon.json的配置:
{"registry-mirrors": ["https://mirror.ccs.tencentyun.com"],"bip": "10.47.0.1/16","exec-opts": ["native.cgroupdriver=systemd"] }這里我修改了docker的網段地址,把cgroupdriver改成了systemd(kubernetes要求)。修改docker網段地址是因為:我們要保證節點網絡、docker內部網絡、kubernetes網絡地址CIDR段不要沖突,沖突不好搞的,在規劃時就要區別開。這里你要根據你的節點的實際網絡地址,配置一個網段,不要從我的示例json中直接復制。
這里給出kubelet kubectl kubeadm的安裝方法:
cat <<EOF > /etc/yum.repos.d/kubernetes.repo[kubernetes]name=Kubernetesbaseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/enabled=1gpgcheck=1repo_gpgcheck=1gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpgEOFsetenforce 0yum install -y kubelet-1.22.0 kubeadm-1.22.0 kubectl-1.22.0yum安裝好了以后,systemctl enable kubelet && systemctl start kubelet命令設置成開機啟動即可。
同時,我們把兩個云服務器的hostname設置成k8s-master、k8s-node1。
2. 保證CVM和輕量應用服務器可以互聯互通
參考騰訊云文檔
配置完成后,CVM和輕量應用服務器應該就可以相互ping通。
3. 使用 kubeadm 安裝集群的master節點
kubeadm init \ --apiserver-advertise-address=172.17.0.3 \ --image-repository registry.aliyuncs.com/google_containers \ --kubernetes-version v1.22.0 \ --service-cidr=10.96.0.0/12 \ --pod-network-cidr=10.244.0.0/16 \ --ignore-preflight-errors=all這里要感謝阿里云,他們提供的國內鏡像地址,可以讓我們快速的下載下來kubernetes所需要的鏡像。
可以看到,此命令中需要提供kubernetes的service網段和pod網段,也需要注意不要沖突。
4. 安裝node節點
安裝node節點就非常簡單了,當master節點成功安裝完畢,命令應該會打印出如何安裝node節點的示例,復制下來,在k8s-node1上運行就行了。
5. 開啟防火墻的端口
最后,我們需要在云服務器和輕量應用服務器的防火墻中,配置端口聯通規則:
在k8s-master上放行:TCP:6443,10250,10251,10252
在k8s-node1 上放行:TCP: 10250
6. 其它工作
最后可能需要配置Flannel、移除master節點的污點等。這里就不再過多介紹,以后有時間,可以再寫些博客詳細分享一下。目前,我也是學習者的狀態。
三、參考資料
- K8s安裝
- 騰訊云購買地址
- 技術交流群
- 我基于k8s部署的個人博客網站
總結
以上是生活随笔為你收集整理的如何低成本的搭建一个真实的Kubernetes集群的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 在计算机窗口中什么中的文件不能被删除,在
- 下一篇: 自定义表单的需求-表单设计器