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
相关推荐
coppher3 分钟前
Ubuntu 22.04 amd64 离线安装 Docker 完整教程
linux·docker
xyz59917 分钟前
如何在 WSL 中删除指定版本的 Ubuntu 以及安装
linux·运维·ubuntu
亚空间仓鼠1 小时前
OpenEuler系统常用服务(五)
linux·运维·服务器·网络
AI成长日志2 小时前
【AI原生开发实战】1.2 传统开发 vs AI原生开发:思维转变与架构差异
服务器·架构·ai-native
minji...2 小时前
Linux 线程同步与互斥(二) 线程同步,条件变量,pthread_cond_init/wait/signal/broadcast
linux·运维·开发语言·jvm·数据结构·c++
2301_780789662 小时前
零信任架构在云安全落地过程中的最佳实践
服务器·人工智能·游戏·架构·零信任
虚伪的空想家2 小时前
k8s集群configmap和secrets备份脚本
linux·容器·kubernetes
SXJR2 小时前
k8s中的Pod
云原生·容器·kubernetes
文静小土豆2 小时前
K8s 滚动更新在 Java 应用中的实践与优化
java·容器·kubernetes
the sun342 小时前
从 QEMU 直接启动到 U-Boot 引导:嵌入式 Linux 启动流程的本质差异
linux·运维·服务器