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

最新版kubeadm搭建k8s(已成功搭建)

kubeadm搭建k8s(已成功搭建)

环境配置

主节点 k8s-master:4核8G、40GB硬盘、CentOS7.9(内网IP:10.16.64.67)
从节点 k8s-node1: 4核8G、40GB硬盘、CentOS7.9(内网IP:10.16.64.68)
从节点 k8s-node2: 4核8G、40GB硬盘、CentOS7.9(内网IP:10.16.64.69)

# 查看配置
cat /etc/*release

在这里插入图片描述

1 初始化配置

关闭selinux、swap

三台机器都需要执行

# 关闭 Selinux:防止服务可能无法启动(企业中基本上都会选择关闭)
sed -i 's/enforcing/disabled/' /etc/selinux/config
setenforce 0# 关闭 Swap:防止 kubelet 组件无法启动
swapoff -a
sed -ri 's/.*swap.*/#&/' /etc/fstab 

在这里插入图片描述

设置主机名

# 主服务器(bash显示主机名)
hostnamectl set-hostname k8s-master
bash# 从服务器1(bash显示主机名)
hostnamectl set-hostname k8s-node1
bash# 从服务器2(bash显示主机名)
hostnamectl set-hostname k8s-node2
bash

启动内核参数iptables

# 访问网络插件丢包
cat > /etc/sysctl.d/k8s.conf << EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF# 生效配置
sysctl --system

在这里插入图片描述

2 安装docker&配置加速

三台服务器都执行

安装docker

# 1 配置阿里云镜像源
wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo# 2 yum安装docker
yum -y install docker-ce

在这里插入图片描述

配置docker加速

# 启动docker
systemctl enable docker && systemctl start docker#  配置docker镜像加速
# 配置加速器
cat > /etc/docker/daemon.json << EOF{"registry-mirrors": ["https://8er86g8v.mirror.aliyuncs.com"],"exec-opts": ["native.cgroupdriver=systemd"]}
EOF# 重启 Docker
systemctl restart docker

安装cri-dockerd(docker与k8s通信的中间程序:翻译官)

因为k8s的容器运行时默认不再使用docker,因此如果要通过docker作为k8s的容器运行时需要安装对应组件,让其作为中间人来让k8s与docker通信。

# 安装cri-dockerd(docker与k8s通信的中间程序)
# 下载
wget https://github.com/Mirantis/cri-dockerd/releases/download/v0.3.2/cri-dockerd-0.3.2-3.el7.x86_64.rpm# 安装
rpm -ivh cri-dockerd-0.3.2-3.el7.x86_64.rpm

修改cri-docker镜像地址

#  修改cri-docker依赖的镜像地址
# 修改配置
vim /usr/lib/systemd/system/cri-docker.service
# 将 ExecStart 配置改成下述这样:
ExecStart=/usr/bin/cri-dockerd --container-runtime-endpoint fd:// --pod-infra-container-image=registry.aliyuncs.com/google_containers/pause:3.9

在这里插入图片描述

重新加载cri-docker

systemctl daemon-reload
systemctl enable cri-docker && systemctl start cri-docker

3 部署k8s

安装kubeadm&kubelet&kubectl

  • kubeadm:集群的初始化部署和升级
  • kubectl:命令行工具,用于向APIServer发送指令,创建pod、Deployment等。
  • kubelet :是在每个节点上运行的代理,它负责接受主节点上的 API Server下放的指令,它还负责监控 Pod 的状态,并向 API Server 报告状态更新。此外,kubelet 与容器运行时(如 Docker 或 containerd)交互,以启动和管理容器。

用户通过kubectl向API Server发送指令,API Server接受到指令后交给kubelet去执行对应操作,同时kubelet定期上报信息给API Server。

### 三台机器上都执行
# 1 添加yum源仓库
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# 2 安装kubeadm、kubelet、kubectl
# 安装工具
yum install -y kubelet-1.28.0 kubeadm-1.28.0 kubectl-1.28.0# 设置开机自启
systemctl enable kubelet

master节点执行kubeadm init初始化集群

# apiserver-advertise-address 设置为主机内网ip地址
# --apiserver-advertise-address=10.16.64.67 配置k8s apiserver地址,用于监听、响应其他节点请求
# --service-cidr=10.96.0.0/12 配置k8s Service的IP范围
#  --pod-network-cidr=10.244.0.0/16 配置k8s pod的IP范围
kubeadm init \--apiserver-advertise-address=10.16.64.67 \--image-repository registry.aliyuncs.com/google_containers \--kubernetes-version v1.28.0 \--service-cidr=10.96.0.0/12 \--pod-network-cidr=10.244.0.0/16 \--cri-socket=unix:///var/run/cri-dockerd.sock

出现下述输出,说明安装完成:
在这里插入图片描述
按照控制台输出提示,在 Master 节点中执行上述图片中的命令:

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

从节点执行kubeadm join加入k8s集群

接下来,将控制台中第二条命令在其他 Worker 节点中执行(并且指定一下socket):

# 尾部记得指定 socket,不要直接CV控制台!
# 如果不小心把 kubeadm join 命令清屏了,使用:kubeadm token create --print-join-command 重新生成
kubeadm join 10.16.64.67:6443 --token cxoc4h.fq38t2ftoppoedos --discovery-token-ca-cert-hash sha256:e82ccf4df53c534ab78c2aa19b1c644dc72ceb60a23ad7691c59a31170a21128 --cri-socket=unix:///var/run/cri-dockerd.sock

在这里插入图片描述

下面我们可以按照提示在Master节点执行kubectl get nodes 查看集群节点信息。可以看到虽然其他节点加入了k8s集群,但状态是NotReady不正常的,这是因为没有下载网络插件进行通信:
在这里插入图片描述

安装Calico网络插件,让node间通信

下面我们可以按照提示在Master节点执行kubectl get nodes 查看集群节点信息。可以看到虽然其他节点加入了k8s集群,但状态是NotReady不正常的,这是因为没有下载网络插件进行通信:
在这里插入图片描述
此时需要 Master 节点安装 Calico 网络插件,通过下述命令进行下载 calico.yaml 文件:

# 下载 calico.yaml 文件
cd ~
wget https://xuzhibin-bucket.oss-cn-beijing.aliyuncs.com/k8s/calico.yaml

下载完毕后,修改 calico.yaml 文件中的 CALICO_IPV4POOL_CIDR 配置,修改成上面 pod-network-cidr 的值:10.244.0.0/16(初始化k8s集群时,在master节点上执行的那个kubeadm init命令),如下所示:

# 通过calico来完成node间的通信
vim calico.yaml

在这里插入图片描述
修改完毕后,Master 应用配置文件:

kubectl apply -f calico.yaml

在这里插入图片描述
等待3分钟后,查看 Pod 运行状态,发现 pods 全部状态为 Running 成功,这样就说明 k8s 集群部署完毕了!

kubectl get pods -A -o wide

在这里插入图片描述
在这里插入图片描述
参考:https://blog.csdn.net/weixin_46594796/article/details/139649056

相关文章:

最新版kubeadm搭建k8s(已成功搭建)

kubeadm搭建k8s&#xff08;已成功搭建&#xff09; 环境配置 主节点 k8s-master&#xff1a;4核8G、40GB硬盘、CentOS7.9&#xff08;内网IP&#xff1a;10.16.64.67&#xff09; 从节点 k8s-node1&#xff1a; 4核8G、40GB硬盘、CentOS7.9&#xff08;内网IP&#xff1a;10…...

C++学习笔记-友元函数的定义与使用

一、引言 在C中&#xff0c;友元函数&#xff08;Friend Function&#xff09;是一个独特而强大的特性&#xff0c;它打破了类的封装性&#xff0c;允许一个或多个非成员函数访问类的私有&#xff08;private&#xff09;和保护&#xff08;protected&#xff09;成员。尽管这…...

熵、交叉熵、KL散度

这里写目录标题 熵KL散度引入交叉熵。交叉熵的二分类公式&#xff1a; 再次理解SoftMax函数结束 熵 熵&#xff0c;是一个物理上的概念&#xff0c;表示一个系统的不确定性程度&#xff0c;或者表示一个系统的混乱程序。 下边是信息熵的演示&#xff1a; 信息熵的公式如下&…...

THS配置keepalive(yjm)

启动完THS管理控制台和THS后&#xff0c;登录控制台&#xff0c;进入实例管理》节点管理&#xff0c;可以分别使用界面配置和编辑配置设置长连接。 1、界面配置 点击界面配置》集群设置&#xff0c;启用长连接&#xff0c;设置长连接数、最大请求数和超时时间。 2、编辑配置 …...

新加坡裸机云多IP服务器特性

新加坡裸机云多IP服务器是一种高性能、稳定性强&#xff0c;且具备多IP地址特性的服务器。它主要适用于需要高度计算性能、网络连接稳定和高安全性的业务场景&#xff0c;如跨境外贸等。下面将详细探讨该类型服务器的特性&#xff0c;rak部落为您整理发布新加坡裸机云多IP服务器…...

深入理解ADB:Android调试桥详解与使用指南

&#x1f34e;个人博客&#xff1a;个人主页 &#x1f3c6;个人专栏&#xff1a;Android ⛳️ 功不唐捐&#xff0c;玉汝于成 目录 前言 正文 1. 什么是ADB&#xff1f; ADB的基本原理&#xff1a; 2. ADB的安装与配置 安装ADB工具集&#xff1a; 配置ADB环境变量&am…...

PACS-医学影像信息管理系统,全影像科室PACS源码,内置包括MPR、CMPR、VR等三维处理功能

PACS系统可以覆盖医院现有放射、CT、MR、核医学、超声、内镜、病理、心电等绝大部分DICOM和非DICOM检查设备&#xff0c;支持从科室级、全院机、集团医院级乃至到区域PACS的平滑扩展&#xff0c;能够与医院HIS、集成平台的有效集成和融合&#xff0c;帮助医院实现了全院医学影像…...

无人机搭载无人机反制设备可行性分析

一、引言 随着无人机技术的飞速发展&#xff0c;无人机在各个领域的应用越来越广泛。然而&#xff0c;无人机的不当使用也可能带来安全隐患和隐私问题。因此&#xff0c;无人机反制设备应运而生&#xff0c;用于对非法或危险无人机进行干扰和控制。本文将对无人机搭载无人机反…...

MATLAB绘制方波、锯齿波、三角波、正弦波和余弦波、

一、引言 MATLAB是一种具有很强的数值计算和数据可视化软件&#xff0c;提供了许多内置函数来简化数学运算和图形的快速生成。在MATLAB中&#xff0c;你可以使用多种方法来快速绘制正弦波、方波和三角波。以下是一些基本的示例&#xff0c;展示了如何使用MATLAB的命令来实现正弦…...

【通信协议-RTCM】MSM语句(2) - RINEXMSM7语句总结(重要!自动化开发计算卫星状态常用)

注释&#xff1a; 在工作中主要负责的是RTCM-MSM7语句相关开发工作&#xff0c;所以主要介绍的就是MSM7语句相关内容 1. 相位校准参考信号 2. MSM1、MSM2、MSM3、MSM4、MSM5、MSM6和MSM7的消息头内容 DATA FIELDDF NUMBERDATA TYPENO. OF BITSNOTES Message Number - 消息编…...

ios CCUIFont.m

// // CCUIFont.h // CCFC // //#import <Foundation/Foundation.h>// 创建字体对象 #define CREATE_FONT(fontSize) [UIFont systemFontOfSize:(fontSize)]interface UIFont(cc) (void)logAllFonts;end // // CCUIFont.m // CCFC // //#import "CCUIFont.h&…...

调度子系统在特定时间执行

时序逻辑调度器设计模式允许您安排Simulink子系统在指定时间执行。以下模型说明了这种设计模式。 时序逻辑调度器图表包含以下逻辑&#xff1a; 时序逻辑调度器的关键行为 时序逻辑调度器图表包含两个状态&#xff0c;它们以不同的速率调度函数调用子系统A1、A2和A3的执行&…...

【QAC】Dashboard服务端如何配置

【更多软件使用问题请点击亿道电子官方网站】 1、 文档目标 解决Dashboard服务端如何配置的问题。 2、 问题场景 客户想使用Dashboard&#xff0c;Dashboard服务端如何配置。 3、软硬件环境 1、软件版本&#xff1a;HelixQAC23.04 2、机器环境&#xff1a;Windows 64bit 3…...

深入理解Linux网络(四):TCP接收阻塞

TCP socket 接收函数 recv 发出 recvfrom 系统调用。 进⼊系统调⽤后&#xff0c;⽤户进程就进⼊到了内核态&#xff0c;通过执⾏⼀系列的内核协议层函数&#xff0c;然后到 socket 对象的接收队列中查看是否有数据&#xff0c;没有的话就把⾃⼰添加到 socket 对应的等待队列⾥…...

【iOS】内存五大分区

目录 堆&#xff08;Heap&#xff09;是什么五大分区栈区堆区全局/静态区常量区&#xff08;即.rodata&#xff09;代码区&#xff08;.text&#xff09; 函数栈堆和栈的区别和联系图解 OC语言是C语言的超集&#xff0c;所以先了解C语言的内存模型的内存管理会有很大帮助。C语言…...

Jupyter Notebook: 是一个强大的交互式计算

文章目录 引言Jupyter Notebook的原理基础使用安装与启动单元格&#xff08;Cell&#xff09;操作快捷键 高级使用魔术命令Markdown支持可视化版本控制 优缺点优点缺点 官网链接结论 引言 Jupyter Notebook是一个强大的交互式计算环境&#xff0c;特别适用于数据科学、机器学习…...

【C#学习笔记】变量、变量类型

在C#中&#xff0c;变量是存储数据的容器&#xff0c;每个变量都有其特定的数据类型&#xff0c;这决定了变量可以存储的数据类型和大小。以下是关于C#中变量的由浅入深的详细解释&#xff0c;并附带代码示例和解释&#xff1a; 基础概念 定义&#xff1a; 变量是存储数据的容…...

题解:T480718 eating

eating 题目背景 从前有个荣光的王国&#xff0c;小 A 是里面的国王&#xff0c;今天他要赐予他的子民以仓廪。 题目描述 在一条街上有 n n n 个饭店。小 A 站在这条街的最左端。 第 i i i 个饭店离这条街最左端的距离是 a i a_i ai​&#xff0c;它所售卖的菜品的美味…...

MATLAB中matfile用法

目录 语法 说明 示例 创建 MAT 文件对象 启用对 MAT 文件的写访问权限 加载整个变量 将整个变量保存至现有 MAT 文件 加载和保存部分变量 确定变量大小 参数说明 局限性 提示 matfile的功能是访问和更改 MAT 文件中的变量&#xff0c;而不必将文件加载到内存中。 …...

Spring之Spring Bean的生命周期

Spring Bean的生命周期 通过BeanDefinition获取bean的定义信息调用构造函数实例化beanBean的依赖注入处理Aware接口&#xff08;BeanNameAware、BeanFactoryAware、ApplicationContextAware&#xff09;Bean的后置处理器BeanPostProcessor-前置初始化方法&#xff08;Initiali…...

Docker 离线安装指南

参考文章 1、确认操作系统类型及内核版本 Docker依赖于Linux内核的一些特性&#xff0c;不同版本的Docker对内核版本有不同要求。例如&#xff0c;Docker 17.06及之后的版本通常需要Linux内核3.10及以上版本&#xff0c;Docker17.09及更高版本对应Linux内核4.9.x及更高版本。…...

基于距离变化能量开销动态调整的WSN低功耗拓扑控制开销算法matlab仿真

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.算法仿真参数 5.算法理论概述 6.参考文献 7.完整程序 1.程序功能描述 通过动态调整节点通信的能量开销&#xff0c;平衡网络负载&#xff0c;延长WSN生命周期。具体通过建立基于距离的能量消耗模型&am…...

UE5 学习系列(三)创建和移动物体

这篇博客是该系列的第三篇&#xff0c;是在之前两篇博客的基础上展开&#xff0c;主要介绍如何在操作界面中创建和拖动物体&#xff0c;这篇博客跟随的视频链接如下&#xff1a; B 站视频&#xff1a;s03-创建和移动物体 如果你不打算开之前的博客并且对UE5 比较熟的话按照以…...

跨链模式:多链互操作架构与性能扩展方案

跨链模式&#xff1a;多链互操作架构与性能扩展方案 ——构建下一代区块链互联网的技术基石 一、跨链架构的核心范式演进 1. 分层协议栈&#xff1a;模块化解耦设计 现代跨链系统采用分层协议栈实现灵活扩展&#xff08;H2Cross架构&#xff09;&#xff1a; 适配层&#xf…...

【VLNs篇】07:NavRL—在动态环境中学习安全飞行

项目内容论文标题NavRL: 在动态环境中学习安全飞行 (NavRL: Learning Safe Flight in Dynamic Environments)核心问题解决无人机在包含静态和动态障碍物的复杂环境中进行安全、高效自主导航的挑战&#xff0c;克服传统方法和现有强化学习方法的局限性。核心算法基于近端策略优化…...

处理vxe-table 表尾数据是单独一个接口,表格tableData数据更新后,需要点击两下,表尾才是正确的

修改bug思路&#xff1a; 分别把 tabledata 和 表尾相关数据 console.log() 发现 更新数据先后顺序不对 settimeout延迟查询表格接口 ——测试可行 升级↑&#xff1a;async await 等接口返回后再开始下一个接口查询 ________________________________________________________…...

招商蛇口 | 执笔CID,启幕低密生活新境

作为中国城市生长的力量&#xff0c;招商蛇口以“美好生活承载者”为使命&#xff0c;深耕全球111座城市&#xff0c;以央企担当匠造时代理想人居。从深圳湾的开拓基因到西安高新CID的战略落子&#xff0c;招商蛇口始终与城市发展同频共振&#xff0c;以建筑诠释对土地与生活的…...

Java求职者面试指南:计算机基础与源码原理深度解析

Java求职者面试指南&#xff1a;计算机基础与源码原理深度解析 第一轮提问&#xff1a;基础概念问题 1. 请解释什么是进程和线程的区别&#xff1f; 面试官&#xff1a;进程是程序的一次执行过程&#xff0c;是系统进行资源分配和调度的基本单位&#xff1b;而线程是进程中的…...

Selenium常用函数介绍

目录 一&#xff0c;元素定位 1.1 cssSeector 1.2 xpath 二&#xff0c;操作测试对象 三&#xff0c;窗口 3.1 案例 3.2 窗口切换 3.3 窗口大小 3.4 屏幕截图 3.5 关闭窗口 四&#xff0c;弹窗 五&#xff0c;等待 六&#xff0c;导航 七&#xff0c;文件上传 …...

Python 训练营打卡 Day 47

注意力热力图可视化 在day 46代码的基础上&#xff0c;对比不同卷积层热力图可视化的结果 import torch import torch.nn as nn import torch.optim as optim from torchvision import datasets, transforms from torch.utils.data import DataLoader import matplotlib.pypl…...