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
相关推荐
馨谙13 分钟前
Linux中权限系统
linux·运维·服务器
jieyu111917 分钟前
虚拟专用网络
linux·网络
能不能别报错35 分钟前
K8s学习笔记(十四) DaemonSet
笔记·学习·kubernetes
报错小能手36 分钟前
linux学习笔记(19)进程间通讯——消息队列
linux·笔记·学习
liujing102329292 小时前
Day14_内核编译&安装
linux
火星MARK2 小时前
k8s面试题
容器·面试·kubernetes
进击的_鹏2 小时前
【Linux】vim的操作大全
linux·编辑器·vim
云动雨颤2 小时前
Linux卡在emergency mode怎么办?xfs_repair 命令轻松解决
linux·运维·服务器
亮子AI2 小时前
【Ubuntu】清理空间的几种方法
linux·运维·ubuntu
零基础的修炼3 小时前
Linux---进程信号
运维·服务器