Centos7部署k8s(单master节点安装)
单master节点部署k8s集群(Centos)

一、安装前准备
1、修改主机名
按照资源准备修改即可
# master01
hostnamectl set-hostname master01 ; bash
# node1
hostnamectl set-hostname node1 ; bash
# node2
hostnamectl set-hostname node2 ; bash
2、修改hosts文件
- 以下命令所有节点都要执行
cat > /etc/hosts <<EOF
192.168.2.10 master01
192.168.2.20 node1
192.168.2.30 node2
EOF
3、系统优化
- 安装依赖文件(以下命令所有节点都要执行)
yum install -y conntrack ntpdate ntp ipvsadm ipset jq iptables curl sysstat libseccomp wget vim net-tools git
- 关闭防火墙,设置防火墙为iptables,并清空规则(以下命令所有节点都要执行)
systemctl stop firewalld && systemctl disable firewalldyum -y install iptables-services && systemctl start iptables && systemctl enable iptables && iptables -F && service iptables save
- 关闭swap分区和selinux(以下命令所有节点都要执行)
# 关闭swap分区
swapoff -a && sed -i 's/.*swap.*/#&/g' /etc/fstab
# 关闭selinux
setenforce 0 &&sed -i "s/^SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
- 调整内核参数(以下命令所有节点都要执行)
modprobe br_netfilter
modprobe overlayyum -y install ipset ipvsadmcat > /etc/sysconfig/modules/ipvs.modules <<EOF
modprobe -- ip_vs
modprobe -- ip_vs_rr
modprobe -- ip_vs_wrr
modprobe -- ip_vs_sh
EOFkernel_version=$(uname -r | cut -d- -f1)
echo $kernel_versionif [ `expr $kernel_version \> 4.19` -eq 1 ]thenmodprobe -- nf_conntrackelsemodprobe -- nf_conntrack_ipv4
fichmod 755 /etc/sysconfig/modules/ipvs.modules && bash /etc/sysconfig/modules/ipvs.modules && lsmod | grep -e ip_vs -e nf_conntrackcat <<EOF> /etc/sysctl.d/kubernetes.conf
net.bridge.bridge-nf-call-iptables=1
net.bridge.bridge-nf-call-ip6tables=1
net.ipv4.ip_forward=1
net.ipv4.tcp_tw_recycle=0
vm.swappiness=0 # 禁止使用 swap 空间,只有当系统 OOM 时才允许使用它
vm.overcommit_memory=1 # 不检查物理内存是否够用
vm.panic_on_oom=0 # 开启 OOM
fs.inotify.max_user_instances=8192
fs.inotify.max_user_watches=1048576
fs.file-max=52706963
fs.nr_open=52706963
net.ipv6.conf.all.disable_ipv6=1
net.netfilter.nf_conntrack_max=2310720
EOFsysctl -p /etc/sysctl.d/kubernetes.conf
echo 1 > /proc/sys/net/ipv4/ip_forwardcat <<EOF | sudo tee /etc/modules-load.d/containerd.conf
overlay
br_netfilter
EOF
二、部署Containered
- 以下命令所有节点都要执行
##部署源并安装containerd
wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo
yum list |grep containerd
yum -y install containerd.io-1.6.4-3.1.el7.x86_64
mkdir -p /etc/containerd
containerd config default | sudo tee /etc/containerd/config.toml
##修改cgroup Driver为systemd
sed -ri 's#SystemdCgroup = false#SystemdCgroup = true#' /etc/containerd/config.toml
##应用配置
systemctl daemon-reload && systemctl enable containerd --now##设置crictl
cat << EOF >> /etc/crictl.yaml
runtime-endpoint: unix:///var/run/containerd/containerd.sock
image-endpoint: unix:///var/run/containerd/containerd.sock
timeout: 10
debug: false
EOF# 启动完成后就可以使用 containerd 的本地 CLI 工具 ctr 和 crictl 了,比如查看版本:
ctr version
crictl version
三、安装kubernetes
1、配置安装源
- 以下命令所有节点都要执行
# 网络原因,这里使用阿里源
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repocat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=http://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpghttp://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOFyum makecache fast
2、安装
- 以下命令所有节点都要执行
yum install -y kubeadm-1.22.10 kubelet-1.22.10 kubectl-1.22.10systemctl enable --now kubelet
四、初始化master添加node
1、初始化master节点
- 以下命令只在master01执行
kubeadm init \--kubernetes-version=v1.22.10 \--apiserver-advertise-address=192.168.2.10 \--image-repository registry.aliyuncs.com/google_containers \--pod-network-cidr=10.244.0.0/16 \--token-ttl=0 \--upload-certsmkdir -p $HOME/.kube
cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
chown $(id -u):$(id -g) $HOME/.kube/config
- 初始化完成后会输出一段日志
.....
.....
[addons] Applied essential addon: CoreDNS
[addons] Applied essential addon: kube-proxyYour Kubernetes control-plane has initialized successfully!To start using your cluster, you need to run the following as a regular user:mkdir -p $HOME/.kubesudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/configsudo chown $(id -u):$(id -g) $HOME/.kube/configYou should now deploy a pod network to the cluster.
Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at:https://kubernetes.io/docs/concepts/cluster-administration/addons/Then you can join any number of worker nodes by running the following on each as root:kubeadm join 192.168.2.151:6443 --token v2r5a4.veazy2xhzetpktfz \--discovery-token-ca-cert-hash sha256:daded8514c8350f7c238204979039ff9884d5b595ca950ba8bbce80724fd65d4# 最后这个kubeadm json... 是node节点加入集群的命令,需要在要加入集群的node节点上执行
2、node节点加入集群
- 以下命令只在node节点执行
kubeadm join 192.168.2.151:6443 --token v2r5a4.veazy2xhzetpktfz \--discovery-token-ca-cert-hash sha256:daded8514c8350f7c238204979039ff9884d5b595ca950ba8bbce80724fd65d4
五、安装网络插件flannel
- 以下命令只在master01节点执行
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
以上是centos7部署k8s的步骤,希望能够帮助到你!
相关文章:
Centos7部署k8s(单master节点安装)
单master节点部署k8s集群(Centos) 一、安装前准备 1、修改主机名 按照资源准备修改即可 # master01 hostnamectl set-hostname master01 ; bash # node1 hostnamectl set-hostname node1 ; bash # node2 hostnamectl set-hostname node2 ; bash2、修改hosts文件 以下命令所…...
RPA 职业前景:个人职场发展的 “新机遇”
1. RPA职业定义与范畴 1.1 RPA核心概念 机器人流程自动化(RPA)是一种通过软件机器人模拟人类操作,自动执行重复性、规则性任务的技术。RPA的核心在于其能够高效、准确地处理大量数据和流程,减少人工干预,从而提高工作…...
详解DeepSeek模型底层原理及和ChatGPT区别点
一、DeepSeek大模型原理 架构基础 DeepSeek基于Transformer架构,Transformer架构主要由编码器和解码器组成,在自然语言处理任务中,通常使用的是Transformer的解码器部分。它的核心是自注意力机制(Self - Attention),这个机制允许模型在处理输入序列时,关注序列中不同位…...
《2025年软件测试工程师面试》JAVA基础面试题
基础题 == 和 equals 的区别是什么? ==比较的是引用是否相同,比较的是对象的引用地址,如果比较的两个对象地址位不同,值相同也会返回falseequals()比较的是...
【算法学习之路】5.贪心算法
贪心算法 前言一.什么是贪心算法二.例题1.合并果子2.跳跳!3. 老鼠和奶酪 前言 我会将一些常用的算法以及对应的题单给写完,形成一套完整的算法体系,以及大量的各个难度的题目,目前算法也写了几篇,题单正在更新…...
如何打造一个安全稳定的海外社媒账号?
您好!随着TikTok、Instagram、Facebook等海外社媒平台的迅猛发展,越来越多的个人和企业希望借助这些平台实现全球化传播。然而,注册和运营海外社媒账号的过程中,许多人频繁遭遇到封禁、限制和账号关联等问题,常常导致严…...
【Python 数据结构 5.栈】
目录 一、栈的基本概念 1.栈的概念 2.入栈 入栈的步骤 3.出栈 出栈的步骤 4.获取栈顶元素 获取栈顶元素的步骤 二、 Python中的栈 顺序表实现 链表实现 三、栈的实战 1.LCR 123. 图书整理 I 思路与算法 2.LCR 027. 回文链表 思路与算法 3.1614. 括号的最大嵌套深度 思路与算法 …...
Qt开发⑪Qt网络+Qt音视频_使用实操
目录 1. Qt 网络 1.1 UDP Socket 1.2 TCP Socket 1.3 HTTP Client 2. Qt 音视频 2.1 Qt 音频 2.2 Qt 视频 本篇完。 1. Qt 网络 和多线程类似,Qt 为了支持跨平台, 对网络编程的 API 也进行了重新封装。 实际 Qt 开发中进行网络编程,也不一定使用…...
JavaEE--计算机是如何工作的
一、一台计算机的组成部分 1.CPU(中央处理器) 2.主板(一个大插座) 3.内存(存储数据的主要模板) 4.硬盘(存储数据的主要模板) 内存和硬盘对比: 内存硬盘读写速度快慢存…...
API接口:企业名称、注册号、统一社会信用代码、企业类型、成立日期和法定代表人等数据 API 接口使用指南
API接口:企业名称、注册号、统一社会信用代码、企业类型、成立日期和法定代表人等数据 API 接口使用指南 本文详细介绍一种基于 Web 搜索方式实现的企业信息查询接口,适用于数据补全、企业资质验证、信息查询等场景。文章内容涵盖接口功能、请求参数、返…...
微信小程序text组件decode属性的小问题
今天学习微信小程序的text组件,这个组件类似于网页制作中的span标签,内联文本只能用 text 组件,不能用 view,如 foo bar </text。 text组件常用属性如下表: 属性说明user-select文本是否可选,该属性会使…...
【计算机网络入门】初学计算机网络(九)
目录 1.令牌传递协议 2. 局域网&IEEE802 2.1 局域网基本概念和体系结构 3. 以太网&IEEE802.3 3.1 MAC层标准 3.1.1 以太网V2标准 编辑 3.2 单播广播 3.3 冲突域广播域 4. 虚拟局域网VLAN 1.令牌传递协议 先回顾一下令牌环网技术,多个主机形成…...
LeetCode 974:和可被 K 整除的子数组
974. 和可被 K 整除的子数组 - 力扣(LeetCode) 给定一个整数数组 nums 和一个整数 k ,返回其中元素之和可被 k 整除的非空 子数组 的数目。 子数组 是数组中 连续 的部分。 示例 1: 输入:nums [4,5,0,-2,-3,1], k …...
vector习题
完数和盈数 题目 完数VS盈数_牛客题霸_牛客网 一个数如果恰好等于它的各因子(该数本身除外)之和,如:6321。则称其为“完数”;若因子之和大于该数,则称其为“盈数”。 求出2到60之间所有“完数”和“盈数”。 输入描述ÿ…...
001-码云操作
码云操作 一、配置公钥1.官网地址1.进入 git bash2.查看生成的公钥3.设置到 Gitee4.测试 二、初始化一个项目1.新建仓库 一、配置公钥 方便后续提交代码不用填写密码 1.官网地址 官网地址:https://gitee.com/Git码云教程:https://gitee.com/help/arti…...
数据结构:二叉搜索树(排序树)
1.二叉搜索树的定义 二叉搜索树要么是空树,要么是满足以下特性的树 (1)左子树不为空,那么左子树左右节点的值都小于根节点的值 (2)右子树不为空,那么右子树左右节点的值都大于根节点的值 &#…...
【愚公系列】《Python网络爬虫从入门到精通》036-DataFrame日期数据处理
标题详情作者简介愚公搬代码头衔华为云特约编辑,华为云云享专家,华为开发者专家,华为产品云测专家,CSDN博客专家,CSDN商业化专家,阿里云专家博主,阿里云签约作者,腾讯云优秀博主,腾讯云内容共创官,掘金优秀博主,亚马逊技领云博主,51CTO博客专家等。近期荣誉2022年度…...
C++(蓝桥杯常考点)
前言:这个是针对于蓝桥杯竞赛常考的C内容,容器这些等下棋期再讲 C 在DEVC中注释和取消注释的方法:ctrl/ ASCII值(常用的): A-Z:65-90 a-z:97-122 0-9:48-57 换行/n:10科学计数法:eg:…...
支付宝 IoT 设备入门宝典(下)设备经营篇
上篇介绍了支付宝 IoT 设备管理,但除了这些基础功能外,商户还可以利用设备进行一些运营动作,让设备更好的帮助自己,本篇就会以设备经营为中心,介绍常见的设备相关能力和问题解决方案。如果对上篇感兴趣,可以…...
蓝桥杯 之 填空题-位运算与循环
文章目录 循环握手问题门牌制作-循环小球反弹幸运数艺术与篮球跑步卡片 位运算3个1美丽的2024 位运算 可以关注这个Lowbit(x) 如何判断最低位是否是1? num&1 1就说明num最低位是1 循环 循环 握手问题 握手问题 思路分析: 可以直接计算出来&…...
Python 实现电脑垃圾自动清理工具(附完整源码)
最近很多朋友都在问:为什么电脑明明配置不差, 但用久了还是越来越卡?其实很多时候,并不是硬件问题。而是:临时文件过多缓存堆积回收站没清理系统垃圾越来越多于是我用 Python 写了一个:“电脑垃圾自动清理工…...
GaussDB密码安全实战:从默认配置到企业级加固的完整操作指南
GaussDB密码安全实战:从默认配置到企业级加固的完整操作指南 接手一套新的GaussDB生产环境时,密码安全往往是DBA最容易忽视却又最致命的薄弱环节。去年某金融企业数据泄露事件的根源,正是由于沿用默认的MD5加密算法导致数万客户凭证被彩虹表破…...
禾赛季报图解:营收6.8亿 新业务今年将贡献1亿收入 拿下奔驰大单
雷递网 雷建平 5月20日禾赛科技(纳斯达克:HSAI;港交所:2525)日前公布其截至2026年3月31日止三个月的未经审计财务业绩。财报显示,禾赛2026年第一季度实现营收6.8亿,同比增长29.6%。禾赛本季度宣…...
超导量子比特控制技术:DRAG与神经网络优化
1. 超导量子比特控制技术概述在超导量子计算系统中,精确的量子态操控是实现高保真度量子门操作的基础。传统微波脉冲控制面临两大核心挑战:非绝热跃迁导致的能级泄漏和频率失谐引起的操作误差。DRAG(Derivative Removal by Adiabatic Gate&am…...
避开勒让德函数那些坑:GRACE数据处理中MATLAB高效计算与调试技巧
GRACE数据处理中的勒让德函数实战:MATLAB高效计算与调试全指南 当你在深夜的实验室里盯着屏幕上那个不断报错的MATLAB脚本,勒让德函数的计算结果与文献数据相差了几个数量级,而论文截稿日期就在三天后——这种场景对处理GRACE球谐数据的研究者…...
基于 Transformer 架构的翻译模型实践 - 主流分词器(Tokenizer)的对比
基于 Transformer 架构的翻译模型实践 - 主流分词器(Tokenizer)的对比 flyfish 参考 https://github.com/shaoshengsong/ pytorch -transformer-en-zh-translation-demo对hello不同的分词方案可以分为单个字符【h,e,l,…...
DHT11温湿度数据不准?可能是时序问题!用51单片机(STC12)和逻辑分析仪调试避坑指南
DHT11温湿度传感器时序调试实战:从波形分析到代码优化 1. 问题现象与初步排查 当你完成DHT11驱动代码编写,满怀期待地烧录到STC12单片机后,却发现OLED屏幕上显示的温湿度数据时而不准确、时而完全错误。这种问题在嵌入式开发中并不罕见&#…...
别再只会if-else了!用STM32状态机实现按键短按、长按、双击(附完整代码)
STM32状态机实战:从零设计支持短按、长按、双击的按键驱动库 在嵌入式开发中,按键处理看似简单,却是最能体现开发者设计功力的场景之一。传统的中断加延时消抖方式虽然能快速实现功能,但随着需求复杂化(比如需要区分短…...
某包丨图片+视频去水印去除工具
首先下载软件(工具在末尾),然后运行,自动打开网页如下: 接着打开某包,找到你要去除水印的图片或者视频的链接: 工具下载: 链接:https://pan.quark.cn/s/aec2cdde94ed...
减 10 斤 vs 瘦 10 斤,别再被体重秤骗了!
外行看体重,内行看体脂。 减重 10 斤,你掉的可能只是水分、肌肉、肠道废物,身材看着没变化。 瘦 10 斤(减脂),才是真正减掉脂肪组织,身材会明显小一圈,腰围、腿围肉眼可见地缩小。 这…...
