使用containerd從0搭建k8s(kubernetes)集群

準(zhǔn)備環(huán)境

機(jī)器名 IP 角色 CPU 內(nèi)存
centos01 192.168.109.130 master 4核 2G
centos02 192.168.109.131 node 4核 2G
設(shè)置主機(jī)名蜘欲,所有節(jié)點(diǎn)都執(zhí)行
vim /etc/hosts
#增加
192.168.109.130 centos01
192.168.109.131 centos02
關(guān)閉防火墻,所有節(jié)點(diǎn)都執(zhí)行
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
vim /etc/selinux/config
#修改SELINUX的值
SELINUX=disabled
關(guān)閉swap內(nèi)存豹储,所有節(jié)點(diǎn)都執(zhí)行
swapoff -a
vim /etc/fstab
# 將該行注釋掉
#/dev/mapper/cs-swap swap
配置網(wǎng)橋,所有節(jié)點(diǎn)都執(zhí)行

1.修改參數(shù)

vim /etc/sysctl.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables  = 1
net.ipv4.ip_forward                 = 1
vm.swappiness                       = 0

2.然后,加載如下兩個(gè)模塊,所有節(jié)點(diǎn)都執(zhí)行

modprobe ip_vs_rr
modprobe br_netfilter

3.生效配置

[root@centos01 opt]# sysctl -p
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
vm.swappiness = 0

安裝containerd

以下步驟所有節(jié)點(diǎn)都執(zhí)行。

安裝
wget https://github.com/containerd/containerd/releases/download/v1.7.2/containerd-1.7.2-linux-amd64.tar.gz
tar Cxzvf /usr/local containerd-1.7.2-linux-amd64.tar.gz
修改配置
mkdir /etc/containerd
containerd config default > /etc/containerd/config.toml
vim /etc/containerd/config.toml
#SystemdCgroup的值改為true
SystemdCgroup = true
#由于國內(nèi)下載不到registry.k8s.io的鏡像污淋,修改sandbox_image的值為:
sandbox_image = "registry.aliyuncs.com/google_containers/pause:3.9"
啟動(dòng)服務(wù)
mkdir -p /usr/local/lib/systemd/system
wget https://raw.githubusercontent.com/containerd/containerd/main/containerd.service
mv containerd.service /usr/local/lib/systemd/system
systemctl daemon-reload
systemctl enable --now containerd
驗(yàn)證安裝
[root@centos01 opt]# ctr version
Client:
  Version:  v1.7.2
  Revision: 0cae528dd6cb557f7201036e9f43420650207b58
  Go version: go1.20.4

Server:
  Version:  v1.7.2
  Revision: 0cae528dd6cb557f7201036e9f43420650207b58
  UUID: 747cbf1b-17d4-4124-987a-203d8c72de7c

安裝runc

以下步驟所有節(jié)點(diǎn)都執(zhí)行顶滩。

準(zhǔn)備文件
wget https://github.com//opencontainers/runc/releases/download/v1.1.7/runc.amd64
chmod +x runc.amd64
查找containerd安裝時(shí)已安裝的runc所在的位置
[root@centos01 opt]# which runc
/usr/bin/runc
替換上一步的結(jié)果文件
mv -f runc.amd64 /usr/bin/runc
驗(yàn)證安裝
[root@centos01 opt]# runc -v
runc version 1.1.7
commit: v1.1.7-0-g860f061b
spec: 1.0.2-dev
go: go1.20.3
libseccomp: 2.5.4

安裝kubernetes

添加阿里云的kubernetes源余掖,所有節(jié)點(diǎn)都執(zhí)行
cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
安裝最新版礁鲁,所有節(jié)點(diǎn)都執(zhí)行
yum install -y kubeadm kubelet kubectl
開機(jī)自啟動(dòng)盐欺,所有節(jié)點(diǎn)都執(zhí)行
systemctl enable kubelet
驗(yàn)證安裝,所有節(jié)點(diǎn)都執(zhí)行
[root@centos01 opt]# kubeadm version
kubeadm version: &version.Info{Major:"1", Minor:"27", GitVersion:"v1.27.1", GitCommit:"4c9411232e10168d7b050c49a1b59f6df9d7ea4b", GitTreeState:"clean", BuildDate:"2023-04-14T13:20:04Z", GoVersion:"go1.20.3", Compiler:"gc", Platform:"linux/amd64"}
初始化集群仅醇,僅在master(centos01)上執(zhí)行
[root@centos01 opt]# kubeadm init --apiserver-advertise-address 192.168.109.130 --image-repository registry.aliyuncs.com/google_containers --kubernetes-version v1.27.1 --pod-network-cidr=10.244.0.0/16

...
...
...

Your Kubernetes control-plane has initialized successfully!

To start using your cluster, you need to run the following as a regular user:

  mkdir -p $HOME/.kube
  sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
  sudo chown $(id -u):$(id -g) $HOME/.kube/config

Alternatively, if you are the root user, you can run:

  export KUBECONFIG=/etc/kubernetes/admin.conf

You should now deploy a pod network to the cluster.
Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at:
  https://kubernetes.io/docs/concepts/cluster-administration/addons/

Then you can join any number of worker nodes by running the following on each as root:

kubeadm join 192.168.109.130:6443 --token osh87v.zvo010kamsr8esmp \
    --discovery-token-ca-cert-hash sha256:ff4607c7c194e9f756b1eb509e64d2d926b5f8f9556a85c3c14a2d25add28230

其中冗美,
–apiserver-advertise-address:通告?zhèn)陕牭刂?br> –image-repository:指定鏡像地址使用阿里云的,默認(rèn)會(huì)使用谷歌鏡像
–kubernetes-version:指定當(dāng)前的kubernetes的版本
–pod-network-cidr=10.244.0.0/16:flannel網(wǎng)絡(luò)的固定地址范圍

仔細(xì)閱讀kubeadm init執(zhí)行的結(jié)果析二,根據(jù)提示粉洼,還需要進(jìn)行3步操作

1.筆者用的是root用戶节预,僅在master節(jié)點(diǎn)執(zhí)行

[root@centos01 opt]# vim /etc/profile
#在最后一行增加
export KUBECONFIG=/etc/kubernetes/admin.conf

生效環(huán)境變量

[root@centos01 opt]# source /etc/profile

2.安裝網(wǎng)絡(luò)插件,可以選擇calico或flannel属韧,這里選擇安裝flannel安拟,僅在master節(jié)點(diǎn)執(zhí)行

下載安裝文件

[root@centos01 opt]# wget https://github.com/flannel-io/flannel/releases/latest/download/kube-flannel.yml

修改配置

[root@centos01 opt]# vim kube-flannel.yml
#修改Network項(xiàng)的值,改為和--pod-network-cidr一樣的值
"Network": "10.244.0.0/16"
#由于有時(shí)國內(nèi)網(wǎng)絡(luò)的問題宵喂,需要修改image的地址糠赦,把所有的docker.io改為dockerproxy.com
#共需要修改3處,兩個(gè)值
image: dockerproxy.com/flannel/flannel:v0.22.0
image: dockerproxy.com/flannel/flannel-cni-plugin:v1.1.2

安裝網(wǎng)絡(luò)插件

[root@centos01 opt]# kubectl apply -f kube-flannel.yml

驗(yàn)證安裝

[root@centos01 opt]# kubectl get pods -n kube-flannel
NAME                    READY   STATUS    RESTARTS       AGE
kube-flannel-ds-dfngh   1/1     Running   17 (13m ago)   6d1h
kube-flannel-ds-qll8g   1/1     Running   12 (13m ago)   6d1h

3.其他節(jié)點(diǎn)加入集群锅棕,非master節(jié)點(diǎn)都執(zhí)行

[root@centos02 opt]# kubeadm join 192.168.109.130:6443 --token osh87v.zvo010kamsr8esmp --discovery-token-ca-cert-hash sha256:ff4607c7c194e9f756b1eb509e64d2d926b5f8f9556a85c3c14a2d25add28230
驗(yàn)證安裝結(jié)果拙泽,僅在master節(jié)點(diǎn)執(zhí)行
[root@centos01 opt]# kubectl get nodes
NAME       STATUS   ROLES           AGE    VERSION
centos01   Ready    control-plane   134m   v1.27.1
centos02   Ready    <none>          133m   v1.27.1
[root@centos01 opt]# kubectl get pods -n kube-system
NAME                               READY   STATUS    RESTARTS   AGE
coredns-7bdc4cb885-l4vs2           1/1     Running   0          9m3s
coredns-7bdc4cb885-wzc8x           1/1     Running   0          9m3s
etcd-centos01                      1/1     Running   0          9m18s
kube-apiserver-centos01            1/1     Running   0          9m18s
kube-controller-manager-centos01   1/1     Running   0          9m19s
kube-proxy-m92hr                   1/1     Running   0          28s
kube-proxy-pv4hw                   1/1     Running   0          9m3s
kube-scheduler-centos01            1/1     Running   0          9m18s

建議重啟一遍所有服務(wù)器節(jié)點(diǎn),有可能會(huì)暴露出來隱藏的問題裸燎,再次驗(yàn)證以上結(jié)果顾瞻,仍然正常。

至此完成安裝德绿,接下來可以部署應(yīng)用了朋其,可以使用DHorse:https://gitee.com/i512team/dhorse,或者Jenkins脆炎。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末梅猿,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子秒裕,更是在濱河造成了極大的恐慌袱蚓,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,104評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件几蜻,死亡現(xiàn)場(chǎng)離奇詭異喇潘,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)梭稚,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,816評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門颖低,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人弧烤,你說我怎么就攤上這事忱屑。” “怎么了暇昂?”我有些...
    開封第一講書人閱讀 168,697評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵莺戒,是天一觀的道長。 經(jīng)常有香客問我急波,道長从铲,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,836評(píng)論 1 298
  • 正文 為了忘掉前任澄暮,我火速辦了婚禮名段,結(jié)果婚禮上阱扬,老公的妹妹穿的比我還像新娘。我一直安慰自己伸辟,他們只是感情好价认,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,851評(píng)論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著自娩,像睡著了一般用踩。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上忙迁,一...
    開封第一講書人閱讀 52,441評(píng)論 1 310
  • 那天脐彩,我揣著相機(jī)與錄音,去河邊找鬼姊扔。 笑死惠奸,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的恰梢。 我是一名探鬼主播佛南,決...
    沈念sama閱讀 40,992評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼嵌言!你這毒婦竟也來了嗅回?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,899評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤摧茴,失蹤者是張志新(化名)和其女友劉穎绵载,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體苛白,經(jīng)...
    沈念sama閱讀 46,457評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡娃豹,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,529評(píng)論 3 341
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了购裙。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片懂版。...
    茶點(diǎn)故事閱讀 40,664評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖躏率,靈堂內(nèi)的尸體忽然破棺而出躯畴,到底是詐尸還是另有隱情,我是刑警寧澤禾锤,帶...
    沈念sama閱讀 36,346評(píng)論 5 350
  • 正文 年R本政府宣布私股,位于F島的核電站摹察,受9級(jí)特大地震影響恩掷,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜供嚎,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,025評(píng)論 3 334
  • 文/蒙蒙 一黄娘、第九天 我趴在偏房一處隱蔽的房頂上張望峭状。 院中可真熱鬧,春花似錦逼争、人聲如沸优床。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,511評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽胆敞。三九已至,卻和暖如春杂伟,著一層夾襖步出監(jiān)牢的瞬間移层,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,611評(píng)論 1 272
  • 我被黑心中介騙來泰國打工赫粥, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留观话,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,081評(píng)論 3 377
  • 正文 我出身青樓越平,卻偏偏與公主長得像频蛔,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子秦叛,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,675評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容