搭建Kubernetes (K8s) 集群----Centos系统

前期准备

准备3台Linux虚拟机(CentOS系统),参考

https://carry.blog.csdn.net/article/details/144578009https://carry.blog.csdn.net/article/details/144578009搭建Docker环境,参考

https://carry.blog.csdn.net/article/details/107404319https://carry.blog.csdn.net/article/details/107404319设置好镜像加速器:

  • 阿里云 Docker 镜像加速器

    • 网址:https://cr.console.aliyun.com/
    • 在阿里云控制台中创建加速器,并按照提示配置你的 daemon.json 文件。
  • DaoCloud 镜像加速器

    • 网址:https://www.daocloud.io/mirror
    • 提供简单易用的加速器,注册后即可获得加速器地址。
  • 网易云镜像加速器

    • 网址:https://c.163.com/hub
    • 网易云提供的镜像加速器,速度也很不错。
  • 腾讯云 Docker 镜像加速器

    • 网址:https://cloud.tencent.com/product/acr
    • 腾讯云提供的加速器,注册并绑定你的账号即可使用。
  • 中科大镜像加速器

    • 网址:https://mirrors.ustc.edu.cn/
    • 提供了包括Docker在内的多种开源软件的镜像加速。

编辑 daemon.json

{"registry-mirrors": ["https://<your-aliyun-accelerator-address>"]
}

# 重启docker
systemctl daemon-reload
systemctl restart docker

一:配置主机名

每个节点分别设置对应主机名

hostnamectl set-hostname master
hostnamectl set-hostname node1
hostnamectl set-hostname node2

二:添加 hosts

Host自己通过ifconfig查看,我自己的3台是192.168.153.128、192.168.153.130、192.168.153.131

vim /etc/hosts

192.168.153.128 master192.168.153.130 node1192.168.153.131 node2

三:所有节点关闭 SELinux、防火墙 、禁用swap

# 关闭 SELinux
setenforce 0
sed -i --follow-symlinks 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux# 关闭防火墙
systemctl stop firewalldsystemctl disable firewalld# 禁用swap,编辑 /etc/fstab 文件,注释包含swap的行
sudo vi /etc/fstab

四:添加 k8s 安装源


vi ks.sh# 添加一下内容
cat <<EOF > 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/rpm-package-key.gpg
EOF
mv kubernetes.repo /etc/yum.repos.d/# 运行shel
/bin/bash ks.sh

五:通过 yum 安装指定版本的 Kubernetes 组件(kubeletkubectlkubeadm

 
yum install -y kubelet-1.22.4 kubectl-1.22.4 kubeadm-1.22.4# 启动
systemctl enable kubelet
systemctl start kubelet

安装完成后,可以通过以下命令验证安装的版本:

kubelet --version
kubectl version --client
kubeadm version

六:初始化集群

1. 初始化 Kubernetes 集群

首先,使用 kubeadm init 命令初始化主节点集群

kubeadm init \--image-repository registry.aliyuncs.com/google_containers \--kubernetes-version v1.22.4 \--service-cidr=10.1.0.0/16 \--pod-network-cidr=10.244.0.0/16
  • --image-repository registry.aliyuncs.com/google_containers:指定使用阿里云的镜像仓库,避免从国外镜像源拉取时速度慢。
  • --kubernetes-version v1.22.4:指定 Kubernetes 的版本,确保与之前安装的版本一致。
  • --service-cidr=10.1.0.0/16:指定服务的网络地址范围,默认是 10.96.0.0/12,根据实际情况选择一个不冲突的 CIDR 范围。
  • --pod-network-cidr=10.244.0.0/16:指定 Pod 的网络地址范围,这里使用的是 Flannel 的默认网络范围。

2. 保存 kubeadm join 命令

初始化完成后,kubeadm 会输出一个 kubeadm join 命令,这个命令用于将其他工作节点加入集群。记得把这个命令保存下来。

如果忘记了,可以通过以下命令重新获取:

kubeadm token create --print-join-command

返回值:

kubeadm join xxxxx:6443 --token abcdef.1234567890abcdef --discovery-token-ca-cert-hash sha256:9e71e3f4d0246c5e2117a8c62c51ac4f78f82f1ff32d404a9f22c24a562b9b71

3. 配置 kubectl 访问集群

为了能够在主节点上使用 kubectl 命令管理 Kubernetes 集群,你需要将 admin.conf 文件复制到你的用户目录下的 .kube/config 中。

mkdir -p $HOME/.kube
cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
chown $(id -u):$(id -g) $HOME/.kube/config
  • mkdir -p $HOME/.kube:创建 .kube 目录(如果不存在的话)。
  • cp -i /etc/kubernetes/admin.conf $HOME/.kube/config:复制 Kubernetes 配置文件到用户目录。
  • chown $(id -u):$(id -g) $HOME/.kube/config:确保配置文件的权限是当前用户所有。

4. 其他节点配置

如果你有其他节点需要访问 Kubernetes 集群,可以将主节点上的 /etc/kubernetes/admin.conf 文件复制到其他节点的 ~/.kube/config 路径下。这样,其他节点也能使用 kubectl 访问集群。

在其他节点上执行以下命令:

mkdir -p $HOME/.kube
scp user@master:/etc/kubernetes/admin.conf $HOME/.kube/config
chown $(id -u):$(id -g) $HOME/.kube/config

5. 安装网络插件

在集群初始化后,你需要安装一个网络插件来实现 Pod 之间的通信。常见的网络插件有 FlannelCalicoWeave 等。这里选择 Flannel,所有节点执行以下命令:

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

完成网络插件安装后,节点之间的通信将建立,集群也就可以正常运行了。

6. 加入工作节点

在工作节点上执行 kubeadm join 命令,将节点加入集群,token就是上面第2步生成的。例如:

kubeadm join <master-ip>:6443 --token <token> --discovery-token-ca-cert-hash sha256:<hash>

这样,工作节点就会加入到你的 Kubernetes 集群中了。

7. 验证集群状态

集群初始化和节点加入完成后,可以通过以下命令验证集群状态,比如在主节点执行:

kubectl get nodes

所有节点的状态都是ready代表节点都正常

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

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

相关文章

wps中的js开发

严格区分大小写 /*** learn_js Macro*/ function test() {Range(D7).Value2Selection.Value2; // Selection.formula "100" }function Workbook_SheetSelectionChange(Sh, Target) {if(Sh.Name Sheet1) {test();}}function test2() {// 把I4单元格及其周边有数的单…

第3章 3.2 配置系统 .NET Core配置系统

3.2.1 配置系统的基本使用 .NET Core中的配置系统支持非常丰富的配置源&#xff0c;包括文件&#xff08;JSON、XML、INI等&#xff09;、注册表、环境变量、命令行、Azure Key Vault等&#xff0c;配置系统还支持自定义配置源。 用配置系统开发包Microsoft.Extensions.Confi…

第六届计算机信息和大数据应用国际学术会议(CIBDA 2025)

重要信息 大会官网&#xff1a;www.ic-cibda.org&#xff08;了解会议&#xff0c;投稿等&#xff09; 大会时间&#xff1a;2025年3月14-16日 大会地点&#xff1a;中国-武汉 简介 第六届计算机信息和大数据应用&#xff08;CIBDA 2025&#xff09;将于2025年3月14-16日在中国…

Mac M3/M4 本地部署Deepseek并集成vscode

Mac 部署 使用傻瓜集成平台ollama&#xff0c;ollama平台依赖于docker&#xff0c;Mac的M3/M4 因doesn’t have VT-X/AMD-v enabled 所以VB,VM无法使用&#xff0c;导致docker无法启动&#xff0c;需要使用docker的替代品podman&#xff0c; 它完全兼容docker brew install p…

最优化方法-牛顿法

牛顿法 泰勒级数 泰勒级数展开 $$ \begin{aligned} f(x)&\lim\limits_{n\rightarrow \infin}\sum\limits_{i1}n\frac{1}{n!}f{(n)}(x_0)(x-x_0)^n\ &f(x_0)f’(x_0)(x-x_0)\frac{f’(x_0)}{2!}(x-x_0)2\cdots\frac{1}{n!}fn(x_0)(x-x_0)^n\ &\quad~ O\left[(x-x_…

【系统架构】分布式事务模型详解

1. 分布式基础理论 1.1 CAP理论 CAP 理论可以表述为&#xff0c;一个分布式系统最多只能同时满足一致性&#xff08;Consistency&#xff09;、可用性&#xff08;Availability&#xff09;和分区容错性&#xff08;Partition Tolerance&#xff09;这三项中的两项。 一致性是…

「正版软件」PDF Reader - 专业 PDF 编辑阅读工具软件

PDF Reader 轻松查看、编辑、批注、转换、数字签名和管理 PDF 文件&#xff0c;以提高工作效率并充分利用 PDF 文档。 像专业人士一样编辑 PDF 编辑 PDF 文本 轻松添加、删除或修改 PDF 文档中的原始文本以更正错误。自定义文本属性&#xff0c;如颜色、字体大小、样式和粗细。…

使用GDI+、文件和目录和打印API,批量将图片按文件名分组打包成PDF

代码写了两个小时&#xff0c;速度太慢&#xff08;包括学习文档的时间&#xff09; #include <stdio.h> #include <Windows.h> #include <gdiplus.h> #include <string.h> using namespace Gdiplus; #pragma comment(lib, "Gdiplus.lib") …

设计模式教程:责任链模式(Chain of Responsibility Pattern)

责任链模式&#xff08;Chain of Responsibility Pattern&#xff09;是一种常用的设计模式&#xff0c;它属于行为型模式&#xff0c;主要解决的是多个对象处理一个请求时&#xff0c;如何解耦请求的发送者和接收者&#xff0c;以及如何将请求的处理职责分配给不同的对象。 1…

鸿蒙初学者学习手册(HarmonyOSNext_API14)_组件截图(@ohos.arkui.componentSnapshot (组件截图) )

前言&#xff1a; 这个模块可以截取组件的图片&#xff0c;无论组件是否已加载。截图只能拍到组件本身的大小区域。 如果组件或其子组件画得超出了自己的区域&#xff0c;超出的部分不会出现在截图中。截图不会拍到与当前组件平级的&#xff08;兄弟&#xff09;组件。 模块简…

解决 LeetCode 串联所有单词的子串问题

问题描述 给定一个字符串 s 和一个字符串数组 words。 words 中所有字符串 长度相同。 s 中的 串联子串 是指一个包含 words 中所有字符串以任意顺序排列连接起来的子串。 例如&#xff0c;如果 words ["ab","cd","ef"]&#xff0c; 那么 &q…

OpenCV机器学习(10)训练数据的一个核心类cv::ml::TrainData

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 cv::ml::TrainData 类是 OpenCV 机器学习模块中用于表示训练数据的一个核心类。它封装了样本数据、响应&#xff08;标签&#xff09;、样本权重…

在 Mac ARM 架构 (Apple Silicon,例如 M1, M2, M3 芯片) 上使用官方安装包安装 MySQL

在 Mac ARM 架构 (Apple Silicon&#xff0c;例如 M1, M2, M3 芯片) 上使用官方安装包安装 MySQL&#xff0c;步骤与在 Intel Mac 上类似&#xff0c;但需要确保下载的是 ARM 架构兼容的版本。以下是详细的安装步骤&#xff1a; 步骤 1: 下载 MySQL Community Server DMG 安装…

以ChatGPT为例解析大模型背后的技术

目录 1、大模型分类 2、为什么自然语言处理可计算&#xff1f; 2.1、One-hot分类编码&#xff08;传统词表示方法&#xff09; 2.2、词向量 3、Transformer架构 3.1、何为注意力机制&#xff1f; 3.2、注意力机制在 Transformer 模型中有何意义&#xff1f; 3.3、位置编…

AI训练中的常用指令

以下是一些常用于深度学习训练的 Linux 指令&#xff0c;可以帮助你高效管理和执行训练任务&#xff1a; 文件管理 查看当前目录内容&#xff1a;ls进入目录&#xff1a;cd 路径/到/目录创建新目录&#xff1a;mkdir 新目录名称删除文件或目录&#xff1a; 删除文件&#xff…

【ARM入门指南】一文搞懂什么是ARM

在单片机与嵌入式系统的浩瀚宇宙中&#xff0c;ARM架构犹如一颗耀眼的星辰&#xff0c;持续引领着技术创新的潮流。对于刚刚踏入这一领域的初学者而言&#xff0c;深入了解ARM是迈入嵌入式开发大门的关键一步。ARM&#xff0c;这个名字背后&#xff0c;不仅代表着一家在半导体设…

接口测试-API测试中常用的协议(下)

一、RPC RPC&#xff08;Remote Procedure Call&#xff09;即远程过程调用协议&#xff0c;它允许程序调用位于其他计算机上的程序中的过程或函数&#xff0c;就像调用本地程序中的过程一样。下面从其概念、工作原理、特点、应用场景等方面详细介绍&#xff1a; 概念起源与核…

Go Web 项目实战:构建 RESTful API、命令行工具及应用部署

Go Web 项目实战&#xff1a;构建 RESTful API、命令行工具及应用部署 Go 语言因其简洁高效、并发支持强大等特点&#xff0c;已经成为了后端开发的热门选择之一。本篇文章将通过实战案例带领你学习如何使用 Go 构建一个简单的 RESTful API&#xff0c;开发命令行工具&#xf…

Http升级为Https - 开发/测试服环境

1.应用场景 主要用于开发/测试服环境将http升级为https, 防止前端web(浏览器)出现Mixed Content报错; 2.学习/操作 1.文档阅读 deepseek 问答; 2.整理输出 报错信息: Mixed Content: The page at <URL> was loaded over HTTPS, but requested an insecure XMLHttpRequ…

使用 AIStor 和 OpenSearch 增强搜索功能

在这篇文章中&#xff0c;我们将探讨搜索&#xff0c;特别是 OpenSearch 如何帮助我们识别模式或查看不断增长的数据中的趋势。例如&#xff0c;如果您正在查看运营数据&#xff0c;如果您的服务似乎是随机的&#xff0c;那么您需要尽可能回溯以识别模式并找出原因。这不仅适用…