k8s的安装和部署

配置三台主机,分别禁用各个主机上的swap,并配置解析

复制代码
systemctl mask swap.target
swapoff -a
vim /etc/fstab

配置这三个主机上的主机以及harbor仓库的主机

所有主机设置docker的资源管理模式为system

复制代码
[root@k8s-master ~]# vim /etc/docker/daemon.json
{
"registry-mirrors": ["https://reg.timinglee.org"],
"exec-opts": ["native.cgroupdriver=systemd"],
"log-driver": "json-file",
"log-opts": {
"max-size": "100m"
},
"storage-driver": "overlay2"
}

将harbor仓库的证书保存

复制代码
scp /etc/docker/certs.d/reg.timinglee.org/ca.crt root@192.168.38.100:/etc/docker/certs.d/reg.timinglee.org/ca.crt

启动docker,查看docker信息

复制代码
systemctl enable --now docker
docker info

安装K8s部署工具

添加k8s仓库,下载kubelet需要的版本以及他的插件

复制代码
dnf install kubelet-1.30.0 kubeadm-1.30.0 kubectl-1.30.0 -y

设置kubectl的命令补齐功能

复制代码
dnf install bash-completion -y
echo "source <(kubectl completion bash)" >> ~/.bashrc
source ~/.bashrc

在master主机上安装 cri-docker使用dockershim

复制代码
dnf install libcgroup-0.41-19.el8.x86_64.rpm \
> cri-dockerd-0.3.14-3.el8.x86_64.rpm -y

配置cri-docker的配置文件

复制代码
 vim /lib/systemd/system/cri-docker.service

[Service]
Type=notify
ExecStart=/usr/bin/cri-dockerd --container-runtime-endpoint fd:// --networkplugin=cni --pod-infra-container-image=reg.timinglee.org/k8s/pause:3.9 #指定网络插件和基础容器镜像
ExecReload=/bin/kill -s HUP $MAINPID
TimeoutSec=0 #超时时间
RestartSec=2 重启时间2s
Restart=always #设置总是重启

在master节点拉取k8s需要的镜像,将镜像上传到harbor仓库

复制代码
#给镜像打上标签
docker images | awk '/google/{ print $1":"$2}' | awk -F "/" '{system("docker tag "$0" reg.timinglee.org/k8s/"$3)}'
#上传镜像
docker images | awk '/k8s/{system("docker push "$1":"$2)}'

启动kubelet并进行初始化

复制代码
systemctl status kubelet.service

 kubeadm init --pod-network-cidr=10.244.0.0/16 \
--image-repository reg.timinglee.org/k8s \
--kubernetes-version v1.30.0 \
--cri-socket=unix:///var/run/cri-dockerd.sock

指定集群配置文件的额变量

复制代码
echo "export KUBECONFIG=/etc/kubernetes/admin.conf" >> ~/.bash_profile

查看当前节点

复制代码
kubectl get node

由于当前没有安装 网络插件,所以当前没有容器没有运行

安装flannel

下载flannel镜像,并将其上传到haror仓库

复制代码
#下载镜像,打标签
docker tag flannel/flannel:v0.25.5 \
reg.timinglee.org/flannel/flannel:v0.25.5
#上传到仓库
docker push reg.timinglee.org/flannel/flannel:v0.25.5
#相同操作
docker tag flannel/flannel-cni-plugin:v1.5.1-flannel1 \
reg.timinglee.org/flannel/flannel-cni-plugin:v1.5.1-flannel1
docker push reg.timinglee.org/flannel/flannel-cniplugin:v1.5.1-flannel1

修改镜像下载位置

复制代码
vim kube-flannel.yml

image: reg.timinglee.org/flannel/flannel:v0.25.5
image: reg.timinglee.org/flannel/flannel-cni-plugin:v1.5.1-flannel1
image: reg.timinglee.org/flannel/flannel:v0.25.5

安装

复制代码
 kubectl apply -f kube-flannel.yml

加入集群

复制代码
kubeadm token create --print-join-command

查看节点状态

复制代码
kubectl get nodes
相关推荐
万里不留行3 分钟前
解决ubuntu docker拉取环境失败问题
linux·ubuntu·docker
piepis7 分钟前
Linux 下升级 Python 3.7 → 3.9(离线)并内网安装本地python-packages
linux·运维·python
SP八岐大兔9 分钟前
Ollama安装及运行模型
linux·服务器·ollama
深念Y10 分钟前
Nginx和Spring Cloud Gateway
运维·服务器·网络·网关·nginx·spring cloud·微服务
困惑阿三11 分钟前
全栈部署排雷手册:从 405 报错到飞书推送成功
服务器·前端·后端·nginx·阿里云·node.js·飞书
野犬寒鸦17 分钟前
从零起步学习JVM|| 第二章:JVM基本组成及JVM内存区域详解
服务器·开发语言·后端·学习·面试·职场和发展
vx-bot55566621 分钟前
企业微信ipad协议的防封号技术体系与策略实践
服务器·企业微信·ipad
苦涩花开548626 分钟前
Kubernetes学习,记一些笔记
笔记·学习·kubernetes
菩提树下的凡夫29 分钟前
基于C++语言的Onnx CUDA加速部署推理
linux·运维·人工智能
渔民小镇31 分钟前
告别 Redis/MQ —— ionet 分布式事件总线实战
java·服务器·分布式