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下速度非常快. 特别是 接口里再调用其他接口,那速度绝对是蜗牛爬行的速度. 经过几个月的折腾,终于知道是什么问题了: ...
随机推荐
- Nuxt Kit 中的模板处理
title: Nuxt Kit 中的模板处理 date: 2024/9/20 updated: 2024/9/20 author: cmdragon excerpt: 摘要:本文详细介绍了在Nuxt ...
- eclipse真的落后了嘛?这几点优势其他IDE比不上
序言 各位好啊,我是会编程的蜗牛,作为java开发者,我们每天都要和开发工具打交道.我以前一开始入门java开发的时候,就是用的eclipse,虽然感觉有点繁琐,但好在还能用.后来偶然间发现了IDEA ...
- 【赵渝强老师】使用Oracle的跟踪文件
一.什么是跟踪文件? 跟踪文件中包含了大量而详细的诊断和调试信息.通过对跟踪文件的解读和分析,我们可以定位问题.分析问题和解决问题.从跟踪文件的产生的来源来看,跟踪文件又可以分为两类:一类是数据库的操 ...
- 在 Node.js 中使用 ES6 模块 import 和 export
1.Node版本 >= 13 2.使用 ES6 模块 a.js export const A = 'A'; index.js import { A } from './a.js'; consol ...
- 简单粗暴的实现 Blazor Server 登录鉴权
既然是简单粗暴,那么就不用关心诸如 IDentityServer4,OAuth 之类的组件,也不使用 AuthenticationStateProvider.IAuthService, razor 页 ...
- Js数组&高阶函数
数组也是一种复合数据类型,在数组可以存储多个不同类型的数据 数组中存储的是有序的数据,数组中的每个数据都有一个唯一的索引可以通过索引来操作获取数据 数组中存储的数据叫做元素 任何类型的值都可以成为数组 ...
- 格点拉格朗日插值与PME算法
技术背景 在前面的一篇博客中,我们介绍了拉格朗日插值法的基本由来和表示形式.这里我们要介绍一种拉格朗日插值法的应用场景:格点拉格朗日插值法.这种场景的优势在于,如果我们要对整个实数空间进行求和或者积分 ...
- 强化学习算法笔记之【DDPG算法】
强化学习笔记之[DDPG算法] 目录 强化学习笔记之[DDPG算法] 前言: 原论文伪代码 DDPG 中的四个网络 代码核心更新公式 前言: 本文为强化学习笔记第二篇,第一篇讲的是Q-learning ...
- 【VMware VCF】使用 PowerShell 脚本管理 SDDC Manager 中的软件包。
SDDC Manager 中有两种类型的软件包,分别是"升级/修补包(PATCH)"和"安装包(INSTALL)"."升级/修补包"用于执行 ...
- C语言常见概念
目录 1.C语言是什么? 2.编译器的选择Clion 3.第一个C语言程序 4.main函数 5.printf和库函数 6.关键字介绍 7.字符和ASCII编码 8.转义字符 9.语句和语句分类 9. ...