k8s,kubeadm一把梭!解決國內訪問docker鏡像問題

现任明教教主
1 位粉絲
14 觀看·2024年12月1日
k8s,kubeadm一把梭!解決國內訪問docker鏡像問題
先來介紹一下私有云的k8s的集羣的安裝
我前段時間一直在做公有云的安裝
非常簡單
一個代碼一把鎖就搞定了
那麼現在我要準備在私有云部署
因爲我的目標準備講ACK1
就是說它的一個R0平臺能夠把公有云和私有云
加到一個集羣裏面去統一的基因管理
那麼這樣的話可以做一個混合雲
比如說正常情況下
負載在你們公司內部私有云運行
當你們流量比較大了
業務比較多了
那麼比如說雙11突發的時候
那麼你可以把一些計算的負載遷移到雲端
OK這樣的話就彈性
不僅在公有云也在私有云
就是說私有云如果說不行了
然後短時間的暫時的可以把一些負載
然後遷移到雲端
然後由雲端來承載
OK
那麼這就是一個混合雲的架構
它支持多種私有云的K8s和雲端的K8s
在一起統一的來被管理和調度
好吧
那麼當然了公有云那邊最近研究的沒有多大問題了
現在準備有兩個攻堅目標
一個就是說先把私有云搞定
但是這個問題應該不大
我覺得不大
但是去年其實我很輕鬆的搞定了一遍
好吧
然後今天也花了很多時間
主要就是大家知道的
就是Docker Hub被封了
然後雖然說K8s不用Docker
但它用ContainerD
ContainerD的鏡像依然是Docker Hub的
所以說這個事封了之後會影響很多很多很多的事情
非常非常的煩人
好吧
那麼今天也是花了很多時間來解決這個問題
那現在我就給大家來走一遍
好吧
那個腳本我已經準備好了
我給大家來把這個私有云的K8s給安裝一遍
基本上把這個網絡開口這邊裝好
那基本上我們今天的目標就差不多了
好吧
好
那大概說到這兒
我們來開始
我們有四個機器
這是我的私有云
在我的這個杭州數據中心
杭州數據中心有四個
有四個Linux
Locky Linux
OK
好
那就這四個
那我們開始來貼
我基本上把腳本都準備好了
一點一點來啊
這個首先初始化環境也非常非常的重要
第一個你的DNS一定要準備好
你的DNS
OK
這叫K8s master
K8s node 1
2
3
DNS一定要好
我整個DNS叫
k8s-master.ky行
杭州.com
好
都拼一下
那我們的節點01
02
03
好吧
主要就是說在這個地方要給它做好
把IPview一定要進了
然後呢
它的域還有它的DNS搜索域
這兩個都挺重要的
OK
所有的這些的DNS都指到這個
這個master
這個172.16.201.111
這個機器
這個也是花點時間
IPview就給進了
然後呢
DNS搜索
然後呢
DNS要做好
好吧
OK
當然了
這個我們的這個一號機就這個master
172.16.201.111
它就是這個DNS服務器
這都配好的
剛纔解析呢
咱們也拼過了
好吧
DNS是非常非常重要
如果說你應該準備好的
沒有好的話呢
其實也就別玩了
這第一個DNS一定要準備好
DNS好的
網絡也是好的
就此之上
下面我們來刷一些K8s的基礎的東西
很多東西要提前準備
比如說把緩存關了
好
然後呢
裝一些需要用到的一些模塊
加載
這次要加載一些必要的一些模塊
基本上這些就全部貼就可以了
雲端還是比較方便
一拉就起來了
雲端還是要麻煩很多
加載一些模塊
貼到哪了
安裝container-d
現在呢
現在其實K8s早就不用Docker
用container-d
但這個其實只是一個運行時不一樣
其實也沒有什麼
比如說
那就Docker就不用學了
其實兩回事啊
只是一個運行環境而已
Docker還是非常值得學的
好吧
畢竟你看
就算運行時不用Docker
但是這個鏡像大家都得統一的
OK
那麼你看
就算Docker不用了
但是他用的鏡像依然是DockerHub的
所以說
桑的比較厲害的
其實不是Docker不是沒用
Docker其實不用也無所謂
有很多辦法可以替換Docker
但是DockerHub
真的還是瘋了
真的非常非常的少
因爲我這麼多年用Docker很多年了
很多東西都是用Docker啊
就很輕鬆的
一拉就好了
現在突然給我瘋掉
真的我要瘋了
真的是
我經常說
我都覺得我自己搞的課都特別的low
因爲我發現我自己
對今天早上那五六個小時
三個小時左右全部在搞一些
就是這種無聊的工作
好吧
就是完全在處理一些本不應該出現的問題
真的要花你很多很多時間來解決
這個本不應該發生的問題
好吧
好這個containerD搞定
然後呢
我們來產生一下containerD的配置
OK好
然後呢
這個配置啊
然後呢
我們要對相應的內容進行一個替換
相應的內容進行一個替換
好
我來說一下替換
這是一個比較重要的
第1個呢
就是Systemdcgroup這個要true
這是一個
還有一個呢
就是這個sadboximagine
這個plus是3.9
替換到阿里雲的3.9
還有一個就是
這個啊
就是你要
不是被封了吧
但是其實也有很多的代理
那這個時候呢
代理配置的這個目錄
這是一個目錄
好吧
好
那
對
我再給你看看那個目錄
這個目錄把它複製一下
OK
然後呢
你可以進到這個目錄下面去
進到這個目錄下面去
最開始我創建了這個目錄
創建了這個目錄
好吧
好
然後呢
我們在這個目錄下面呢
創建一個host文件
這就是各種各樣的國內的
我瞭解的
能夠翻牆用的
所謂要代理用的
這些代理服務器
OK
可以再看一下
etc
container
卡了
稍等會啊
我們可以看一下
就是在這個目錄下面
你可以爲每一個
比如說我們當時用的最多的
應該就是這個
docker.io
然後呢
爲docker.io
做相應的代理
再來啊
container.lib
OK
你爲每一個這個
docker.io
做一個相應的這個代理的
這些主機的這麼一個文件
可以看一下
對它相應的代理
好吧
如果沒有問題的話
你可以去測一下
下載一個nginx試試
docker.io的nginx
用你的配置
好
如果沒有問題了
你會發現它可以下載
反正呢
這個就用了代理
它沒有什麼翻牆
只是把docker相關的東西
做了一個代理
是吧
好
這個做完
呃
這個做完之後呢
緊接着我們就開始安裝這個
kubelet
kubemem
kubectl
這三個
然後我們要開始安裝
版本呢
選的是1.26.8
其實好像現在它可以有28點幾
其實還有31點幾
我覺得31點幾
阿里雲類型的31點幾
我不想裝那麼新的
我裝了一個26.8
比較吉利點
好吧
就純屬吉利點
表示這個也沒有問題啊
這就是好了
能拉得下來
鏡像是好的
好
然後呢
我們開始要裝這個
kubelet
kubemem
kubectl
好
然後緊接着呢
就把相關的鏡像
因爲一會兒要qboard的命令來拉一些什麼
PPS over啊
等等等等的
那麼把提前最好提前
把需要用的鏡像給它拉下來
第一部分啊
就是
我們先把它拉下來
第一部分
然後緊接着呢
我們開始來出售我們的master
其實主要費時間就是第一部分的準備
呃
這個部分
要費時間
當然還有那個前期的一個DNS準備
也是比較費時間的
好
這個好了
然後緊接着呢
把相應的一些eMag拉下來
我後續
我給你解釋一下
後續其實
會做一些
就是後續這個可能會做一些BGP
我這兒後續準備在阿里雲端搞一臺路由器
我準備用VLS來做
然後呢
我們杭州數據中心有臺網關路由器
就是斯科的
然後呢
在這兒在裏邊跟他建BGP
然後在現在跟他建BGP
然後來通過這個VPN來互聯
這這這應該是我最終的要一個目標
然後呢
讓私有云和公有云能夠串起來
然後呢
通過一個統一的API
能夠在私有云和公有云之間統一的調度
我們的那些計算資源
這應該是最終的目標
但是現在我們要一年一年來
我先把這個這個先搞好
好吧
好
現在呢
把相應的鏡像給拉下來
這個實驗還是比較有挑戰的
好吧
一點一點來吧
先把這個我的私有云搞好雲端那個比較簡單
然後呢
我的VYOS也已經準備好了
過一會兒吧
VYOS我在阿里雲端拿起來
然後呢
我再測試一下跟這個阿里雲的VYOS和我的杭州的來做一個IPsec連通
OK
然後呢
準備再把這些BGP建起來
然後能不能互聯
這應該就是下一步的我的目標
這應該是主要跟網絡有關係的
好吧
然後呢
再由它的ACK1加多集羣
然後統一調度
這就是下一步的任務
大家就是有些人總是認爲就是爲了網絡來連通
但是有時候你要知道
網絡最大的目標是爲了我們的應用負載而提供底層支撐的
你不要把網絡想的特別特別的重要
網絡只是一個底層的基礎的一個支撐而已
你要了解那麼上層應用是怎麼玩的
容器是什麼
K8s是什麼
Calico是什麼
然後呢
爲什麼需要網絡
網絡是怎麼來傳遞路由的這些東西
你需要有
你不是因爲因爲我有網絡
所以說你們那些都不重要
因爲我是學網絡的
我覺得你應該是因爲有云計算
因爲有應用負載
這些他們之間要有通訊
那麼所以說那纔會有網絡
這個纔是一個正常的一個理解網絡作用的一個角度
好吧
好
你看這是3.9
這個拉下來之後
緊接着我們就可以去在Master上面
這個只是在Master上面來初始化整個K8s的Master
然後再準備這個KubeConfig的配置
好
準備好了
這個上面還沒有完
那麼我們只是在Master上
只是在Master上
其他這個不用
這幾個不用
好
只是Master上
只是Master上來初始化
我的podletwork設計成爲是10.168.0.016位
然後這就是Master的地址
這也是Master的域名
如果說你低音還是解決不好
那今天好像我試了很多遍
錯了很多遍
低音S是一個大問題
低音S這一關過了之後
發現就這些鏡像拉不下來
也是一個大問題
好吧
好了
好
然後緊接着你就可以把其他的那些節點加進來
貼進來就行
其實還是很簡單的
說起來輕鬆
你看我都還挺輕鬆的
但其實這一趟東西準備了5個多小時
我最終能講
我既然敢給你講
基本上我提前刷了三遍
確認不會有什麼問題
還少一個
還少一個他
好
沒問題
那沒有ready是很簡單
沒有網絡
網外沒有做
好吧
好
那這個也搞定
那下面我們來做網絡
網絡我們裝catacl
catacl的話
你可以看一下它的一個快速開始
OK
然後其實很簡單
如果說你可以正常
訪問互聯網的話
好吧
貼這個就搞定了
好吧
當然了
我提前把這兩個文件給拷下來了
因爲這兩個文件
咱們不應該訪問的了
好吧
而且這兩個文件也比較大
這兩個文件其實只是需要把這個地方改一下
它天生的應該是192180.0
我把這個改了
這個已經改過
這已經改過
就只改這個
就是說這兩個文件
你下載下來
其實你能夠訪問
就直接一把就搞定了
雲原生
這就是一貼一貼就完了事
其實應該很簡單的
但是
你理解就是我們可能不是那麼適合雲原生
好吧
反正貼一貼就好了
按理說
但是我手工的把它下載下來
然後把這個完全沒有動
這個特別大
就一看
多少毫秒
然後這個很少
只是把它改成了我的
輸出話的時候
PODE的網段
好吧
好
這兩個文件我是準備好了的
我現在把這個文件先傳上去
好
我們來看一下
我應該有
這個沒傳
private keybinds
然後進到
keykeywordmin
然後進到Keylink
好
就這兩個文件
是吧
就這兩個文件
OK
然後這個時候
你也很簡單
應用一下這兩個文件就完了
當然其實最簡單的
就直接雲端應用更爽一些
好吧
我這個要下載下來
好
這個好了
這個好了之後
我們要等一會兒
它又要下載一些鏡像
然後才能夠拉起來
我們可以稍微等會兒看看效果
稍等會兒
它會最終可能會在五六分鐘之後
那麼大概有這個效果
OK
Kalico還是很重要的
你看官方這個就是
這邊就是Kalico
C5U這邊可能會用Kalico
阿里雲這邊有它的CNI
OK
好
然後我們
我這準備搞VRS
然後這邊就用我們公司的網關的
思科的硬件的那條路由器
反正我說真心話
我做實驗
就是我們公司說生產網絡
生產網絡其實也是我的實驗網絡
真的
這就直接17216
2010111
直接是生產網絡的網段
好吧
不重要
對我而言長期也沒有那麼講究
做實驗
我整個都是我的實驗臺
好吧
然後我們網關有臺思科的
1921的路由器
好吧
然後我的目標做完之後
我們配Kalico
然後跟它BGP
把裏面的這些POD的網絡都給拿出來
然後這邊
準備搞VRS
互聯
這邊
VRS已經搞定了
Fcsec鍵需要研究研究
BGC需要研究研究
BGP需要研究研究
BGP這個BGP也需要研究研究
然後再看看能不能把網絡整個網絡整通
整個網絡給它整通
好吧
整個網絡我準備給它整通
然後把這個數據層面先給你打通
好吧
然後再有它的ACK1
然後把公用雲的和私用雲的
都加進去
看看我們能不能夠
彈性的就是能夠開始一部分在私用雲
然後當我們計算家力不興
如果不夠的話
然後再把公用雲給它拉起來
這麼做一個彈性
這才叫混合雲
好吧
這才叫混合雲
有些人就是
爲什麼一定要KBS
爲什麼不能虛擬機
虛擬機怎麼玩混合雲
沒法玩
好吧
你要玩混合
你要玩彈性
我認爲只有容器
我認爲只有KBS
你要虛擬機這麼彈性
感覺是一件很搞笑的事情
好吧
我覺得應該要用雲原生的KBS這套
解決了
好吧
這個要等會
就要等會
因爲它
因爲它拉鏡像比較費時間
但是也沒有你想的那麼慢
你看那都好幾個都已經running了
我把它做起來
今天我應該就講到這個部分
然後過一會兒我再把Ingress這些
把整個集羣線都忙完
好吧
然後再去
再去忙VP內
VP應該我比較擅長一些
我應該算比較擅長的
好
這個基本上快差不多了
等一會
這個要1比1纔行
1比1
到最終應該是這樣
好吧
那就相當於開了一口就裝好了
OK
然後去掉一些污點
可能現在好像也沒有
然後整個節點基本上就ready了
ready
好吧
每兩秒刷新一次
好
差不多
我們看看
現在應該就ready了
差不多大哥
意思到了
好
你看都ready了
都ready了
好吧
OK
好
這個部分準備完
把這個計算節點加進去
剛纔已經加過了
加過了
好吧
然後給它打個標籤
因爲你看現在它沒有標籤
沒有role
標籤給打一下
這樣子也好看一些
等一會也好調度一些
worker
好吧
工作節點
差不多
那麼基本上集羣就差不多了
集羣就差不多了
然後集羣拉起來了
然後我主要是要做網絡
因爲我一會要用calibrate vp
所以我要確認一下網絡是好的
打點最簡單的東西上去
這只是其實不用用
後面我要把它刪掉
我打一個deployment
然後再打一個service上去
cube
control
apply
創建一個deployment
創建一個service
這個稍等會
要下載Nginx的這麼一個鏡像
都要測一下
看看它能不能夠正常的
都把鏡像拉下來
可以看到前開始的那些
K8的鏡像的問題
那麼這次在普通的鏡像再試試
好吧
我們拉起來之後
然後再測一下
基本的網絡連通性
然後我們的service的負載均衡
這麼一個效果
我建議大家
還是應該學習一下
K8s
當然你應該先從Docker開始學習
Docker還是很有用的
特別是在我做生物化運維的時候
沒有Docker
我簡直了
我不知道這世界還能怎麼過
一旦用上就好像就回不去了
好
這個起來了
cube control
get pod
-o wide
cube control
進到一個裏面去測一下
你看他的地址
就是他們的地址都可以測一下
看能不能通
他自己肯定是可以通的
是吧
然後
另外一個節點
你看節點三的
這是節點三的
跟他不是一個節點的
沒問題吧
是一個Nginx
所以說
123
相當於全部通的
好吧
這個也沒問題
好
繼續我們再看一下
SVC
我們有這麼一個服務
我們進到繼續進到剛纔的
容器裏面去
我們去訪問這個服務
它的端口
它的端口是被改過
端口是
我天
是8080
8080
也沒問題
這是一個負載軍方的效果
好吧
就是說當訪問這個service
8080
就會導到後面的三個port裏面去
好吧
OK
基本上的網絡就這樣
那麼集訓也拿起來了
好吧
一會我做個快照
把後面的Ingress做好
那麼基本上我Siri這邊也準備好了
好吧
下面就緊接着去玩一些跟網絡的東西了
BGP的東西
IPsec的東西
好吧
好
那這個就講到這
