基于Kubernetes v1.24.0的集群搭建(二)

上一篇文章主要是介绍了,每台虚拟机的环境配置。接下来我们开始有关K8S的相关部署。

另外补充一下上一篇文章中的K8S的changelog链接:
https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.24.md

1 配置yum源

所有节点都需要执行此操作

curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
6e77796d33d0e18ca404854bdbfe599e.png
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
ea043c6fda7e7422153d62258ea1130c.png
yum clean all
e077152dfce2547e793b4e9638196955.png
yum makecache
3b38a08b488d91c6adc9a6cda2129c5f.png

2 br_netfilter和ip_conntrack模块配置

  • 所有节点都需要执行此操作

  • 加载 br_netfilter 模块以启用内核 ipv4 转发,1.20+强依赖该模块

  • ip_conntrack 模块来记录iptables 网络包的状态,并把每条记录保存到table 里

modprobe br_netfilter
modprobe ip_conntrack

这里为了防止bridge-nf-call-ip6tables和bridge-nf-call-iptables无法启动,需要配置br_netfilter开机自动启动。

  1. 新建 /etc/rc.sysinit 文件

cat >>/etc/rc.sysinit<<EOF
#!/bin/bash
for file in /etc/sysconfig/modules/*.modules ; do
[ -x $file ] && $file
done
EOF
97c85b54dd7e8425caecb99585750298.png
  1. 新建br_netfilter.modules和ip_conntrack.modules,再执行chmod 755来增加权限

echo "modprobe br_netfilter" >/etc/sysconfig/modules/br_netfilter.modules
echo "modprobe ip_conntrack" >/etc/sysconfig/modules/ip_conntrack.modules
c75f6aaf5dae332c106cec8d5c83750a.png

3 配置内核转发及网桥过滤

添加网桥过滤及内核转发配置文件

cat <<EOF >/etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
vm.swappiness=0
EOF
02bf51d42b5457e1404876552efc1655.png

net.bridge.bridge-nf-call-ip6tables:是否在 ip6tables 链中过滤 IPv6 包
net.bridge.bridge-nf-call-iptables:是否在 iptables 链中过滤 IPv4 包

执行如下命令,使配置生效

$ sysctl -p /etc/sysctl.d/k8s.conf

4 安装ipset及ipvs

所有主机都需要操作

4.1 安装ipset

ipset是iptables的扩展,它允许你创建匹配整个地址集合的规则。而不像普通的iptables链只能单IP匹配, ip集合存储在带索引的数据结构中,这种结构即时集合比较大也可以进行高效的查找,除了一些常用的情况,比如阻止一些危险主机访问本机,从而减少系统资源占用或网络拥塞,IPsets也具备一些新防火墙设计方法,并简化了配置。

yum install ipset -y
cebe42e878185b82c7c6ffa0a114d605.png

4.2 安装ipvs

IPVS (IP Virtual Server)是基于Netfilter的、作为linux内核的一部分实现传输层负载均衡的技术。

IPVS集成在LVS(Linux Virtual Server)中,它在主机中运行,并在真实服务器集群前充当负载均衡器。IPVS可以将对TCP/UDP服务的请求转发给后端的真实服务器,因此IPVS天然支持Kubernetes Service。

随着kubernetes使用量的增长,其资源的可扩展性变得越来越重要。特别是对于使用kubernetes运行大型工作负载的开发人员或者公司来说,service的可扩展性至关重要。

kube-proxy是为service构建路由规则的模块,之前依赖iptables来实现主要service类型的支持,比如(ClusterIP和NodePort)。但是iptables很难支持上万级的service,因为iptables纯粹是为防火墙而设计的,并且底层数据结构是内核规则的列表。

kubernetes早在1.6版本就已经有能力支持5000多节点,这样基于iptables的kube-proxy就成为集群扩容到5000节点的瓶颈。举例来说,如果在一个5000节点的集群,我们创建2000个service,并且每个service有10个pod,那么我们就会在每个节点上有至少20000条iptables规则,这会导致内核非常繁忙。

基于IPVS的集群内负载均衡就可以完美地解决这个问题。IPVS是专门为负载均衡设计的,并且底层使用哈希表这种非常高效的数据结构,几乎可以允许无限扩容。

cat > /etc/sysconfig/modules/ipvs.modules <<EOF
#!/bin/bash
modprobe -- ip_vs
modprobe -- ip_vs_rr
modprobe -- ip_vs_wrr
modprobe -- ip_vs_sh
modprobe -- nf_conntrack
EOF
chmod 755 /etc/sysconfig/modules/ipvs.modules && bash /etc/sysconfig/modules/ipvs.modules && lsmod | grep -e ip_vs -e nf_conntrack
6fbe7e88056692cc2fb4f713caa6db53.png

4.3 安装ipvsadm

为了便于查看ipvs的代理规则,最好安装一下管理工具ipvsadm。

yum install -y ipset ipvsadm
40ef02614c53a7aa3e134b79f1232dd2.png

5 containerd

5.1 安装containerd

containerd-{version}-linux-amd64.tar.gz 只包含containerd
cri-containerd-cni-{version}-linux-amd64.tar.gz 里面包含了systemd配置文件,containerd以及cni、runc等相关工具包,接下来我们将使用本包进行安装

打开github containerd releases,查看最新包,这里的最新版本是1.6.6

04b31c5ff176c8fc15b198e5bbb915a7.png

但是打开containerd.io,却发现最新版本是1.6.4

bd06cecec752a7959589ee4cb0bd8593.png

后面我在下载1.6.6版本的时候,老是报Connection refused

d05f8ee6f45d1aab9c2dcd46a0650f83.png

但是下载1.6.4的时候,却十分的顺利,不知道是为什么,但是并不影响我们的部署,所以接下来我们直接使用1.6.4.

wget https://github.com/containerd/containerd/releases/download/v1.6.4/cri-containerd-cni-1.6.4-linux-amd64.tar.gz
5930500e32b81fc3d435f264cdd4885e.png

然后我们把压缩包解压到系统的根目录中

tar zxvf cri-containerd-cni-1.6.4-linux-amd64.tar.gz -C /
d090d14b5cbfa3c2d15813e4515450ad.png

5.2 配置containerd

mkdir -p /etc/containerd
containerd config default > /etc/containerd/config.toml
830bf4b7f73d035dcf798005e202c462.png

设置容器的cgroup驱动为systemd

61fc95e48274389fcebeae46872a3c24.png

替换默认pause镜像地址

31c5a3048e8cf6193266f047d2a5aa0b.png

设置开机启动

systemctl enable containerd --now
885b4b3d8e01b02f6e5977acb40c8944.png

测试安装结果

crictl version
c2a1da12ffd1a07064334d37d49bdbfc.png

参考链接

http://www.manongjc.com/detail/25-lioggelnywerjyf.html
https://www.kubernetes.org.cn/1904.html
https://www.toutiao.com/article/7105957860210819623/
https://i4t.com/5451.html
https://blog.frognew.com/2022/05/kubeadm-install-kubernetes-1.24.html
https://learn.lianglianglee.com/%E4%B8%93%E6%A0%8F/Kubernetes%20%E5%AE%9E%E8%B7%B5%E5%85%A5%E9%97%A8%E6%8C%87%E5%8D%97/07%20%E5%AE%B9%E5%99%A8%E5%BC%95%E6%93%8E%20containerd%20%E8%90%BD%E5%9C%B0%E5%AE%9E%E8%B7%B5.md

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/284487.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[转]Python 获取Windows管理员权限

最近在写一个可以自动更换 hosts 的 python 脚本&#xff0c;但是操作 hosts 需要管理员权限 &#xff0c;所以就想着要怎么获取。 总结了一下&#xff0c;有三种方法可以获取&#xff0c;下面分别介绍一下。 1. 以管理员运行 cmd 这个方法很简单&#xff0c;也无需多说&#x…

JavaScript中的一些特殊用法(一)

为什么80%的码农都做不了架构师&#xff1f;>>> 1. 不使用script自闭合标签 script中使用自闭合标签&#xff0c;虽然他在XHTML中合法&#xff0c;但是不符合HTML规范&#xff0c;而且得不到某些浏览器的正确解析。我曾经就在引入EXT时使用此方式&#xff0c;导致无…

SPICE简史

如今每一天都有不知其数的半导体芯片设计公司与设计验证工程师&#xff0c;在用着电路仿真软件SPICE。SPICE广泛应用在仿真模拟电路&#xff08;例如运放Op Amp&#xff0c;能隙基准稳压电源Bandgap Reference&#xff0c;数模/模数转换 AD/DA等&#xff09;&#xff0c;混合信…

【GlobalMapper精品教程】003:影像裁剪、批量影像分幅案例详解

本文以案例的形式&#xff0c;讲解Globalmapper中进行影像矩形框裁剪&#xff0c;矢量范围裁剪&#xff0c;标准图幅批量分幅的方法&#xff0c;配套实验数据为数据包中的data003.rar。订阅专栏后私信作者&#xff0c;获取中文安装包及配套实验数据包&#xff0c;便于同步学习。…

基于Kubernetes v1.24.0的集群搭建(三)

1 使用kubeadm部署Kubernetes 如无特殊说明&#xff0c;以下操作可以在所有节点上进行。1.1 首先我们需要配置一下阿里源cat <<EOF > /etc/yum.repos.d/kubernetes.repo [kubernetes] nameKubernetes baseurlhttp://mirrors.aliyun.com/kubernetes/yum/repos/kubernet…

C++获取本机的ip地址程序

C获取本机的ip地址程序 #include <WinSock2.h> #pragma comment(lib,"ws2_32") //链接到ws2_32动态链接库class CInitSock { public:CInitSock(BYTE minorVer 2,BYTE majorVer 2){WSADATA wsaData;WORD VersionRequset;VersionRequset MAKEWORD(mino…

BAT批处理代码快速打开注册表并定位到指定目录

主要代码&#xff1a; echo off echo %1 copy %~nx0 c:\windows\system32 if "%1" NEQ "" (set regPath%1) else (set /p regPath输入打开的注册表路径:) :trimRight if "%regPath:~-1%""\" set "regPath%regPath:~0,-1%" …

Elasticsearch的Groovy Script自定义评分检索

需求&#xff1a;以索引中的boostapp列作为评分的基础分值&#xff0c;同时根据carpublishtime&#xff08;数据的刷新时间字段&#xff09;按时间进行衰减。 基于Groovy脚本实现。 1、query脚本方式&#xff1a; {"fields": ["boost","ucarid",…

stm32串口通讯问题

stm32串口通讯问题 在串口试验中&#xff0c;串口通讯不正常&#xff0c;则可能会出现以下问题&#xff1a; 1. 配置完成后&#xff0c;串口没有任何消息打印。 原因&#xff1a;1&#xff0c;端口配置有问题&#xff0c;需要重新检查I/O口的配置 2&#xff0c;接线有问题&…

中国元宇宙白皮书

PS&#xff1a;PDF目录&#xff08;书签&#xff09;是为便于阅读&#xff0c;重新整理过的。 2022《中国元宇宙白皮书》-互联网文档类资源-CSDN下载1月26日&#xff0c;2022《中国元宇宙白皮书》在北京中关村正式全网发布。该白皮书由国科创新研究院首席科学家更多下载资源、学…

【GlobalMapper精品教程】002:GlobalMapper中文版安装后的基本设置

本文讲述安装globalmapper后的一些简单基本设置&#xff08;持续更新&#xff09;&#xff0c;为后续深入学习软件打下基础。订阅专栏后私信作者&#xff0c;获取中文安装包及配套实验数据包。 文章目录1. 工具条的显示与关闭2. 面积单位设置3. 选择所选面要素的边框4. 二三维联…

SaltStack入门篇之远程执行和配置管理

一、SaltStack概述 Salt&#xff0c;,一种全新的基础设施管理方式&#xff0c;部署轻松&#xff0c;在几分钟内可运行起来&#xff0c;扩展性好&#xff0c;很容易管理上万台服务器&#xff0c;速度够快&#xff0c;服务器之间秒级通讯。 salt底层采用动态的连接总线, 使其可以…

ArgoCD 用户管理、RBAC 控制、脚本登录、App 同步

命令行登录参考&#xff1a;argocd 登录登出[1]登录&#xff1a;echo y | argocd login argocd-server.argocd.svc.cluster.local --password argoadmin.smallsoup --username admin登出&#xff1a;argocd logout argocd-server.argocd.svc.cluster.local创建用户、授权创建用…

敏捷需要重构吗?不需要吗?

在传统的Scrum中&#xff0c;Sprint的长度为一个月&#xff0c;现在一般时间更短。这意味着团队就得在项目刚开始的两周或者一个月内交付完成的软件。软件来自于产品负责人的backlog。它必须由特征组成。要正确的做到Scrum&#xff0c;我们不能做基础架构之类的东西&#xff0c…

【GlobalMapper精品教程】005:影像拼接与裁切(分幅)作业案例教程

本文讲述Globalmapper影像拼接与裁剪案例教程。 文章目录 一、影像的拼接(1)针对少量影像的拼接(2)针对大量影像的拼接二、影像的裁剪一、影像的拼接 (1)针对少量影像的拼接 如果影像数量比较小,可以通过加载→导出的方式进行拼接。 如下图所示,案例数据(配套实验数…

元宇宙行业深度研究报告:为什么元宇宙是下一代互联网?

目录 1、什么是元宇宙&#xff1f;为什么元宇宙是下一代互联网 1.1、 元宇宙&#xff1a;下一代沉浸式互联网 1.1.1、超越虚拟与现实的科幻畅想&#xff1a;元宇宙概念来源 1.1.2、新技术由点突破连接成面&#xff0c;移动互联网继承者的孕育 1.1.3、元宇宙的五大要素&…

细节总结(一)

self.XXX与_XXX的区别 通过self.XXX得到的数据相当于调用get函数取值,等价于[self XXX];而通过_XXX获取的是自己的实例变量,直接对变量进行操作,并未调用get函数。所以,通过懒加载方式初始化的变量只能通过self.XXX调用,否则可能会存在未初始化的问题。self.xxx是对属性的访问;…

redis 安装错误 jemalloc.h: No such file or directory

为什么80%的码农都做不了架构师&#xff1f;>>> 错误描述 [rootmysql-rtb-slave redis-4.0.1]# make && make install cd src && make all make[1]: Entering directory /usr/local/src/redis-4.0.1/srcCC Makefile.dep make[1]: Leaving director…

OAuth,JWT ,OIDC你们搞得我好乱啊

hi&#xff0c;这里是桑小榆&#xff0c;这次分享的不是生活文&#xff0c;而是技术文。基于OAuth2.0协议的授权认证&#xff0c;初次接触授权认证知识的时候&#xff0c;出现了不少热门名词&#xff0c;“OAuth”&#xff0c;“JWT”&#xff0c;“OIDC”&#xff0c;这简直让…

MyEclipse快捷键大全

存盘 Ctrls(肯定知道) 注释代码 Ctrl/ 取消注释 Ctrl\(Eclipse3已经都合并到Ctrl/了) 代码辅助 Alt/ 快速修复 Ctrl1 代码格式化 CtrlShiftf 整理导入 CtrlShifto 切换窗口 Ctrlf6 <可改为ctrltab方便> ctrlshiftM 导入未引用的包 ctrlw 关闭单个窗口 F3 跳转到类、变量的…