Rocky Linux9.5部署k8s1.28.2+docker
yum换源
sed -e 's|^mirrorlist=|#mirrorlist=|g' \
-e 's|^#baseurl=http://dl.rockylinux.org/$contentdir|baseurl=https://mirrors.aliyun.com/rockylinux|g' \
-i.bak /etc/yum.repos.d/[Rr]ocky*.repo
建立缓存
dnf makecache
关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
安装iptables
yum -y install iptables-services
各节点启动
systemctl start iptables
清空规则
iptables -F
开机启动
systemctl enable iptables
# 禁用 Selinux
setenforce 0
sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
grubby --update-kernel ALL --args selinux=0
# 查看是否禁用,
grubby --info DEFAULT
# 回滚内核层禁用操作
grubby --update-kernel ALL --remove-args selinux
# 设置时区
timedatectl set-timezone Asia/Shanghai
# 关闭 swap 分区
swapoff -a
sed -i 's:/dev/mapper/rl-swap:#/dev/mapper/rl-swap:g' /etc/fstab
# 修改主机名
hostnamectl set-hostname k8s-master
hostnamectl set-hostname k8s-node1
hostnamectl set-hostname k8s-node2
修改hosts
vi /etc/hosts
192.168.139.128 k8s-master m
192.168.139.129 k8s-node1 n1
192.168.139.130 k8s-node2 n2
保存系统快照为 Justinstall,保存系统快照为 Justinstall,保存系统快照为 Justinstall,可以克隆出其他节点
# 安装 ipvs
yum install -y ipvsadm
# 加载 bridge
yum install -y epel-release
yum install -y bridge-utils
modprobe br_netfilter
echo 'br_netfilter' >> /etc/modules-load.d/bridge.conf
echo 'net.bridge.bridge-nf-call-iptables=1' >> /etc/sysctl.conf
echo 'net.bridge.bridge-nf-call-ip6tables=1' >> /etc/sysctl.conf
echo 'net.ipv4.ip_forward=1' >> /etc/sysctl.conf
sysctl -p
添加 docker-ce yum 源
yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
sed -i 's+download.docker.com+mirrors.aliyun.com/docker-ce+' /etc/yum.repos.d/docker-ce.repo
安装docker(27.3.1)
yum -y install docker-ce
# 配置 daemon.
cat > /etc/docker/daemon.json <<EOF
{"data-root": "/data/docker","exec-opts": ["native.cgroupdriver=systemd"],"log-driver":"json-file","log-opts":{"max-size": "100m","max-file": "100"},"insecure-registries": ["harbor.xinxainghf.com"],"registry-mirrors": ["https://docker.m.daocloud.io","https://docker.hpcloud.cloud","https://docker.unsee.tech","https://docker.1panel.live","http://mirrors.ustc.edu.cn","https://docker.chenby.cn","http://mirror.azure.cn","https://dockerpull.org","https://dockerhub.icu","https://hub.rat.dev"]}
EOF
mkdir -p /etc/systemd/system/docker.service.d
# 重启docker服务
systemctl daemon-reload && systemctl restart docker && systemctl enable docker
# 安装 cri-docker
wget https://github.com/Mirantis/cri-dockerd/releases/download/v0.3.9/cri-dockerd-0.3.9.amd64.tgz
tar -xf cri-dockerd-0.3.9.amd64.tgz
cp cri-dockerd/cri-dockerd /usr/bin/
chmod +x /usr/bin/cri-dockerd
# 配置 cri-docker 服务
cat <<"EOF" > /usr/lib/systemd/system/cri-docker.service
[Unit]
Description=CRI Interface for Docker Application Container Engine
Documentation=https://docs.mirantis.com
After=network-online.target firewalld.service docker.service
Wants=network-online.target
Requires=cri-docker.socket
[Service]
Type=notify
ExecStart=/usr/bin/cri-dockerd --network-plugin=cni --pod-infra-container-image=registry.aliyuncs.com/google_containers/pause:3.8
ExecReload=/bin/kill -s HUP $MAINPID
TimeoutSec=0
RestartSec=2
Restart=always
StartLimitBurst=3
StartLimitInterval=60s
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
TasksMax=infinity
Delegate=yes
KillMode=process
[Install]
WantedBy=multi-user.target
EOF
# 添加 cri-docker 套接字
cat <<"EOF" > /usr/lib/systemd/system/cri-docker.socket
[Unit]
Description=CRI Docker Socket for the API
PartOf=cri-docker.service
[Socket]
ListenStream=%t/cri-dockerd.sock
SocketMode=0660
SocketUser=root
SocketGroup=docker
[Install]
WantedBy=sockets.target
EOF
# 启动 cri-docker 对应服务
systemctl daemon-reload
systemctl enable cri-docker
systemctl start cri-docker
systemctl is-active cri-docker
# 添加 kubeadm yum 源
cat << EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
安装kubernetes 1.28.2
yum install -y kubelet-1.28.2 kubectl-1.28.2 kubeadm-1.28.2
systemctl enable kubelet.service
# 初始化主节点,修改address
kubeadm init --apiserver-advertise-address=192.168.139.128 --image-repository registry.aliyuncs.com/google_containers --kubernetes-version 1.28.2 --service-cidr=10.10.0.0/12 --pod-network-cidr=10.244.0.0/16 --ignore-preflight-errors=all --cri-socket unix:///var/run/cri-dockerd.sock
拉镜像报错:
failed to pull image registry.aliyuncs.com/google_containers/kube-apisevice failed" err="rpc error: code = Unknown desc = Error response from daemon: Get \"https://registrng" image="registry.aliyuncs.com/google_containers/kube-apiserver:v1.28.2"
time="2024-11-26T15:12:34+08:00" level=fatal msg="pulling image: rpc error: code = Unknown desc = Eryuncs.com on 192.168.139.2:53: server misbehaving"
解决:
vi /etc/resolv.conf
nameserver 114.114.114.114
nameserver 8.8.8.8
再次初始化
kubeadm init --apiserver-advertise-address=192.168.139.128 --image-repository registry.aliyuncs.com/google_containers --kubernetes-version 1.28.2 --service-cidr=10.10.0.0/12 --pod-network-cidr=10.244.0.0/16 --ignore-preflight-errors=all --cri-socket unix:///var/run/cri-dockerd.sock
主节点
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
从节点加入集群
kubeadm join 192.168.139.128:6443 --token uq3zjc.h2lgsej97ldhu0qp \
--discovery-token-ca-cert-hash sha256:4fff39cab6e362644fc05493d25c62897c4fec6550d5eb8fa81212c82517be92 --cri-socket unix:///var/run/cri-dockerd.sock
报错:
error execution phase preflight: couldn't validate the identity of the API Server: Get "https://192.168.139.128:6443/api/v1/namespaces/kube-public/configmaps/cluster-info?timeout=10s": dial tcp 192.168.139.128:6443: connect: no route to host
三台机都执行:
iptables -F
主节点:
kubectl get node #状态为NotReady
部署网络插件
下载地址:curl https://raw.githubusercontent.com/projectcalico/calico/v3.26.3/manifests/calico-typha.yaml -o calico.yaml
kubectl apply -f calico.yaml
上传包含镜像的包进行解压(无法下载时用)
yum -y install unzip
unzip calico.zip
cd calico
tar -xf calico-images.tar.gz
docker load -i calico-images/calico-cni-v3.26.3.tar
docker load -i calico-images/calico-kube-controllers-v3.26.3.tar
docker load -i calico-images/calico-node-v3.26.3.tar
docker load -i calico-images/calico-typha-v3.26.3.tar
主节点执行
kubectl apply -f calico-typha.yaml
kubectl get pod -n kube-system #所有状态running
Rocky Linux9.5部署k8s1.28.2+docker的更多相关文章
- 二进制部署K8S-1基本概念
二进制部署K8S-1基本概念 感谢老男孩教育王导的公开视频,文档整理自https://www.yuque.com/duduniao/k8s. 1.实验环境 1.1 虚拟机 因为在后期运行容器需要有大量 ...
- Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录
0.目录 整体架构目录:ASP.NET Core分布式项目实战-目录 k8s架构目录:Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录 一.感谢 在此感谢.net ...
- Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列之集群部署环境规划(一)
0.前言 整体架构目录:ASP.NET Core分布式项目实战-目录 k8s架构目录:Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录 一.环境规划 软件 版本 ...
- Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列之自签TLS证书及Etcd集群部署(二)
0.前言 整体架构目录:ASP.NET Core分布式项目实战-目录 k8s架构目录:Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录 一.服务器设置 1.把每一 ...
- Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列之flanneld网络介绍及部署(三)
0.前言 整体架构目录:ASP.NET Core分布式项目实战-目录 k8s架构目录:Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录 一.flanneld介绍 ...
- Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列之部署master/node节点组件(四)
0.前言 整体架构目录:ASP.NET Core分布式项目实战-目录 k8s架构目录:Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录 1.部署master组件 ...
- mac和linux下使用Docker,部署SpringBoot项目到docker
主要是看一下如何在linux及mac上安装docker,创建docker镜像,部署SpringBoot项目到docker,并借助于DaoCloud进行docker镜像下载加速等. 我用的电脑是mac, ...
- docker(部署常见应用):docker部署redis
上节回顾:docker(部署常见应用):docker部署mysql docker部署redis:4.0 # 下载镜像 docker pull redis:4.0 # 查看下载镜像 docker ima ...
- docker(部署常见应用):docker部署mysql
上节回顾:docker(部署常见应用):docker部署nginx docker部署mysql:5.7.26 # 下载镜像 docker pull mysql: # 查看镜像 docker image ...
- .netcore项目部署到linux的docker里后,速度异常的慢
.netcore项目部署到linux的docker里后,速度异常的慢,部署在iis下速度非常快. 特别是 接口里再调用其他接口,那速度绝对是蜗牛爬行的速度. 经过几个月的折腾,终于知道是什么问题了: ...
随机推荐
- IntelliJ IDEA插入时间文本
IntelliJ IDEA插入时间文本 需求: 在使用IDEA编辑一些文本时,需要插入指定格式的当前时间文本,首先想到的是找找有没有相关的IDEA插件,看到确实有别的猿做过相关的插件,但当时找到的文章 ...
- CSP 联训 3
好吧,又倒数了,就签了个 T2,100 pts. T1 我把相同颜色的存起来,每种颜色找出枚举选哪两个座位不合法的矩阵的左上和右下,如果找到的矩阵左下和右上也相同,则这个矩阵确实不合法,减去,但判断左 ...
- go 使用websocket
package chat import ( "encoding/json" "github.com/gorilla/websocket" "githu ...
- .NET 实现的交互式 OA 系统
前言 近期,我们在后台收到了粉丝们的留言,需要一个高效办公自动化(OA)系统.为了回应大家的期待,今天我们推荐一款既灵活又强大的 OA 系统解决方案,帮助提升日常办公效率和团队协作水平. 在日常工作中 ...
- 2021年3月国产数据库排行榜:OceanBase勇夺亚军 神舟挺进20强!
1 新春排行 2021年3月榜单新鲜出炉,同2月相比,本月榜单中十强产品还是原来的面孔,其中3款产品取得了新的名次,榜单座次调整超过半数.前三甲仍然是TiDB.OceanBase.达梦. 冠军:TiD ...
- iOS程序执行顺序和UIViewController的生命周期
一.程序的执行顺序 启动程序 --- -[AppDelegate application:didFinishLaunchingWithOptions:] --- --- -[AppDelegate ...
- Android复习(六)核心组件—>Activity 任何和返回栈、进程和应用生命周期、Parcelable和Bundle
了解任务和返回堆栈 任务是用户在执行某项工作时与之互动的一系列 Activity 的集合.这些 Activity 按照每个 Activity 打开的顺序排列在一个返回堆栈中.例如,电子邮件应用可能有一 ...
- 云原生周刊:Linkerd 发布 v2.14 | 2023.9.4
开源项目推荐 Layerform Layerform 是一个 Terraform 包装器,可帮助工程师使用纯 Terraform 文件构建可重用的基础设施. 为了实现重用,Layerform 引入了层 ...
- 在 KubeSphere 中使用 DevOps 部署 Java 微服务配置监控预警
作者:酱油瓶,携程后端技术专家, KubeSphere 社区用户 开发 Java 微服务并引入监控组件 我们基于 Spring Cloud +Nacos 开发 Java 微服务,Java 服务开发不做 ...
- NDT论文翻译
The Normal Distributions Transform: A New Approach to Laser Scan Matching 正态分布变换:激光扫描匹配的新方法 摘要:匹配 2D ...