十分鐘搭建自己Kubernetes集群 Ubuntu 20.04&containerd&calico

小明說:我只想搭建一個集群匠璧,網上搜出一大堆原理內容,還分了好幾篇看的我眼花繚亂咸这。波波help

波波說:好夷恍,沒關系。今天咱們一起來搭一個集群媳维。廢話不多說開干裁厅!

環(huán)境要求

每臺機器 2 GB 或更多的 RAM 2 CPU 核或更多


準備工作


? ? ?內核確認

uname -a

Linux k8s-node2 5.4.0-96-generic #109-Ubuntu SMP Wed Jan 12 16:49:16 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux

? ? ? 設定IP

cd /etc/netplan/

sudo mv 00-installer-config.yaml 00-installer-config.yaml.disabled


vi 99-installer-config.yaml

network:

? version: 2

? ethernets:

? ? ens33:

? ? ? dhcp4: no

? ? ? addresses: [192.168.88.100/24]

? ? ? gateway4: 192.168.88.2

? ? ? nameservers:

? ? ? ? ? addresses: [192.168.88.2]

? ? ? ? ? search: []

? ? ? optional: true

netplan apply

我準備了三臺機器

master:192.168.88.100

node1:192.168.88.101

node2:192.168.88.102

? ? ? ?關閉swap

vi? /etc/fstab 注釋掉最后一行

swapoff -a && swapon -a

free -m 查看


kubeadm安裝集群

模塊配置

cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf

br_netfilter

EOF

cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf

net.bridge.bridge-nf-call-ip6tables = 1

net.bridge.bridge-nf-call-iptables = 1

net.ipv4.ip_forward = 1

EOF

sudo sysctl --system

sudo apt-get install -y apt-transport-https ca-certificates curl

安裝containerd

apt-get install containerd

容器運行時

cat <<EOF | sudo tee /etc/modules-load.d/containerd.conf

overlay

br_netfilter

EOF

sudo modprobe overlay

sudo modprobe br_netfilter

cat <<EOF | sudo tee /etc/sysctl.d/99-kubernetes-cri.conf

net.bridge.bridge-nf-call-iptables? = 1

net.ipv4.ip_forward? ? ? ? ? ? ? ? = 1

net.bridge.bridge-nf-call-ip6tables = 1

EOF

sudo sysctl --system

sudo mkdir -p /etc/containerd

containerd config default | sudo tee /etc/containerd/config.toml

sudo systemctl restart containerd


配置crictl?

VERSION="v1.23.0"

wget https://github.com/kubernetes-sigs/cri-tools/releases/download/$VERSION/crictl-$VERSION-linux-amd64.tar.gz

sudo tar zxvf crictl-$VERSION-linux-amd64.tar.gz -C /usr/local/bin

rm -f crictl-$VERSION-linux-amd64.tar.gz

vi /etc/crictl.yaml

runtime-endpoint: unix:///var/run/containerd/containerd.sock

image-endpoint: unix:///var/run/containerd/containerd.sock

timeout: 2

debug: false

pull-image-on-create: false


安裝kubeadm

更新?apt?包索引并安裝使用 Kubernetes?apt?倉庫所需要的包:

sudo apt-get update

sudo apt-get install -y apt-transport-https ca-certificates curl

下載 Google Cloud 公開簽名秘鑰:

sudo curl -fsSLo /usr/share/keyrings/kubernetes-archive-keyring.gpg https://packages.cloud.google.com/apt/doc/apt-key.gpg

添加 Kubernetes?apt?倉庫:

echo "deb [signed-by=/usr/share/keyrings/kubernetes-archive-keyring.gpg] https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list

更新?apt?包索引冰沙,安裝 kubelet、kubeadm 和 kubectl执虹,并鎖定其版本:

sudo apt-get update

sudo apt-get install -y kubelet kubeadm kubectl

sudo apt-mark hold kubelet kubeadm kubectl


注意:以上master與node都要安裝


安裝 kubeadm

kubeadm init --apiserver-advertise-address=192.168.88.100 \

? ? ? ? ? ? --service-cidr=10.1.0.0/16 \

? ? ? ? ? ? --pod-network-cidr=192.168.0.0/16


--apiserver-advertise-address?可用于為控制平面節(jié)點的 API server 設置廣播地址拓挥。

--control-plane-endpoint?可用于為所有控制平面節(jié)點設置共享端點。

--control-plane-endpoint?允許 IP 地址和可以映射到 IP 地址的 DNS 名稱袋励。 (calico默認是192.168.0.0)

安裝完后按照說明執(zhí)行

? mkdir -p $HOME/.kube

? sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config

? sudo chown $(id -u):$(id -g) $HOME/.kube/config

有幾個node就你的節(jié)點中粘貼執(zhí)行即可

kubeadm join 192.168.88.100:6443 --token osgyk1.ewoygvudbb84xk3l \

? ? ? ? --discovery-token-ca-cert-hash sha256:4c17899291da6c9888c1f5f02454bcf471a4a3ae214dbe85f2178953456665c1

這個比較關節(jié)

export KUBECONFIG=/etc/kubernetes/admin.conf >> ~/.bash_profile

source ~/.bash_profile

順利完成

常見問題

1侥啤,kubeadm安裝不成功 查看日志,有可能是API server 設置廣播地址寫錯了

2茬故,kubeadm join的命令不小心丟了怎么辦盖灸?

? ? ? kubeadm token create --print-join-command重新生成一下。

3磺芭,搞砸了怎么辦赁炎?

給你四個我的寶貝,然后重新安裝钾腺。

kubeadm reset

rm -rf /etc/cni/net.d

rm -rf $HOME/.kube/config

rm -rf /etc/kubernetes/


小明你學會了嗎徙垫?

總結:其實最好的教程就是官網的幫助文檔。K8s安裝的東西稍多了一些放棒,我只是梳理了一下姻报。便于小伙伴們理解。

參考:

安裝 kubeadm

安裝containerd

配置crictl

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末间螟,一起剝皮案震驚了整個濱河市吴旋,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌厢破,老刑警劉巖荣瑟,帶你破解...
    沈念sama閱讀 216,402評論 6 499
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異摩泪,居然都是意外死亡褂傀,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,377評論 3 392
  • 文/潘曉璐 我一進店門加勤,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人同波,你說我怎么就攤上這事鳄梅。” “怎么了未檩?”我有些...
    開封第一講書人閱讀 162,483評論 0 353
  • 文/不壞的土叔 我叫張陵戴尸,是天一觀的道長。 經常有香客問我冤狡,道長孙蒙,這世上最難降的妖魔是什么项棠? 我笑而不...
    開封第一講書人閱讀 58,165評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮挎峦,結果婚禮上香追,老公的妹妹穿的比我還像新娘。我一直安慰自己坦胶,他們只是感情好透典,可當我...
    茶點故事閱讀 67,176評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著顿苇,像睡著了一般峭咒。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上纪岁,一...
    開封第一講書人閱讀 51,146評論 1 297
  • 那天凑队,我揣著相機與錄音,去河邊找鬼幔翰。 笑死漩氨,一個胖子當著我的面吹牛,可吹牛的內容都是我干的导匣。 我是一名探鬼主播才菠,決...
    沈念sama閱讀 40,032評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼贡定!你這毒婦竟也來了赋访?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 38,896評論 0 274
  • 序言:老撾萬榮一對情侶失蹤缓待,失蹤者是張志新(化名)和其女友劉穎蚓耽,沒想到半個月后,有當地人在樹林里發(fā)現(xiàn)了一具尸體旋炒,經...
    沈念sama閱讀 45,311評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡步悠,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,536評論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了瘫镇。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片鼎兽。...
    茶點故事閱讀 39,696評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖铣除,靈堂內的尸體忽然破棺而出谚咬,到底是詐尸還是另有隱情,我是刑警寧澤尚粘,帶...
    沈念sama閱讀 35,413評論 5 343
  • 正文 年R本政府宣布择卦,位于F島的核電站,受9級特大地震影響,放射性物質發(fā)生泄漏秉继。R本人自食惡果不足惜祈噪,卻給世界環(huán)境...
    茶點故事閱讀 41,008評論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望尚辑。 院中可真熱鬧辑鲤,春花似錦、人聲如沸腌巾。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽澈蝙。三九已至吓坚,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間灯荧,已是汗流浹背礁击。 一陣腳步聲響...
    開封第一講書人閱讀 32,815評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留逗载,地道東北人哆窿。 一個月前我還...
    沈念sama閱讀 47,698評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像厉斟,于是被迫代替她去往敵國和親挚躯。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,592評論 2 353

推薦閱讀更多精彩內容