ubuntu k8s安装部署

1.环境配置

关闭swapoff和防火墙

# 临时关闭swap

临时关闭swapoff命令 swapoff -a,每次重启电脑后都要手动关闭一次,永久关闭不推荐

# 禁用selinux

      sudo vim /etc/selinux/config

      SELINUX=disabled

# 关闭防火墙

ufw disable 关闭防火墙

systemctl status firewalld如果没有这个命令就别管了

# 验证

systemctl status firewalld

#确认swap已经关闭

      free -m

# 添加内核配置

      sudo sh -c 'echo "net.bridge.bridge-nf-call-ip6tables =1\nnet.bridge.bridge-nf-call-iptables = 1\nnet.ipv4.ip_forward =1">/etc/sysctl.d/k8s.conf'

#执行命令让修改生效

      modprobe br_netfilter

      sudo sysctl -p /etc/sysctl.d/k8s.conf

# 配置IPVS模块

      vim /etc/modules

      ip_vs_rr

      ip_vs_wrr

      ip_vs_sh

      ip_vs

      sudo iptables -P FORWARD ACCEPT

      modprobe -- ip_vs

      modprobe -- ip_vs_rr

      modprobe -- ip_vs_wrr

      modprobe -- ip_vs_sh

#查看是否已经正确加载所需的内核模块

      lsmod | grep -e ip_vs -e nf_conntrack_ipv4

2.docker安装和配置

下载docker,网上很多教程,不在赘述,注意版本不要过低,下载好后,修改docker配置

vim /etc/docker/daemon.json

{"registry-mirrors":["https://dockerhub.azk8s.cn","https://reg-mirror.qiniu.com","https://quay-mirror.qiniu.com"],

"exec-opts":["native.cgroupdriver=systemd"]

}

sudo systemctl daemon-reload

sudo systemctl restart docker

然后就可以通过docker info | grep Cgroup来查看修改后的 docker cgroup 状态,发现变为systemd即为修改成功

3.安装 kubeadm、kubelet、kubectl

# 使得 apt 支持 ssl 传输

apt-get update && apt-get install -y apt-transport-https

# 下载 gpg 密钥

curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add -

# 添加 k8s 镜像源

cat <<EOF >/etc/apt/sources.list.d/kubernetes.list

deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main

EOF

# 更新源列表

apt-get update

# 列出所有可升级版本

 sudo apt-cache madison kubeadm

 sudo apt-cache madison kubelet

#安装

sudo apt-get update && apt-get install kubelet=1.21.12-00 kubeadm=1.21.12-00 kubectl=1.21.12-00 --allow-unauthenticated

4.拉取核心组件镜像

# 获取需要的镜像      

sudo kubeadm config images list --kubernetes-version=v1.21.12

#阿里云下载

docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-apiserver:v1.21.12

docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-controller-manager:v1.21.12

docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-scheduler:v1.21.12

docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-proxy:v1.21.12

docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.4.1

docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/etcd:3.4.13-0

docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/coredns:1.8.0

#打标签

docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/kube-apiserver:v1.21.12 k8s.gcr.io/kube-apiserver:v1.21.12

docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/kube-controller-manager:v1.21.12 k8s.gcr.io/kube-controller-manager:v1.21.12

docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/kube-scheduler:v1.21.12 k8s.gcr.io/kube-scheduler:v1.21.12

docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/kube-proxy:v1.21.12 k8s.gcr.io/kube-proxy:v1.21.12

docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.4.1 k8s.gcr.io/pause:3.4.1

docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/etcd:3.4.13-0 k8s.gcr.io/etcd:3.4.13-0

docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/coredns:1.8.0 k8s.gcr.io/coredns:1.8.0

#删除旧镜像

docker image rm registry.cn-hangzhou.aliyuncs.com/google_containers/kube-apiserver:v1.21.12

docker image rm registry.cn-hangzhou.aliyuncs.com/google_containers/kube-controller-manager:v1.21.12

docker image rm registry.cn-hangzhou.aliyuncs.com/google_containers/kube-scheduler:v1.21.12

docker image rm registry.cn-hangzhou.aliyuncs.com/google_containers/kube-proxy:v1.21.12

docker image rm registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.4.1

docker image rm registry.cn-hangzhou.aliyuncs.com/google_containers/etcd:3.4.13-0

docker image rm registry.cn-hangzhou.aliyuncs.com/google_containers/coredns:1.8.0

#查看镜像

docker  images |grep k8s

5.初始化 master 节点

使用kubeadm的init命令就可以轻松的完成初始化,不过需要携带几个参数,如下。先不要直接复制执行,将赋值给--apiserver-advertise-address参数的 ip 地址修改为自己的master主机地址,然后再执行。

kubeadm init --apiserver-advertise-address=10.170.51.193  --pod-network-cidr=10.244.0.0/16 --kubernetes-version=1.21.12

这里介绍一下一些常用参数的含义:

--apiserver-advertise-address: k8s 中的主要服务apiserver的部署地址,填自己的管理节点 ip

--image-repository: 拉取的 docker 镜像源,因为初始化的时候kubeadm会去拉 k8s 的很多组件来进行部署,所以需要指定国内镜像源,下不然会拉取不到镜像。

--pod-network-cidr: 这个是 k8s 采用的节点网络,因为我们将要使用flannel作为 k8s 的网络,所以这里填10.244.0.0/16就好

--kubernetes-version: 这个是用来指定你要部署的 k8s 版本的,一般不用填,不过如果初始化过程中出现了因为版本不对导致的安装错误的话,可以用这个参数手动指定。

--ignore-preflight-errors: 忽略初始化时遇到的错误,比如说我想忽略 cpu 数量不够 2 核引起的错误,就可以用--ignore-preflight-errors=CpuNum。错误名称在初始化错误时会给出来。

当你看到如下字样是,就说明初始化成功了,请把最后那行以kubeadm join开头的命令复制下来,之后安装工作节点时要用到的,如果你不慎遗失了该命令,可以在master节点上使用kubeadm token create --print-join-command命令来重新生成一条。

如果在初始化过程中出现了任何Error导致初始化终止了,使用kubeadm reset重置之后再重新进行初始化

#配置kubectl工具

mkdir -p /root/.kube

cp /etc/kubernetes/admin.conf /root/.kube/config

#从节点加入

执行上面的kubeadm join命令

#flannel插件部署

wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

kubectl apply -f kube-flannel.yml

#calico部署

参照我之前的文章

一般到这里都不会有问题,我遇到了一个问题是

failed to delegate add: failed to find plugin "bridge" in path [/opt/cni/bin], failed to clean up sandbox container

解决方法是下载cni工具包

cd /opt/cni/bin

wget https://github.com/containernetworking/plugins/releases/download/v0.8.7/cni-plugins-linux-amd64-v0.8.7.tgz

tar -zxvf cni-plugins-linux-amd64-v0.8.7.tgz

5.插件卸载

#flannel插件

kubectl delete -f kube-flannel.yml

ifconfig cni0 down

ip link delete cni0

ifconfig flannel.1 down

ip link delete flannel.1

rm -rf /var/lib/cni/

rm -f /etc/cni/net.d/*

重启kubelet

systemctl restart kubelet

#calico插件

kubectl delete -f calico.yaml

modprobe -r ipip

rm -rf /var/lib/cni/

rm -f /etc/cni/net.d/*

重启kubelet

systemctl restart kubelet

完全卸载k8s

kubeadm reset -f

rm -rf /etc/cni /etc/kubernetes /var/lib/dockershim /var/lib/etcd /var/lib/kubelet /var/run/kubernetes ~/.kube/*

modprobe -r ipip

lsmod

rm-rf ~/.kube/

rm-rf /etc/kubernetes/

rm-rf /etc/systemd/system/kubelet.service.d

rm-rf /etc/systemd/system/kubelet.service

rm-rf /usr/bin/kube*

rm-rf /etc/cni

rm-rf /opt/cni

rm-rf /var/lib/etcd

rm-rf /var/etcd

iptables -F && iptables -X

iptables -t nat -F && iptables -t nat -X

iptables -t raw -F && iptables -t raw -X

iptables -t mangle -F && iptables -t mangle -X

systemctl restart docker

然后docker.io,在重新初始化集群之前,您需要重新安装、kubeadm、kubectl和kubelet并确保它们是您的发行版的最新版本。

编辑:发现 calico 将防火墙规则添加到raw表中,因此也需要清除。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,921评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,635评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,393评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,836评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,833评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,685评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,043评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,694评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,671评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,670评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,779评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,424评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,027评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,984评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,214评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,108评论 2 351
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,517评论 2 343

推荐阅读更多精彩内容