当前位置: 首页 > news >正文

三、k8s 1.29 之 安装2

一、环境初始化

1、关闭swap分区

swap分区是当内存即将耗尽的时候,将小块磁盘当做内存使用,但由于磁盘的读写速度远低于内存,所以会影响集群性能

free -m
查看swap分区

swapoff -a 临时关闭

永久关闭,swap
原理是注释掉配置文件中的swap分区命令
sed -i 's:/dev/mapper/rl-swap:#/dev/mapper/rl-swap:g' /etc/fstab

2、修改主机名

因为kubeadm在安装kubernetes的时候,会默认将主机名称设置成节点名称,当前三台主机名都叫localhost,有点别扭

hostnamectl set-hostname k8s-master01hostnamectl set-hostname k8s-node01 / 02

编辑

vi /etc/hosts

habor是后期的镜像仓库

192.168.125.101 k8s-master01 m1
192.168.125.102 k8s-node01 n1
192.168.125.103 k8s-node02 n2
192.168.125.104 harbor

测试,任意节点

ping n1

3、安装ipvs

yum install -y ipvsadm

4、开启路由转发

echo 'net.ipv4.ip_forward=1' >> /etc/sysctl.conf刷新生效
sysctl -p

5、加载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/sysct1.conf
echo 'net.bridge.bridge-nf-call-ip6tables=1' >>/etc/sysct1.conf刷新
sysctl -p

6、安装docker

详细见 一、k8s 1.29 之 docker 模拟 pod

reboot

7、检查

ip addr

可见192网卡已经没信息了

ping www.baidu.com

ikuai -- 终端监控 -- ipv4

这就是在生产环境中真实的网络拓扑结构

8、安装 cri-docker

前因后果

docker 的语言是 OCRI ,其他容器是CRI,k8s官方为了统一kubelet 发出的命令,所以给 docker开发了个翻译器,将CRI 翻译为 OCRI

docker之死:k8s公司突然决定不维护这个翻译器了,

最后docker公司自己维护了个翻译器,就叫 cri-docker

------------------------------------------------------------------------------

cd /rootwget https://github.com/Mirantis/cri-dockerd/releases/download/v0.3.9/cri-dockerd-0.3.9.amd64.tgztar -xf cri-dockerd-0.3.9.amd64.tgz移动可执行文件
mv cri-dockerd/cri-dockerd /usr/bin/增加可执行权限
chmod a+x /usr/bin/cri-dockerd

编写服务管理脚本


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

添加套接字脚本


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 服务

重新加载 systemd 系统管理器的配置文件
systemctl daemon-reload设置cri-docker服务在系统启动时自动运行
systemctl enable cri-dockersystemctl start cri-docker检查cri-docker服务
systemctl is-active cri-docker

二、安装组件

1、安装kubeadm

1.1 上传安装 | 推荐

将下载好的 “kubernetes-1.29.2-150500.1.1.tar” 压缩包上传到各节点的 /root 的目录下

解压

tar -zxvf kubernetes-1.29.2-150500.1.1.tar.gz

安装所有本地软件包

cd kubernetes-1.29.2-150500.1.1yum -y install *

设置 kublet 开机自启
systemctl enable kubelet.service

启动过程: linux -- docker --- cri-docker  -- 容器

上面的启动过程,docker会启动容器,但是容器噶了他不管,所以引入kubulet,它是引导k8s启动的关键

                linux -- docker --- cri-docker  -- 容器 -- kubulet -- apiserver...

1.2 下载安装

添加 kubeadm yum 源

cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://pkgs.k8s.io/core:/stable:/v1.29/rpm/
enabled=1
gpgcheck=1
gpgkey=https://pkgs.k8s.io/core:/stable:/v1.29/rpm/repodata/repomd.xml.key
exclude=kubelet kubeadm kubectl cri-tools kubernetes-cni
EOF

安装 kubeadm 1.29 版本

yum install -y kubelet-1.29.0 kubectl-1.29.0 kubeadm-1.29.0
systemctl enable kubelet.service

2、初始化主节点

kubeadm init --apiserver-advertise-address=192.168.125.101 --image-repository registry.aliyuncs.com/google_containers --kubernetes-version 1.29.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/.kubesudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/configsudo chown $(id -u):$(id -g) $HOME/.kube/config

kubectl get node 查看看见一个未就绪的节点

两个从节点执行

kubeadm join 192.168.125.101:6443 --token tuk8yr.xa4i0nwtva8fe7sh --discovery-token-ca-cert-hash sha256:e653da5eaace182a42b24dc05e78ce21f21cc6b86db93498e08cc00eccfc51a1 --cri-socket unix:///var/run/cri-dockerd.sock

前面一段是主节点产生的

再次 get node 看见一主两从

3、安装网络插件

下载解压工具

yum -y install unzip

上传 calico 压缩包到 /root

解压缩

unzip calico.zip

进入解包目录

前两个分别是 calico 用到的所有镜像 、 配置文件

解压

 tar -zxvf calico-images.tar.gz 

选中四个镜像,三个节点都要导入到docker

在 /root/calico 下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

部署前 节点都没准备好,部署后稍得节点就变成就绪了

使用之前 查看配置文件是否改了

a

b 网段

curl https://raw.githubusercontent.com/projectcalico/calico/v3.26.3/manifests/calico-typha.yaml -o calico.yamlCALICO_IPV4POOL_CIDR	指定为 pod 地址# 修改为 BGP 模式
# Enable IPIP
- name: CALICO_IPV4POOL_IPIPvalue: "Always"  #改成Off

查看 pod

kubectl get pod -A

这样代表集群已经安装好了,拍照保存

三、其他

1、网络证书

在  /etc/kubernetes/pki 下有很多 https的证书,用来加密容器之间的通信

2、授权文件

3、组件启动配置文件

http://www.dtcms.com/a/335829.html

相关文章:

  • 重温k8s基础概念知识系列三(工作负载)
  • 什么是GD库?PHP中7大类64个GD库函数用法详解
  • Kafka 面试题及详细答案100道(23-35)-- 核心机制2
  • 基础IO_系统文件IO | 重定向【Linux】
  • 《程序员修炼之道》第三四章读书笔记
  • 《算法导论》第 27 章 - 多线程算法
  • scikit-learn/sklearn学习|套索回归Lasso解读
  • Ansible 核心功能进阶:自动化任务的灵活控制与管理
  • 自由职业数据科学:从细分定位到规模化的实战路线
  • 记忆翻牌游戏 greenfoot 开发
  • 机器人经验学习1 杂记
  • 电子电气架构 --- 自动驾驶汽车的下一步发展是什么?
  • Python自学10-常用数据结构之字符串
  • 机器学习算法篇(十三)------词向量转化的算法思想详解与基于词向量转换的文本数据处理的好评差评分类实战(NPL基础实战)
  • 深度解析 Tomcat ProtocolHandler 工作原理
  • 安装 Docker 支持 NVIDIA 显卡的依赖
  • AI Search进化论:从RAG到DeepSearch的智能体演变全过程
  • JavaScript性能优化实战(三):DOM操作性能优化
  • 计算机网络 HTTP1.1、HTTP2、HTTP3 的核心对比及性能分析
  • 【LLM】文献阅读-ISOLATE GPT:基于大语言模型的执行隔离架构
  • 第16节:自定义几何体 - 从顶点构建3D世界
  • 检查xrdp远程连接桌面卡顿的问题(附解决sh脚本)
  • Oracle查看历史会话信息视图介绍
  • 【大语言模型 04】Cross-Attention vs Self-Attention实战对比:解码器中的双重注意力机制
  • NumPy 库介绍:核心 API 详解
  • MYSQL-175. 组合两个表
  • Java 学习笔记(基础篇4)
  • Java学习笔记:IDEA简单使用技巧
  • 安卓14系统应用收不到开机广播
  • HTTP请求参数类型及对应的后端注解