k8s配置

一、前期准备

1、修改主机的/etc/hosts文件挟持域名

[root@k8s-master ~]# vim /etc/hosts

192.168.8.199 k8s-master
192.168.8.200 k8s-node1
192.168.8.201 k8s-node2
2、配置yum源

[root@k8s-master ~]# cd /etc/yum.repos.d/
[root@k8s-master yum.repos.d]# vim kubernetes.repo

[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpmpackage-key.gpg

[root@k8s-master yum.repos.d]# vim docker-ce.repo

[docker-ce-stable]
name=Docker CE Stable - $basearch
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/$releasever/$basearch/stable
enabled=1
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg[docker-ce-stable-debuginfo]
name=Docker CE Stable - Debuginfo $basearch
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/$releasever/debug-$basearch/stable
enabled=0
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg[docker-ce-stable-source]
name=Docker CE Stable - Sources
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/$releasever/source/stable
enabled=0
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg[docker-ce-test]
name=Docker CE Test - $basearch
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/$releasever/$basearch/test
enabled=0
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg[docker-ce-test-debuginfo]
name=Docker CE Test - Debuginfo $basearch
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/$releasever/debug-$basearch/test
enabled=0
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg[docker-ce-test-source]
name=Docker CE Test - Sources
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/$releasever/source/test
enabled=0
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg[docker-ce-nightly]
name=Docker CE Nightly - $basearch
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/$releasever/$basearch/nightly
enabled=0
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg[docker-ce-nightly-debuginfo]
name=Docker CE Nightly - Debuginfo $basearch
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/$releasever/debug-$basearch/nightly
enabled=0
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg[docker-ce-nightly-source]
name=Docker CE Nightly - Sources
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/$releasever/source/nightly
enabled=0
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg

[root@k8s-master yum.repos.d]# yum clean all && yum makecache

3、安装必备软件

[root@k8s-master yum.repos.d]# yum install wget jq psmisc vim net-tools telnet yum-utils device-mapper-persistent-data lvm2 git -y 

4、同步时间

[root@k8s-master yum.repos.d]# yum -y install ntpdate

[root@k8s-master yum.repos.d]# ntpdate time2.aliyun.com
[root@k8s-master yum.repos.d]# crontab -e

*/5 * * * * /usr/sbin/ntpdate time2.aliyun.com

[root@k8s-master yum.repos.d]# which ntpdate
/usr/sbin/ntpdate

5、配置limit

[root@k8s-master yum.repos.d]# ulimit -SHn 65535
[root@k8s-master yum.repos.d]# vim /etc/security/limits.conf

* soft nofile 65536
* hard nofile 131072
* soft nproc 65535
* hard nproc 655350
* soft memlock unlimited
* hard memlock unlimited
6、安装 k8s ⾼可⽤性 Git 仓库

[root@k8s-master ~]# git clone https://gitee.com/dukuan/k8s-ha-install.git

重启虚拟机

二、配置内核模块

1、配置 ipvs 模块

[root@k8s-master ~]# yum install ipvsadm ipset sysstat conntrack libseccomp -y
[root@k8s-master ~]# modprobe -- ip_vs 
[root@k8s-master ~]# modprobe -- ip_vs_rr
[root@k8s-master ~]# modprobe -- ip_vs_wrr 
[root@k8s-master ~]# modprobe -- ip_vs_sh
[root@k8s-master ~]# modprobe -- nf_conntrack

[root@k8s-master ~]# vim /etc/modules-load.d/ipvs.conf

# 在系统启动时加载下列 IPVS 和相关功能所需的模块
ip_vs # 负载均衡模块
ip_vs_lc # 用于实现基于连接数量的负载均衡算法
ip_vs_wlc # 用于实现带权重的最少连接算法的模块
ip_vs_rr # 负载均衡rr算法模块
ip_vs_wrr # 负载均衡wrr算法模块
ip_vs_lblc # 负载均衡算法,它结合了最少连接(LC)算法和基于偏置的
轮询(Round Robin with Bias)算法
ip_vs_lblcr # 用于实现基于链路层拥塞状况的最少连接负载调度算法的>
模块
ip_vs_dh # 用于实现基于散列(Hashing)的负载均衡算法的模块
ip_vs_sh # 用于源端负载均衡的模块
ip_vs_fo # 用于实现基于本地服务的负载均衡算法的模块
ip_vs_nq # 用于实现NQ算法的模块ip_vs_sed # 用于实现随机早期检测(Random Early Detection)算法模>块
ip_vs_ftp # 用于实现FTP服务的负载均衡模块
ip_vs_sh
nf_conntrack # 用于跟踪网络连接的状态的模块
ip_tables # 用于管理防护墙的机制
ip_set # 用于创建和管理IP集合的模块
xt_set # 用于处理IP数据包集合的模块,提供了与iptables等网络工具的
接口
ipt_set #用于处理iptables规则集合的模块
ipt_rpfilter # 用于实现路由反向路径过滤的模块
ipt_REJECT # iptables模块之一,用于将不符合规则的数据包拒绝,并返
回特定的错误码
ipip # 用于实现IP隧道功能的模块,使得数据可以在两个网络之间进行传
输
2、配置 k8s 内核

[root@k8s-master ~]# yum -y install kubernetes

[root@k8s-master ~]# vim /etc/sysctl.d/k8s.conf

#写入k8s所需内核模块
net.bridge.bridge-nf-call-iptables = 1          # 控制网络桥接与iptables之间的网络转发行为
net.bridge.bridge-nf-call-ip6tables = 1         # 用于控制网络桥>接(bridge)的IP6tables过滤规则。当该参数设置为1时,表示启用对网>络桥接的IP6tables过滤规则
fs.may_detach_mounts = 1                # 用于控制文件系统是否允>许分离挂载,1表示允许
net.ipv4.conf.all.route_localnet = 1            # 允许本地网络上>的路由。设置为1表示允许,设置为0表示禁止。
vm.overcommit_memory=1          # 控制内存分配策略。设置为1表示允
许内存过量分配,设置为0表示不允许。
vm.panic_on_oom=0               # 决定当系统遇到内存不足(OOM)时
是否产生panic。设置为0表示不产生panic,设置为1表示产生panic。
fs.inotify.max_user_watches=89100               # inotify可以监视
的文件和目录的最大数量。
fs.file-max=52706963            # 系统级别的文件描述符的最大数量>。
fs.nr_open=52706963                     # 单个进程可以打开的文件>描述符的最大数量。
net.netfilter.nf_conntrack_max=2310720          # 网络连接跟踪表>的最大大小。
net.ipv4.tcp_keepalive_time = 600               # TCP保活机制发送
探测包的间隔时间(秒)。
net.ipv4.tcp_keepalive_probes = 3               # TCP保活机制发送
探测包的最大次数。
net.ipv4.tcp_keepalive_intvl =15                # TCP保活机制在发
送下一个探测包之前等待响应的时间(秒)。
net.ipv4.tcp_max_tw_buckets = 36000     # TCP TIME_WAIT状态的bucket数量。
net.ipv4.tcp_tw_reuse = 1               # 允许重用TIME_WAIT套接字
。设置为1表示允许,设置为0表示不允许。
net.ipv4.tcp_max_orphans = 327680               # 系统中最大的孤>套接字数量。
net.ipv4.tcp_orphan_retries = 3                 # 系统尝试重新分>配孤套接字的次数。
net.ipv4.tcp_syncookies = 1             # 用于防止SYN洪水攻击。设
置为1表示启用SYN cookies,设置为0表示禁用。
net.ipv4.tcp_max_syn_backlog = 16384            # SYN连接请求队列
的最大长度。
net.ipv4.ip_conntrack_max = 65536               # IP连接跟踪表的>最大大小。
net.ipv4.tcp_max_syn_backlog = 16384            # 系统中最大的监>听队列的长度。
net.ipv4.tcp_timestamps = 0             # 用于关闭TCP时间戳选项。
net.core.somaxconn = 16384              # 用于设置系统中最大的监>听队列的长度

三、基本组件安装

1、安装 Containerd

[root@k8s-master ~]# yum remove -y podman runc containerd
[root@k8s-master ~]# yum -y install  containerd.io

[root@k8s-master ~]# yum remove -y docker

[root@k8s-master ~]# yum -y install docker-ce docker-ce-cli

2、配置 Containerd 所需模块

 [root@k8s-master ~]# cat <<EOF | sudo tee /etc/modules-load.d/containerd.conf
> overlay
> br_netfilter
> EOF

[root@k8s-master ~]# modprobe -- overlay
[root@k8s-master ~]# modprobe -- br_netfilter

3、配置 Containerd 所需内核

[root@k8s-master ~]# vim /etc/sysctld./99-kubernetes-cri.conf

net.bridge.bridge-nf-call-iptables  = 1
net.ipv4.ip_forward                 = 1
net.bridge.bridge-nf-call-ip6tables = 1

[root@k8s-master ~]# sysctl --system
 

4、containerd配置文件

[root@k8s-master ~]# mkdir -p /etc/containerd

[root@k8s-master ~]# containerd config default | tee /etc/containerd/config.toml 

[root@k8s-master ~]# vim /etc/containerd/config.toml 

           #128 sandbox_image = "registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.9"

[root@k8s-master ~]# systemctl daemon-reload
[root@k8s-master ~]# systemctl enable --now containerd

5、配置 crictl 客户端连接的运⾏位置

[root@k8s-master ~]# vim /etc/crictl.yaml

runtime-endpoint: unix:///run/containerd/containerd.sock
image-endpoint: unix:///run/containerd/containerd.sock 
timeout: 10 
debug: false
6、安装 Kubernetes 组件 

[root@k8s-master ~]# yum install kubeadm-1.28* kubelet-1.28* kubectl-1.28* -y

[root@k8s-master ~]# yum -y remove kubernetes-client-1.5.2-0.7.git269f928.el7.x86_64
[root@k8s-master ~]# yum -y install kubectl-1.28.2-0.x86_64 
[root@k8s-master ~]# yum -y install kubelet-1.28.2-0.x86_64 

[root@k8s-master ~]# yum -y install kubeadm-1.28.2-0.x86_64 

[root@k8s-master ~]# systemctl daemon-reload
[root@k8s-master ~]# systemctl enable --now kubelet
 

7、Kubernetes 集群初始化 
1.Kubeadm 配置⽂件

[root@k8s-master ~]# vim kubeadm-config.yaml 

apiVersion: kubeadm.k8s.io/v1beta3              # 指定Kubernetes>配置文件的版本,使用的是kubeadm API的v1beta3版本
bootstrapTokens:                # 定义bootstrap tokens的信息。这>些tokens用于在Kubernetes集群初始化过程中进行身份验证
- groups:               # 定义了与此token关联的组- system:bootstrappers:kubeadm:default-node-tokentoken: 7t2weq.bjbawausm0jaxury                # bootstrap token的值ttl: 24h0m0s          # token的生存时间,这里设置为24小时usages:                       # 定义token的用途- signing             # 数字签名- authentication              # 身份验证
kind: InitConfiguration         # 指定配置对象的类型,InitConfiguration:表示这是一个初始化配置
localAPIEndpoint:               # 定义本地API端点的地址和端口advertiseAddress: 192.168.8.199bindPort: 6443
nodeRegistration:               # 定义节点注册时的配置criSocket: unix:///var/run/containerd/containerd.sock         # 容器运行时(CRI)的套接字路径name: k8s-master              # 节点的名称taints:               # 标记- effect: NoSchedule          # 免调度节点key: node-role.kubernetes.io/control-plane          # 该节点>为控制节点
---
apiServer:              # 定义了API服务器的配置certSANs:             # 为API服务器指定了附加的证书主体名称(SAN),指定IP即可- 192.168.8.199timeoutForControlPlane: 4m0s          # 控制平面的超时时间,这>里设置为4分钟
apiVersion: kubeadm.k8s.io/v1beta3              # 指定API Server>版本
certificatesDir: /etc/kubernetes/pki    # 指定了证书的存储目录
clusterName: kubernetes         # 定义了集群的名称为"kubernetes"
controlPlaneEndpoint: 192.168.8.199:6443                # 定义了>控制节点的地址和端口
controllerManager: {}           # 控制器管理器的配置,为空表示使>用默认配置
etcd:           # 定义了etcd的配置local:                # 本地etcd实例dataDir: /var/lib/etcd              # 数据目录
imageRepository: registry.cn-hangzhou.aliyuncs.com/google_containers            # 指定了Kubernetes使用的镜像仓库的地址,阿里云的镜
像仓库。
kind: ClusterConfiguration              # 指定了配置对象的类型,ClusterConfiguration:表示这是一个集群配置
kubernetesVersion: v1.28.2              # 指定了kubernetes的版本
networking:             # 定义了kubernetes集群网络设置dnsDomain: cluster.local              # 定义了集群的DNS域为:cluster.localpodSubnet: 172.16.0.0/16              # 定义了Pod的子网serviceSubnet: 10.96.0.0/16   # 定义了服务的子网
scheduler: {}           # 使用默认的调度器行为

[root@k8s-master ~]# kubeadm config migrate --old-config kubeadm-config.yaml --new-config new.yaml

2.下载组件镜像

[root@k8s-master ~]# kubeadm config images pull --config /root/new.yaml

3.集群初始化

[root@k8s-master ~]# kubeadm init --config /root/new.yaml --upload-certs

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

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

相关文章

MVVM 设计模式:构建高效且可维护的前端应用

在现代前端开发中&#xff0c;随着应用规模的不断扩大和复杂性的增加&#xff0c;采用合适的设计模式变得尤为重要。MVVM&#xff08;Model-View-ViewModel&#xff09;作为一种流行的设计模式&#xff0c;它通过分离业务逻辑和用户界面&#xff0c;提高了代码的可维护性和可测…

【代码随想录|图论part03之后】

代码随想录|数组 704. 二分查找,27. 移除元素 一、part031、101. 孤岛的总面积1.1 dfs版本1.2 BFS版本2.102. 沉没孤岛3、103. 水流问题4、104.建造最大岛屿二、part041、110. 字符串接龙2、105.有向图的完全可达性3、106. 岛屿的周长三、part05-06 并查集理论1、107. 寻找存在…

Unity Qframework 加载UI的方式

如图所示 : // Resources 加载 UIKit.OpenPanel("Resources/UIPrefab/UIMenuPanel"); // Resources 加载并传递数据 UIKit.OpenPanel<UIMenuPanel>(new UIMenuPanelData() { m_Modle this.m_Modle }, prefabName: "UIPrefab/UIMenuPanel"); …

软考高项(十八)项目绩效域 ★重点集萃★

&#x1f451; 个人主页 &#x1f451; &#xff1a;&#x1f61c;&#x1f61c;&#x1f61c;Fish_Vast&#x1f61c;&#x1f61c;&#x1f61c; &#x1f41d; 个人格言 &#x1f41d; &#xff1a;&#x1f9d0;&#x1f9d0;&#x1f9d0;说到做到&#xff0c;言出必行&am…

CRIO与Windows下LabVIEW开发对比

LabVIEW在CRIO和Windows平台上开发时&#xff0c;尽管同属于一个编程环境&#xff0c;但在硬件架构、实时性能、模块化设计等方面存在显著差异。CRIO系统通常应用于工业自动化和嵌入式控制&#xff0c;具有实时操作系统支持和强大的I/O扩展能力&#xff1b;而Windows系统则更适…

网络编程 0904作业

作业 1、多进程多线程并发服务器&#xff0c;再实现一遍&#xff08;重点模型&#xff09; 多进程并发服务器 多进程服务器 PIDserver.c 代码 #include <myhead.h> #define SERPORT 7777 #define SERIP "192.168.19.128" #define BACKLOG 10void hande(int…

【MySQL进阶之路】数据库的操作

目录 创建数据库 字符集和校验规则 查看数据库支持的字符集 查看数据库支持的字符集校验规则 指定字符集和校验规则 在配置文件中配置 查看数据库 显示创建语句 修改数据库 删除数据库 数据库的备份和恢复 备份整个数据库 备份特定表 备份多个数据库 备份所有数据…

编译可执行命令的FFmpeg

上一篇讲到了使用FFmpeg生成视频封面图&#xff0c;其实也可以直接使用FFmpeg相关命令截取一帧的图像数据保存到本地&#xff0c;然后加载到ImageView上&#xff0c;有时候使用命令确实比写代码更加简单和使人轻松一点&#xff0c;所以这一篇是讲解如何导入FFmpeg相关源码 然后…

ChatGPT3.5/4.0新手使用手册,国内中文版使用教程

引言 欢迎使用ChatGPT&#xff01;无论你是刚开始接触AI聊天机器人&#xff0c;还是已经有了一些使用经验&#xff0c;这篇新手使用手册将帮助你快速上手&#xff0c;并且从ChatGPT中获得最优的体验。本文主要聚焦于提示词&#xff08;Prompt&#xff09;的使用教学&#xff0…

Spring 源码解读:实现Spring容器的初始化与刷新机制

引言 在Spring框架中&#xff0c;容器的初始化和刷新机制是其核心工作流程的重要部分&#xff0c;它负责加载Bean定义、创建Bean实例、进行依赖注入并管理整个Bean的生命周期。在实际开发中&#xff0c;ApplicationContext提供的refresh()方法扮演着关键角色&#xff0c;它帮助…

C++系列-STL容器之list

STL容器之list list容器的基本结构list容器的特点list容器的优点list容器的缺点 list容器的构造函数list容器的常用接口list赋值操作list大小及空否list访问list迭代器相关list增删查改push and popinsert其它 寄扬州韩绰判官 杜牧〔唐代〕 青山隐隐水迢迢&#xff0c;秋尽江南…

vant 动态查询下拉菜单(可用)

动态查询item项 <van-form submit"onSubmit" ref"formRef"><Title title"企业信息" title-line title-size"19" class"ml-[18px] mb-[18px]"></Title><van-cell-group inset class"py-[18px]&quo…

Python实战项目:天气数据爬取+数据可视化(完整代码)_python爬虫实战

一、选题的背景 随着人们对天气的关注逐渐增加&#xff0c;天气预报数据的获取与可视化成为了当今的热门话题&#xff0c;天气预报我们每天都会关注&#xff0c;天气情况会影响到我们日常的增减衣物、出行安排等。每天的气温、相对湿度、降水量以及风向风速是关注的焦点。通过…

Linux——网络(5)

一、sqlite3性能测试 1. 程序效率测试 时间相关接口&#xff1a; int gettimeofday(struct timeval*tv, struct timezone *tz); 功能&#xff1a;得到从1970年1月1日0时0分0秒到现在的秒数 精度到微妙 参数&#xff1a; tv&#xff1a;…

什么是视频缓存服务器,它有哪些作用?

视频缓存服务器通常拥有大容量的存储空间和高速的读写能力&#xff0c;它通过缓存(即临时存储)用户经常访问的视频内容&#xff0c;来优化内容的分发过程。这种服务器通常部署在网络中的关键位置&#xff0c;如靠近用户接入点的位置&#xff0c;以降低用户访问视频内容时的网络…

维信小程序禁止截屏/录屏

一、维信小程序禁止截屏/录屏 //录屏截屏,禁用wx.setVisualEffectOnCapture({visualEffect:hidden});wx.setVisualEffectOnCapture(Object object) 测试安卓手机&#xff1a; 用户截屏&#xff0c;被禁用 用户录屏&#xff0c;录制的是空白内容/黑色内容的视频。 二、微信小…

鸿蒙系统为什么能安装安卓的APP

鸿蒙系统能够安装安卓的APP&#xff0c;主要得益于其设计理念和技术实现上的几个关键点&#xff1a; 一、设计理念 鸿蒙系统的设计初衷并非完全取代安卓系统&#xff0c;而是与其共存&#xff0c;并建立一个更加广泛的软件生态圈。这一理念体现在鸿蒙系统对安卓应用的兼容性上…

浙大数据结构:01-复杂度2 Maximum Subsequence Sum

数据结构MOOC PTA习题 01-复杂度2 Maximum Subsequence Sum #include <iostream> using namespace std; const int M 100005; int a[M]; int main() {int k;cin >> k;int f 1;for (int i 0; i < k; i){cin >> a[i];if (a[i] > 0)//如果出现大于0则…

【HuggingFace Transformers】OpenAIGPTModel源码解析

OpenAIGPTModel源码解析 1. GPT 介绍2. OpenAIGPTModel类 源码解析 说到ChatGPT&#xff0c;大家可能都使用过吧。2022年&#xff0c;ChatGPT的推出引发了广泛的关注和讨论。这款对话生成模型不仅具备了强大的语言理解和生成能力&#xff0c;还能进行非常自然的对话&#xff0c…

1.初识ChatGPT:AI聊天机器人的革命(1/10)

引言 在当今的数字化世界中&#xff0c;人工智能&#xff08;AI&#xff09;正以其独特的方式重塑我们的生活和工作。其中&#xff0c;AI聊天机器人作为人机交互的前沿技术&#xff0c;已经成为企业与客户沟通、提供个性化服务的重要工具。这些机器人通过模拟人类的对话方式&a…