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 [email protected]:/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
相关推荐
孤独得猿5 分钟前
Qt常用控件第一部分
服务器·开发语言·qt
不爱吃鱼的猫-20 分钟前
Node.js 安装与配置全攻略:从入门到高效开发
服务器·node.js
Linux运维老纪31 分钟前
运维之 Centos7 防火墙(CentOS 7 Firewall for Operations and Maintenance)
linux·安全·centos·云计算·运维开发·火绒
斯普信专业组38 分钟前
Ceph异地数据同步之-RBD异地同步复制(下)
linux·服务器·ceph
duration~40 分钟前
K8S自定义CRD
容器·贪心算法·kubernetes
counsellor42 分钟前
CentOS 7安装hyperscan
linux·centos·hyperscan
电星托马斯1 小时前
Linux系统CentOS 6.3安装图文详解
linux·运维·服务器·程序人生·centos
啞謎专家1 小时前
CentOS中挂载新盘LVM指南:轻松扩展存储空间,解决磁盘容量不足问题
linux·运维·服务器
s_little_monster1 小时前
【Linux】进程信号的捕捉处理
linux·运维·服务器·经验分享·笔记·学习·学习方法
一大Cpp1 小时前
Ubuntu与本地用户交流是两种小方法
linux·运维·ubuntu