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

基于KubeAdm搭建多节点K8S集群

基于KubeAdm搭建多节点K8S集群

    • 1、基本流程(注意 docker 版本和kubeadm、kubelet、kubectl的关系)
    • 2、安装utils依赖(安装范围:主节点+工作节点)
    • 3、安装docker (安装范围:主节点+工作节点)
    • 4、配置阿里云镜像源(主节点+工作节点)
    • 5、安装kubelet kubeadm kubectl(主节点+工作节点)
    • 6、主节点初始化(主节点)
      • a、初始化之后,会输出一个join命令,先复制出来,node节点加入master会使用。
      • b、拷贝k8s认证文件
      • c、查看工作节点:
      • d、配置k8s的node节点【node节点操作】
    • 7、安装网络插件
    • 8、查看节点状态
    • 9、查看系统pod状态
    • 遇到的坑

1、基本流程(注意 docker 版本和kubeadm、kubelet、kubectl的关系)

k8s 搭建 流程 : CentOs => utils依赖 => docker =>kubeadm, kubelet , kubectl => master init => node join => 调配网络

2、安装utils依赖(安装范围:主节点+工作节点)

yum install -y yum-utils device-mapper-persistent-data lvm2

3、安装docker (安装范围:主节点+工作节点)

1、设置阿里云镜像
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo2、安装docker
yum -y install docker-ce-24.0.63、查看docker版本
docker -v4、配置开机自启动
systemctl enable docker.service5、启动docker
systemctl start docker6、查看docker 启动状态
systemctl status docker

4、配置阿里云镜像源(主节点+工作节点)

cat > /etc/yum.repos.d/kubernetes.repo << EOF
[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/rpm-package-key.gpg
EOF

5、安装kubelet kubeadm kubectl(主节点+工作节点)

yum install -y kubelet-1.23.6 kubeadm-1.23.6 kubectl-1.23.6
systemctl enable kubelet

6、主节点初始化(主节点)

kubeadm init \
--apiserver-advertise-address=172.31.149.123 \
--image-repository registry.aliyuncs.com/google_containers \
--kubernetes-version v1.23.6 \
--service-cidr=10.96.0.0/12 \
--pod-network-cidr=10.244.0.0/16 \
--ignore-preflight-errors=all

–apiserver-advertise-address 主节点的内网ip地址
–image-repository 由于默认拉取镜像地址k8s.gcr.io国内无法访问,这里指定阿里云镜像仓库地址
–kubernetes-version K8s版本,与上面安装的一致
–service-cidr 集群内部虚拟网络,Pod统一访问入口
–pod-network-cidr Pod网络,与下面部署的CNI网络组件yaml中保持一致

a、初始化之后,会输出一个join命令,先复制出来,node节点加入master会使用。

在这里插入图片描述

b、拷贝k8s认证文件

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

c、查看工作节点:

kubectl get nodes

注:由于网络插件还没有部署,还没有准备就绪 NotReady,继续操作。

d、配置k8s的node节点【node节点操作】

向集群添加新节点,执行在kubeadm init输出的kubeadm join命令
在这里插入图片描述
默认token有效期为24小时,当过期之后,该token就不可用了。这时就需要重新创建token,可以直接使用命令快捷生成:

kubeadm token create --print-join-command

7、安装网络插件

kubectl apply -f  https://raw.githubusercontent.com/flannel-io/flannel/master/Documentation/kube-flannel.yml

8、查看节点状态

kubectl get node

9、查看系统pod状态

kubectl get pods -n kube-system

在这里插入图片描述

遇到的坑

[kubelet-check] It seems like the kubelet isn't running or healthy.
[kubelet-check] The HTTP call equal to 'curl -sSL http://localhost:10248/healthz' failed with error: Get "http://localhost:10248/healthz": dial tcp 127.0.0.1:10248: connect: connection refused.
[kubelet-check] The HTTP call equal to 'curl -sSL http://localhost:10248/healthz' failed with error: Get "http://localhost:10248/healthz": dial tcp 127.0.0.1:10248: connect: connection refused.Unfortunately, an error has occurred:timed out waiting for the conditionThis error is likely caused by:- The kubelet is not running- The kubelet is unhealthy due to a misconfiguration of the node in some way (required cgroups disabled)If you are on a systemd-powered system, you can try to troubleshoot the error with the following commands:- 'systemctl status kubelet'- 'journalctl -xeu kubelet'Additionally, a control plane component may have crashed or exited when started by the container runtime.To troubleshoot, list all containers using your preferred container runtimes CLI.Here is one example how you may list all Kubernetes containers running in docker:- 'docker ps -a | grep kube | grep -v pause'Once you have found the failing container, you can inspect its logs with:- 'docker logs CONTAINERID'

解决方式

vim  /etc/docker/daemon.json
docker 默认驱动为 cgroupfs ,只需要添加"exec-opts": ["native.cgroupdriver=systemd"],

相关文章:

基于KubeAdm搭建多节点K8S集群

基于KubeAdm搭建多节点K8S集群 1、基本流程&#xff08;注意 docker 版本和kubeadm、kubelet、kubectl的关系&#xff09;2、安装utils依赖&#xff08;安装范围&#xff1a;主节点工作节点&#xff09;3、安装docker &#xff08;安装范围&#xff1a;主节点工作节点&#xff…...

VuePress实现自动获取文章侧边栏目录功能

&#x1f468;&#x1f3fb;‍&#x1f4bb; 热爱摄影的程序员 &#x1f468;&#x1f3fb;‍&#x1f3a8; 喜欢编码的设计师 &#x1f9d5;&#x1f3fb; 擅长设计的剪辑师 &#x1f9d1;&#x1f3fb;‍&#x1f3eb; 一位高冷无情的编码爱好者 大家好&#xff0c;我是 DevO…...

nginx配置实例-负载均衡

1 实现效果&#xff1a; 浏览器访问nginx&#xff0c;输入访问nginx地址&#xff0c;然后负载均衡到tomcat8080和8002端口中 2 准备工作&#xff1a; 1&#xff09;准备两台tomcat容器&#xff0c;一台8080&#xff0c;一台8081 2&#xff09;在两台tomcat里面的webapps目录…...

Nginx的跨域问题解决

同源策略 浏览器的同源策略&#xff1a;是一种约定&#xff0c;是浏览器最核心也是最基本的安全功能&#xff0c;如果浏览器少了同源策略&#xff0c;则浏览器的正常功能可能都会受到影响。 同源: 协议、域名(IP)、端口相同即为同源 跨域问题 有两台服务器分别为A,B,如果从…...

ts的交叉类型是什么

交叉类型是TypeScript中的一种类型操作符&#xff0c;用于将多个类型合并成一个类型&#xff0c;表示同时拥有这些类型的属性和方法。交叉类型使用&符号进行连接。例如&#xff0c;以下代码定义了一个交叉类型Person & Serializable&#xff1a; interface Person {na…...

【【萌新的SOC学习之AXI接口简介】】

萌新的SOC学习之AXI接口简介 AXI总线的初步介绍 AXI 总线是 ARM AMBA 一部分 &#xff08;高级可扩展接口&#xff09; AMBA(高级微控制器总线架构&#xff09; &#xff1a;开放的片内互联的总线标准&#xff0c;能再多主机设计中实现多个控制器和外围设备之间的连接和管理。…...

ios safari 浏览器跳转页面没有自适应

今天开发遇到了一个问题&#xff0c;当用户点击浏览器中的表单进行注册时&#xff0c;表单元素会放大&#xff0c;随后跳转页面无法还原到初始状态。 这是因为如果 的 font-size 被设定为 16px 或更大&#xff0c;那么 iOS 上的 Safari 将正常聚焦到输入表单中。但是&#xff…...

node、npm、nvm相关概念区别

node&#xff1a;一个基于Chrome V8引擎的JavaScript运行环境&#xff0c;让JavaScript 运行在服务端的开发平台。 nvm&#xff1a;node.js 版本管理工具。不同项目可能需要不同版本的 node&#xff0c;可以使用 nvm 来管理 node.js 版本。 安装教程参考 nvm下载及详细安装教程…...

Dubbo3应用开发—Dubbo3注册中心(zookeeper、nacos、consul)的使用

Dubbo3注册中心的使用 zookeeper注册中心的使用 依赖引入 <dependency><groupId>org.apache.dubbo</groupId><artifactId>dubbo-dependencies-zookeeper-curator5</artifactId><version>${dubbo.version}</version><type>p…...

Chrome自动播放限制策略

原文链接&#xff1a;Chrome 自动播放限制策略 Web浏览器正在朝着更严格的自动播放策略发展&#xff0c;以便改善用户体验&#xff0c;最大限度地降低安装广告拦截器的积极性并减少昂贵和/或受限网络上的数据消耗。这些更改旨在为用户提供更大的播放控制权&#xff0c;并使开发…...

k8s安全机制

安全机制 一、机制说明二、认证&#xff08;Authentication&#xff09;HTTP Token 认证HTTP Base 认证HTTPS 证书认证&#xff08;最严格&#xff09; 三、鉴权&#xff08;Authorization&#xff09;角色角色绑定主体&#xff08;subject&#xff09;Role and ClusterRoleRol…...

Java多线程:Runnable与Callable的区别和原理

Java多线程&#xff1a;Runnable与Callable的区别和原理 在Java多线程编程中&#xff0c;我们经常使用Runnable和Callable接口来创建并执行线程。这两个接口都是Java.lang包中的部分&#xff0c;并且都用于实现多线程。虽然它们有些相似之处&#xff0c;但它们之间也存在明显的…...

解决yolo无法指定显卡的问题,实测v5、v7、v8有效

方法1 基本上这个就能解决了&#xff01;&#xff01;&#xff01; 在train.py的最上方加上下面这两行&#xff0c;注意是最上面&#xff0c;其次指定的就是你要使用的显卡 import os os.environ[CUDA_VISIBLE_DEVICES]6方法2&#xff1a; **问题&#xff1a;**命令行参数指…...

arc 166 a

#include<bits/stdc.h> using namespace std; using VI vector<int>; using ll long long; const int mod 998244353; //当只有ab的时候&#xff0c;看作把a可以向右移动 //1 - x 是a 1 - y a //x中的 a 的 下标 < y 中 a 的下标 //这样就可以通过位移得到 …...

Lua05——Lua基本数据类型

lua 是动态类型语言&#xff0c;变量使用前不需要定义类型&#xff0c;在使用时直接赋值即可。 1 基本数据类型 值可以存储在变量中&#xff0c;作为参数传递或作为结果返回。 lua中有八个基本数据类型&#xff1a; nil 只有值nil属于该类&#xff0c;表示一个无效值&#…...

一文3000字从0到1使用pytest-xdist实现分布式APP自动化测试

目录 01、分布式测试的原理 02、测试项目 03、环境准备 04、搭建步骤 05、分布式执行 06、测试报告 不知道大家有没有遇到这样一种情况&#xff0c;实际工作中&#xff0c;app自动化测试的用例可能是成百上千条的&#xff0c;如果放在一台机器上跑&#xff0c;消耗的时间…...

pyqt5:pandas 读取 Excel文件或 .etx 电子表格文件,并显示

pip install pandas ; pip install pyqt5; pip install pyqt5-tools; 编写 pyqt5_read_etx.py 如下 # -*- coding: utf-8 -*- """ pandas 读取 Excel文件或 .etx 电子表格文件&#xff0c;显示在 QTableWidget 中 """ import os import sys…...

【QT】Windows 编译并使用 QT 5.12.7源码

1、下载 QT 源码 QT5.12.7源码下载地址: download | QT 5.12.7 选择任意一种下载即可&#xff0c;适用于 Windows 和 Linux 环境 ​ 这里选择下载 .zip 文件。 2、安装依赖 (1) 安装 perl perl 安装包下载地址: download | perl for windows 根据当前系统选择对应版本。…...

php实战案例记录(15)获取GET和POST请求参数

在PHP中&#xff0c;可以使用$_GET和$_POST超全局变量来获取GET和POST请求参数。 获取GET请求参数&#xff1a; 要获取GET请求参数&#xff0c;可以使用$_GET超全局变量。它是一个关联数组&#xff0c;其中键是参数的名称&#xff0c;值是参数的值。例如&#xff0c;如果URL是…...

k8s-9 ingress-nginx 特性

TLS加密 创建证书 测试 auth认证 创建认证文件 rewrite重定向 进入域名 会自动重定向hostname.html 示例二&#xff1a; 测试 后面必须跟westos 这个关键字 canary金丝雀发布 基于header灰度 场景&#xff1a;版本的升级迭代&#xff0c;比如一个service 升级到另…...

C语言字符串操作的高效实现与优化

1. C语言字符串操作的高效实现方法 1.1 标准字符串函数的效率问题 在C语言开发中&#xff0c; <string.h> 头文件提供的字符串处理函数是日常开发的基础工具。其中&#xff0c;字符串复制和连接函数使用最为频繁&#xff0c;但它们的效率问题往往被开发者忽视。 标准…...

从“机器会思考”的执念说起,聊聊神经网络到底是个啥(下篇)

一、神经网络的类型&#xff1a;别被名字搞晕&#xff0c;核心就几种 现在叫“神经网络”的东西五花八门&#xff0c;但绝大多数都是从下面这几类衍生出去的。 1. 前馈神经网络&#xff08;FNN&#xff09;—— 最朴素的直筒子 数据从输入层进&#xff0c;经过若干隐藏层&am…...

ArcMap新手必看:5分钟搞定面要素的四至信息提取(附字段重命名技巧)

ArcMap新手实战&#xff1a;5分钟高效提取面要素四至信息与字段优化技巧 刚接触ArcMap的GIS实习生或规划人员&#xff0c;常常需要快速处理行政区划数据并生成规范的四至报告。面对属性表中密密麻麻的英文字段名和冗余数据&#xff0c;如何高效完成从数据加载到结果美化的全流程…...

特征选择新思路:Laplacian Score与PCA/Lasso对比实验报告

特征选择方法深度对比&#xff1a;Laplacian Score在真实数据集中的突围表现 当面对高维数据时&#xff0c;特征选择就像是在嘈杂的市场中寻找真正有价值的声音。传统的PCA和Lasso方法已经服务了我们多年&#xff0c;但Laplacian Score带来的图论视角正在悄然改变游戏规则。本文…...

ElastAlert vs Prometheus:2024年日志告警与指标告警终极选型指南

ElastAlert vs Prometheus&#xff1a;2024年日志告警与指标告警终极选型指南 【免费下载链接】elastalert Easy & Flexible Alerting With ElasticSearch 项目地址: https://gitcode.com/gh_mirrors/el/elastalert 在当今复杂的IT环境中&#xff0c;有效的监控告警…...

三步解锁wxappUnpacker:从小白到高手的蜕变指南

三步解锁wxappUnpacker&#xff1a;从小白到高手的蜕变指南 【免费下载链接】wxappUnpacker 项目地址: https://gitcode.com/gh_mirrors/wxappu/wxappUnpacker 工具定位&#xff1a;小程序逆向工程的瑞士军刀 wxappUnpacker是一款专注于微信小程序解包的开源工具集&am…...

这次咱们来拆解PFC二维浆岩直剪案例。这个案例有意思的地方在于它展示了颗粒材料与刚性墙体接触面的剪切行为,咱们边看代码边分析剪切曲线的门道

PFC案例9&#xff0c;浆-岩二维直剪&#xff0c;包含代码源文件、代码解释、曲线分析先看模型搭建的关键代码段&#xff1a; ;生成浆体颗粒 ball distribute ... ;创建上下剪切盒 wall generate id 1 vertices 0 0 1 0 1 1 0 1 wall generate id 2 vertices 0 0.2 1 0.2;设置…...

3步搞定AtlasOS系统技术故障:Xbox控制器驱动完全解决方案

3步搞定AtlasOS系统技术故障&#xff1a;Xbox控制器驱动完全解决方案 【免费下载链接】Atlas &#x1f680; An open and lightweight modification to Windows, designed to optimize performance, privacy and security. 项目地址: https://gitcode.com/GitHub_Trending/at…...

Open Webాలు架构设计:构建高性能自托管AI平台的工程实践

Open Webాలు架构设计&#xff1a;构建高性能自托管AI平台的工程实践 【免费下载链接】open-webui Open WebUI 是一个可扩展、功能丰富且用户友好的自托管 WebUI&#xff0c;设计用于完全离线操作&#xff0c;支持各种大型语言模型&#xff08;LLM&#xff09;运行器&#xf…...

政务短信钓鱼攻击机理与防控研究 —— 以美国宾州 PennDOT 诈骗事件为例

摘要 2026 年 3 月 27 日&#xff0c;宾夕法尼亚州官方发布安全预警&#xff0c;提示公众警惕冒充 PennDOT&#xff08;宾州交通局&#xff09;的短信钓鱼诈骗。此类攻击以车辆管理、罚单缴费、证件状态异常为诱饵&#xff0c;通过仿冒政务身份诱导用户点击恶意链接&#xff0c…...