IT评测·应用市场-qidao123.com
标题:
kubeadm 部署k8s
[打印本页]
作者:
九天猎人
时间:
2024-12-10 19:16
标题:
kubeadm 部署k8s
闲聊
考虑了很久,打算写一篇保姆级部署从0-1构建企业级cicd流水线,把工作上面所用到的技术点分享给大家。从最k8s,harbor,jenkins,gitlab,docker的详细部署到集成。前后端流水线的构建,发布等...假如以下内容有不敷的地方,请指出,我会第一时间更正。谢谢大家。
先上一下手绘导图,大致的流程图如下:
大致的部署流程是这样的:开发职员把做好的asp.net core项目代码通过git推送到gitlab,然后Jenkins通过 gitlab webhook (前提是设置好),自动从拉取gitlab上面拉取代码下来,然后进行build,编译、生成镜像、然后把镜像推送到Harbor仓库;然后在部署的时间通过k8s拉取Harbor上面的代码进行创建容器和服务,最终发布完成,然后可以用外网访问。
当然啦,上面只是粗略的,请看下图才更加形象。
一、前言
K8s 集群部署有多种方式,kubeadm 是 K8s 官方提供的集群部署工具,这种方法最为常用,简单快速,适合初学者。本文就使用 kubeadm 搭建集群演示。
二、主机预备
本次我们搭建一套 3 个节点的 K8s 集群,操作系统使用Ubuntu 22.04.4 LTS,设置2核4G,ip规划如下
主机名ip地点
主机设置
master23110.0.0.2312核,4GiB,系统盘 20GiBworker23210.0.0.2322核,4GiB,系统盘 20GiBworker23310.0.0.2332核,4GiB,系统盘 20GiB
三、系统设置
关闭swap分区
swapoff -a && sysctl -w vm.swappiness=0 # 临时关闭
sed -ri '/^[^#]*swap/s@^@#@' /etc/fstab # 基于配置文件关闭
复制代码
确保各个节点MAC地点或product_uuid唯一
ifconfig ens33 | grep ether | awk '{print $2}'
cat /sys/class/dmi/id/product_uuid
温馨提示:
一般来讲,硬件设备会拥有唯一的地址,但是有些虚拟机的地址可能会重复。
Kubernetes使用这些值来唯一确定集群中的节点。 如果这些值在每个节点上不唯一,可能会导致安装失败。
复制代码
检查网络节点是否互通
简而言之,就是检查你的k8s集群各节点是否互通,可以使用ping命令来测试。
ping www.baidu.com -c 10
ping master231 -c 10
复制代码
答应iptable检查桥接流量
cat <<EOF | tee /etc/modules-load.d/k8s.conf
br_netfilter
EOF
复制代码
初始化master组件
cat <<EOF | 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
sysctl --system
复制代码
部署worler组件,添加节点
所有节点修改cgroup的管理进程为systemd==乌班图默认不用修改
[root@master231 ~]# docker info | grep "Cgroup Driver:"
Cgroup Driver: systemd
[root@master231 ~]#
[root@worker232 ~]# docker info | grep "Cgroup Driver:"
Cgroup Driver: systemd
[root@worker232 ~]#
[root@worker233 ~]# docker info | grep "Cgroup Driver:"
Cgroup Driver: systemd
[root@worker233 ~]#
温馨提示:
如果不修改cgroup的管理驱动为systemd,则默认值为cgroupfs,在初始化master节点时会失败
复制代码
部署CNI插件,打通网络
1.K8S所有节点配置软件源
apt-get update && apt-get install -y apt-transport-https
curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add -
cat <<EOF >/etc/apt/sources.list.d/kubernetes.list
deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main
EOF
2.获取最新软件包信息
apt-get update
3.查看一下当前环境支持的k8s版本
[root@master231 ~]# apt-cache madison kubeadm
kubeadm | 1.28.2-00 | https://mirrors.aliyun.com/kubernetes/apt kubernetes-xenial/main amd64 Packages
kubeadm | 1.28.1-00 | https://mirrors.aliyun.com/kubernetes/apt kubernetes-xenial/main amd64 Packages
kubeadm | 1.28.0-00 | https://mirrors.aliyun.com/kubernetes/apt kubernetes-xenial/main amd64 Packages
4.安装 kubelet kubeadm kubectl
apt-get -y install kubelet=1.23.17-00 kubeadm=1.23.17-00 kubectl=1.23.17-00
5.所有节点都要检查各组件版本
kubeadm version
kubectl version
kubelet --version
复制代码
五、安装kubectl工具自动补全功能
[code] 1.暂时补全生效 apt -y install bash-completion source /usr/share/bash-completion/bash_completion source
欢迎光临 IT评测·应用市场-qidao123.com (https://dis.qidao123.com/)
Powered by Discuz! X3.4