快速部署一套K8s集群-v1.28

快速部署一套K8s集群-v1.28

           

1.前置知识点  

1.1 生产环境可部署Kubernetes集群的两种方式  

目前生产部署Kubernetes集群主要有两种方式:

  • kubeadm

Kubeadm是一个K8s部署工具,提供kubeadm init和kubeadm join,用于快速部署Kubernetes集群。

  • 二进制包

从github下载发行版的二进制包,手动部署每个组件,组成Kubernetes集群。

这里采用kubeadm搭建集群。

kubeadm工具功能:

  • kubeadm init:初始化一个Master节点
  • kubeadm join:将工作节点加入集群
  • kubeadm upgrade:升级K8s版本
  • kubeadm token:管理 kubeadm join 使用的令牌
  • kubeadm reset:清空 kubeadm init 或者 kubeadm join 对主机所做的任何更改
  • kubeadm version:打印 kubeadm 版本
  • kubeadm alpha:预览可用的新功能    

1.2 准备环境  

服务器要求:

  • 建议最小硬件配置:2核CPU、2G内存、20G硬盘
  • 服务器最好可以访问外网,会有从网上拉取镜像需求,如果服务器不能上网,需要提前下载对应镜像并导入节点

软件环境:

软件

版本

操作系统

CentOS7.9_x64 (mini)

Docker

20-ce

Kubernetes

1.28

服务器规划:

角色

IP

k8s-master

192.168.52.15

k8s-node1

192.168.52.16

k8s-node2

192.168.52.17

架构图:    

图片

1.3 操作系统初始化配置【所有节点】  

           

# 关闭防火墙            
systemctl stop firewalld            
systemctl disable firewalld            # 关闭selinux            
sed -i 's/enforcing/disabled/' /etc/selinux/config  # 永久            
setenforce 0  # 临时            # 关闭swap            
swapoff -a  # 临时            
sed -ri 's/.*swap.*/#&/' /etc/fstab    # 永久            # 根据规划设置主机名            
hostnamectl set-hostname# 在master添加hosts       
cat >> /etc/hosts << EOF       
192.168.52.15 k8s-master            
192.168.52.16 k8s-node1            
192.168.52.17 k8s-node2            
EOF            # 将桥接的IPv4流量传递到iptables的链            
cat > /etc/sysctl.d/k8s.conf << EOF            
net.bridge.bridge-nf-call-ip6tables = 1            
net.bridge.bridge-nf-call-iptables = 1        
net.ipv4.ip_forward                = 1            
EOF            
sysctl --system  # 生效
 
# 开启IPv4转发
sudo cat <
overlay
br_netfilter
EOF
 
modprobe overlay
modprobe br_netfilter            # 时间同步            
yum install -y chrony
systemctl restart chronyd
systemctl status chronyd
chronyc sources        

2. 安装Docker/kubeadm/kubelet【所有节点】  

2.1 安装Docker  

# 安装相关依赖
yum install -y yum-utils device-mapper-persistent-data lvm2
# 添加yum源
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 查看与选择docker版本
yum list docker-ce --showduplicates | sort -r
# 安装20.10.16版本
yum install -y docker-ce-20.10.16 docker-ce-cli-20.10.16 containerd.io
# 启动与开机启动
systemctl start docker

配置镜像下载加速器:

mkdir -vp /etc/docker/
cat > /etc/docker/daemon.json << EOF
{
"registry-mirrors": [
"https://registry.cn-hangzhou.aliyuncs.com",
"https://docker.mirrors.ustc.edu.cn",
"http://hub-mirror.c.163.com"
],
 
"max-concurrent-downloads": 10,
"log-driver": "json-file",

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

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

相关文章

【硬件测试】基于FPGA的4ASK调制解调通信系统开发与硬件片内测试,包含信道模块,误码统计模块,可设置SNR

目录 1.算法仿真效果 2.算法涉及理论知识概要 3.Verilog核心程序 4.开发板使用说明和如何移植不同的开发板 5.完整算法代码文件获得 1.算法仿真效果 本文是之前写的文章: 《基于FPGA的4ASK调制解调系统,包含testbench,高斯信道模块,误码率统计模块,可以设置不同SNR》 的…

用友U8+ API接口使用教程

前言 U8和其他的公开的开放API接口有一些差异&#xff0c;他是需要先对接的到代理服务器&#xff0c;通过代理服务器进行对接&#xff0c;所以只要保证U8能上网就能对接&#xff0c;和畅捷通T的模式有点类似 流程&#xff1a; 注册成为开发者&#xff08;用于创建用友U8 API应…

c# TaskScheduler

这里记录下 TaskScheduler 的简单用法。 使用场景&#xff1a; 使用 Task 的时候&#xff0c;大家知道用 TaskFactory.StartNew 可以用来创建一个 Task 。这里如果创建了 3 个&#xff0c;那么这3个 Task 就各自放飞直接运行了。 class Program {private static TaskFactory…

Go语言错误分类

错误的分类 在 Go 语言中&#xff0c;错误是通过实现 error 接口的类型表示的&#xff0c;但不同场景下的错误可以按性质和用途进行分类。以下是 Go 语言错误的常见分类&#xff0c;以及每类错误的解释和示例&#xff1a; 标准错误类型 标准库中定义了许多常见的错误类型&…

Couchbase的OLAP支持情况

Couchbase 是一个高性能的 NoSQL 数据库&#xff0c;主要用于在线事务处理&#xff08;OLTP&#xff09;场景&#xff0c;但它也提供了一些功能来支持在线分析处理&#xff08;OLAP&#xff09;需求。以下是 Couchbase 对 OLAP 支持的几个方面&#xff1a; 1. N1QL 查询语言 …

检查读取数据寄存器输出的多扇出

为使第二寄存器被 RAM 原语吸收&#xff0c;来自存储器阵列的数据输出位的扇出必须为 1 。这在下图中进行了说明。 检查地址 / 读取数据寄存器上的复位信号 不应复位存储器阵列。只有 RAM 的输出可以容许复位。复位必须是同步的&#xff0c;以便将输出寄存器推断到 RAM 基元…

MeiliSearch:一款轻量级开源搜索引擎

Meilisearch 是由 Meili &#xff08;一家总部位于法国的软件开发公司&#xff09;创建的搜索引擎&#xff0c;目前在 Github 上有 47.9k stars。 Meillisearch 具备以下特色功能&#xff08;ChatGPT-4o 翻译&#xff09;&#xff1a; 混合搜索&#xff1a;结合语义搜索和全文…

随手记——conda迁移虚拟环境后不能使用Linux命令解决方案

在Ubuntu使用conda pack打包环境迁移之后发现存在以下问题&#xff1b; conda迁移环境是为了更短的的在新机器上搭建一个环境&#xff1b;我记录一下遇见的问题&#xff1b; 步骤&#xff1a; 【默认安装了conda-pack库&#xff0c;我都是安装到base虚拟环境中&#xff0c;打…

MongoDB-ObjectID 生成器

前言 MongoDB中一个非常关键的概念就是 ObjectID&#xff0c;它是 MongoDB 中每个文档的默认唯一标识符。了解 ObjectID 的生成机制不仅有助于开发人员优化数据库性能&#xff0c;还能帮助更好地理解 MongoDB 的设计理念。 什么是 MongoDB ObjectID&#xff1f; 在 MongoDB …

发愿和许愿的区别是什么?

在许多宗教和文化中&#xff0c;发愿和许愿都是人们表达内心愿望、祈求神灵保佑的重要方式。尽管这两个词在日常生活中经常被交替使用&#xff0c;但它们在含义和实践上存在一些重要的区别。本文就来详细说说发愿和许愿的区别&#xff0c;并提供相关的背景信息和建议。 1. 定义…

渗透测试工具 -- SQLmap安装教程及使用

随着网络安全问题日益严峻&#xff0c;渗透测试成为了保护信息安全的重要手段。而在渗透测试的众多工具中&#xff0c;SQLmap凭借其强大的自动化SQL注入检测和利用能力&#xff0c;成为了网络安全专家必备的利器。那么&#xff0c;你知道如何高效地使用SQLmap进行漏洞扫描吗&am…

SpringBoot 整合 RabbitMQ 实现流量消峰

RabbitMQ 即一个消息队列&#xff0c;主要是用来实现应用程序的异步和解耦&#xff0c;同时也能起到消息缓冲&#xff0c;消息分发的作用。 消息中间件在互联网公司的使用中越来越多&#xff0c;刚才还看到新闻阿里将 RocketMQ 捐献给了 Apache&#xff0c;当然了今天的主角还…

Git-分支(branch)常用命令

分支 我们在做项目开发的时候&#xff0c;无论是软件项目还是其他机械工程项目&#xff0c;我们为了提高效率以及合理的节省时间等等原因&#xff0c;现在都不再是线性进行&#xff0c;而是将一个项目抽离出诸进行线&#xff0c;每一条线在git中我们就叫做分支&#xff0c;bran…

goenv go 环境配置

Golang环境配置 1. goenv工具 goenv 是一个用于管理 Go 语言版本的工具&#xff0c;类似于 Python 的 pyenv 或 Ruby 的 rbenv。不过需要注意的是&#xff0c;goenv 并不是一个官方维护的工具&#xff0c;而是一个社区项目。Go 语言本身已经提供了很好的版本管理工具&#xf…

Electron electron-builder.yml 配置 (自定义包名,用户自定义安装目录...)

electron-builder.yml 配置 # 唯一的应用程序标识符&#xff0c;用于操作系统级别的识别 appId: com.electron.app# 应用程序的名称&#xff0c;显示在用户界面上 productName: 我的应用# 定义构建资源目录&#xff0c;放置图标、证书等资源文件 directories:buildResources: …

springboot425滑雪场管理系统(论文+源码)_kaic

摘要 近年来&#xff0c;信息化管理行业的不断兴起&#xff0c;使得人们的日常生活越来越离不开计算机和互联网技术。首先&#xff0c;根据收集到的用户需求分析&#xff0c;对设计系统有一个初步的认识与了解&#xff0c;确定滑雪场管理系统的总体功能模块。然后&#xff0c;详…

好玩的汇编编译器NASM:一款基于x86架构的汇编与反汇编软件

好玩的汇编编译器NASM This is the project webpage for the Netwide Assembler (NASM), an asssembler for the x86 CPU architecture portable to nearly every modern platform, and with code generation for many platforms old and new. Netwide Assembler&#xff08;…

前端面试准备问题2

1.防抖和节流分别是什么&#xff0c;应用场景 防抖&#xff1a;在事件被触发后&#xff0c;只有在指定的延迟时间内没有再次触发&#xff0c;才执行事件处理函数。 在我的理解中&#xff0c;简单的说就是在一个指定的时间内&#xff0c;仅触发一次&#xff0c;如果有多次重复触…

Java 的基本数据类型与包装类的区别

Java 提供了 8 种基本数据类型&#xff1a;byte、short、int、long、float、double、char 和 boolean。它们是直接存储值的&#xff0c;不是对象。 而包装类&#xff08;如 Integer、Double 等&#xff09;是将基本数据类型封装为对象&#xff0c;提供了更多方法支持&#xff…

RabbitMQ 基本使用方法详解

RabbitMQ 基本使用方法 在你的代码中&#xff0c;涉及到了 RabbitMQ 的基本使用&#xff0c;包括队列定义、交换机的配置、消息的发送与接收等内容。下面我将详细总结 RabbitMQ 的基本使用方法&#xff0c;重点解释如何在 Spring Boot 项目中与 RabbitMQ 集成。 1. 引入依赖 …