微服务》》Kubernetes (K8S) 集群 安装

关闭交换空间

# 切换 超级管理员身份
# 查看交换空间
free -h
# 关闭交换空间
swapoff -a

在这里插入图片描述

避免开启启动交换空间

# 注释swap开头的行
vim /etc/fstab

在这里插入图片描述

关闭防火墙

# 关闭防火墙  
# 因为K8S 是集群形式存在的  至少三台  一主二从 (一个master  两个node) master 要给其他node节点发送指令  走的 gRPC协议
# 这个通信协议不能跨防火墙  故需要关闭   
ufw disable

在这里插入图片描述

配置 DNS

# 取消注释  配置 DNS   
vim /etc/systemd/resolved.conf

在这里插入图片描述

安装 Docker 、配置docker 镜像加速器

参考资料

安装kubernetes

在这里插入图片描述

apt-get update && apt-get install -y apt-transport-https
curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add - 
cat >/etc/apt/sources.list.d/kubernetes.list <<EOF
# 写入软件源 注意目前使用的Ubuntu的版本是 noble,但阿里云暂且不支持,所以沿用16.04 d xenial
deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-$(lsb_release -cs) main
EOF
apt-get update

在这里插入图片描述
》》》安装k8s

apt-get update && apt-get install -y kubelet kubeadm kubectl

查看版本
在这里插入图片描述

锁定版本

防止k8s软件自动升级,通过以下命令进行锁定版本。

sudo apt-mark hold kubelet kubeadm kubectl
如果要取消
sudo apt-mark unhold kubelet kubeadm kubectl

在这里插入图片描述

同步时间

同步时间之前 一定要先同步时区

dpkg-reconfigure tzdata
在这里插入图片描述
》》时间同步
在这里插入图片描述

# 安装ntpdate   
apt-get install ntpdate
# 设置系统时间与网络时间同步(cn.pool.ntp.org ) 是寻找离本机最近的时间服务器 同步时间
ntpdate cn.pool.ntp.org
# 将系统时间写入硬件时间
# 如果hwclock命令没,则需要安装  apt install util-linux-extra
hwclock --systohc# 确认时间  看时间跟本地是否一致
date 

在这里插入图片描述

修改主机名

》》修改cloud.cfg ,防止重启主机名还原 ,但测试下来 默认不还原

vim /etc/cloud/cloud.cfg
# 该配置默认是False,修改为True 即可
# preserve——>保护,维护 持之以恒 保持
preserve_hostname:true

在这里插入图片描述
》》重新一下,让配置生效, 然后关机

到此 可以把这个 Ubuntu系统 作为最基础的,方便以后快速 新增 一个k8s 节点

基于上面的 克隆 一个 K8S 作为master、两个 节点 Node1、Node2

》》》修改IP、主机名

配置上面基本 一定 一定 一定 要重启

在这里插入图片描述

Kubernetes 安装集群

上面安装Kubernetes》》包含kubeadm、kubectl、kubetel》》
kubeadm 是kubernetes的集群安装工具,能快速安装kubernetes集群,安装kubernetes主要是安装它的各个镜像,而kubeadm已经为我们集成好了运行kubenetes所需要的基本镜像。

安装程序Linux系统 一般安装在 /usr/local中

# cd /usr/local
# 创建 kubernetes 文件夹
# 进入到 kubernetes 文件夹
# 创建 cluster 文件夹
# 进入cluster文件夹
# 导出配置文件  
# kubeadm config print init-defaults --kubeconfig ClusterConfiguration > kubeadm.yml

在这里插入图片描述
》》修改 kubeadm.yml 文件
在这里插入图片描述

把谷歌的镜像仓库地址修改成阿里云的镜像仓库地址
imageRepository: registry.aliyuncs.com/google_containers
在这里插入图片描述

》》配置文件还要到加个Pod

  # 配置POD 所在网段为我们虚拟机不重叠的网段 容器跟容器间通信  可以不需要加双引号podSubnet: 10.244.0.0/16

在这里插入图片描述

》》查看所需要的镜像

kubeadm config images list --config kubeadm.yml
在这里插入图片描述
》》拉取镜像
kubeadm config images pull --config kubeadm.yml

报错

ailed to pull image "registry.aliyuncs.com/google_containers/kube-apiserver:v1.28.2": output: time="2025-03-18T10:36:20+08:00" level=fatal msg="validate service connection: CRI v1 image API is not implemented for endpoint \"unix:///var/run/containerd/containerd.sock\": rpc error: code = Unimplemented desc = unknown service runtime.v1.ImageService"
, error: exit status 1
To see the stack trace of this error execute with --v=5 or higher

在这里插入图片描述

》》解决方案

vim /etc/containerd/config.toml 在这里插入图片描述
重启contained服务即可
systemctl restart containerd
在拉取就可以了
在这里插入图片描述
在这里插入图片描述
如果拉取不成功,查看网络配置(要重启)、kubeadm.ym 的 配置

#  这步骤不需要的,只是测试这个路径是否可以从拉取
docker pull registry.aliyuncs.com/google_containers/kube-apiserver:v1.28.2
docker pull registry.aliyuncs.com/google_containers/kube-controller-manager:v1.28.2
docker pull registry.aliyuncs.com/google_containers/kube-scheduler:v1.28.2
docker pull registry.aliyuncs.com/google_containers/kube-proxy:v1.28.2
docker pull registry.aliyuncs.com/google_containers/pause:3.9
docker pull registry.aliyuncs.com/google_containers/etcd:3.5.9-0
docker pull registry.aliyuncs.com/google_containers/coredns:v1.10.1

安装主节点 》》注意 注意 注意只主节点才需要 初始化的

# --experimental-upload-certs 可以在后续执行加入节点时自动分发证书文件
# tee kubeadm-init.log 输出日志的
# tee命令的功能是用于读取标准输入的数据,将其内容转交到标准输出设备中,同时保存成文件。
kubeadm init --config=kubeadm.yml --experimental-upload-certs  | tee kubeadm-init.log

在这里插入图片描述
k8s 1.8版本之后就不支持这个 选项了

kubeadm init --config=kubeadm.yml --upload-certs  | tee kubeadm-init.log

》》如果报错

[init] Using Kubernetes version: v1.28.2
[preflight] Running pre-flight checks
error execution phase preflight: [preflight] Some fatal errors occurred:[ERROR FileContent--proc-sys-net-bridge-bridge-nf-call-iptables]: /proc/sys/net/bridge/bridge-nf-call-iptables does not exist
[preflight] If you know what you are doing, you can make a check non-fatal with `--ignore-preflight-errors=...`
To see the stack trace of this error execute with --v=5 or higher

kubeadm init --config=kubeadm.yml --upload-certs --ignore-preflight-errors=all | tee kubeadm-init.log

》》安装中会出现

[wait-control-plane] Waiting for the kubelet to boot up the control plane as static Pods from directory "/etc/kubernetes/manifests". This can take up to 4m0s
[kubelet-check] Initial timeout of 40s passed.

在这里插入图片描述
》》解决问题:《《

# 1.修改Containerd配置
cd /etc/containerd
# 生成默认配置文件,Containerd的配置文件使用TOML格式,然后打开修改。(如果之前存在可以删除)
containerd config default > /etc/containerd/config.toml
# 打开修改:
vim /etc/containerd/config.toml
将 sandbox_image = "registry.k8s.io/pause:3.8" 
改为 sanbox_image = "registry.aliyuncs.com/google_containers/pause:3.9"
SystemdCgroup = false 改为 SystemdCgroup = true

在这里插入图片描述
在这里插入图片描述
保存退出,重启Containerd

sudo systemctl restart containerd

# containerd  重启之后
kubeadm reset    重置一下  
# 进入  
cd /usr/local/kubernetes/cluster
# 在初始化一下
kubeadm init --config=kubeadm.yml --upload-certs --ignore-preflight-errors=all | tee kubeadm-init.log

成功 成功

在这里插入图片描述

在这里插入图片描述

#  mkdir -p $HOME/.kube
#  sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
#  这个两个命令 要分别执行

kubectl get node

在这里插入图片描述

节点加入Master

在这里插入图片描述
在这里插入图片描述
如果报错

error execution phase preflight: [preflight] Some fatal errors occurred:[ERROR FileContent--proc-sys-net-bridge-bridge-nf-call-iptables]: /proc/sys/net/bridge/bridge-nf-call-iptables does not exist

解决方法

 echo "1" >/proc/sys/net/bridge/bridge-nf-call-iptablesmodprobe br_netfilter

在这里插入图片描述
在这里插入图片描述

集群网络配置

参考资料

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

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

相关文章

HTTP和RPC的区别

RPC和 HTTP是两种常见的通信方式&#xff0c;它们在设计目标、使用场景和技术实现上有显著区别。以下是它们的详细对比&#xff1a; 1. 定义与核心思想 特性RPCHTTPRemote Procedure Call远程过程调用HyperText Transfer Protocol超文本传输协议定义一种协议或框架&#xff0…

MySQL 简记

MySQL 简记 mysql中的数据存储的结构是B树 其与B树的相同点是&#xff0c;B树一个节点也可以存放多条数据&#xff0c;并且从左到右依次增大&#xff1b;不同点是&#xff0c;B树的叶子结点之间也能相互连接。那么实际上是采取利用空间换区时间的策略。 那么B树的树结构like…

十七、实战开发 uni-app x 项目(仿京东)- 后端指南

前面我们已经用uniappx进行了前端实战学习 一、实战 开发uni-app x项目(仿京东)-规划-CSDN博客 二、实战 开发uni-app x项目(仿京东)-项目搭建-CSDN博客 三、实战开发 uni-app x 项目(仿京东)- 技术选型-CSDN博客 四、实战开发 uni-app x 项目(仿京东)- 页面设计-C…

Infura 简介

文章目录 Infura 简介Infura 的主要功能Infura 的替代方案&#xff08;类似服务&#xff09;AlchemyQuickNodeAnkrMoralisPocket Network 什么时候选择 Infura&#xff1f; Infura 简介 Infura 是一个 区块链基础设施即服务&#xff08;BaaS, Blockchain as a Service&#xf…

TouchSocket TcpService:构建高性能Tcp服务的终极利器

这里写目录标题 TouchSocket TCPService&#xff1a;构建高性能TCP服务的终极利器引言TCPService核心特性快速入门&#xff1a;5分钟搭建TCP服务1. 创建基础TCP服务2. 自定义插件处理数据 高级用法实战1. 客户端连接管理 性能与稳定性保障示例与源码结语 TouchSocket TCPServic…

Android Fresco 框架缓存模块源码深度剖析(二)

一、引言 在 Android 应用开发中&#xff0c;图片加载和处理是常见且重要的功能。频繁的图片加载不仅会消耗大量的网络流量&#xff0c;还会影响应用的性能和响应速度。因此&#xff0c;有效的缓存机制对于提升图片加载效率和用户体验至关重要。Fresco 是 Facebook 开源的一款…

springboot使用163发送自定义html格式的邮件

springboot使用163发送html格式的邮件 效果: 下面直接开始教学 注册邮箱&#xff0c;生成授权码 获取163邮箱的授权码&#xff0c;可以按照以下步骤操作&#xff1a; 登录163邮箱 打开浏览器&#xff0c;访问 163邮箱登录页面。 使用你的邮箱账号和密码登录。进入邮箱设置 登…

【Kafka】深入了解Kafka

集群的成员关系 Kafka使用Zookeeper维护集群的成员信息。 每一个broker都有一个唯一的标识&#xff0c;这个标识可以在配置文件中指定&#xff0c;也可以自动生成。当broker在启动时通过创建Zookeeper的临时节点把自己的ID注册到Zookeeper中。broker、控制器和其他一些动态系…

C#使用SnsPictureBox.dll绘制点,线段、圆、折线、多边形、测量尺等多种图形。

CSDN下载地址&#xff1a;https://download.csdn.net/download/sns1991sns/87726867 gitee下载地址:https://gitee.com/linsns/SnsPictrueBox 支持2种绘制方式&#xff1a;响应式和等待式。 一、使用响应式绘制图形 1、在窗口构造函数里添加绘制图形的完成响应函数 public…

Hugging Face预训练GPT微调ChatGPT(微调入门!新手友好!)

Hugging Face预训练GPT微调ChatGPT&#xff08;微调入门&#xff01;新手友好&#xff01;&#xff09; 在实战中&#xff0c;⼤多数情况下都不需要从0开始训练模型&#xff0c;⽽是使⽤“⼤⼚”或者其他研究者开源的已经训练好的⼤模型。 在各种⼤模型开源库中&#xff0c;最…

Redis BitMap 用户签到

Redis Bitmap Bitmap&#xff08;位图&#xff09;是 Redis 提供的一种用于处理二进制位&#xff08;bit&#xff09;的特殊数据结构&#xff0c;它基于 String 类型&#xff0c;每个 bit 代表一个布尔值&#xff08;0 或 1&#xff09;&#xff0c;可以用于存储大规模的二值状…

Spring Boot 3 新特性实战:从理论到实践

引言 Spring Boot 自发布以来&#xff0c;凭借其简洁的配置和强大的功能&#xff0c;迅速成为 Java 开发者的首选框架。随着 Spring Boot 3 的发布&#xff0c;开发者们迎来了更多令人兴奋的新特性。本文将深入探讨 Spring Boot 3 的新特性&#xff0c;并通过实战示例展示如何…

Nodejs使用redis

框架&#xff1a;koa&#xff0c;通过koa-generator创建 redis: 本地搭建&#xff0c;使用默认帐号&#xff0c;安装说明地址以及默认启动设置&#xff1a;https://redis.io/docs/latest/operate/oss_and_stack/install/install-redis/install-redis-on-linux/ 中间件&#x…

调研报告:Hadoop 3.x Ozone 全景解析

Ozone 是 Hadoop 的分布式对象存储系统,具有易扩展和冗余存储的特点。 Ozone 不仅能存储数十亿个不同大小的对象,还支持在容器化环境(比如 Kubernetes)中运行。 Apache Spark、Hive 和 YARN 等应用无需任何修改即可使用 Ozone。Ozone 提供了 Java API、S3 接口和命令行接口…

AI学习——卷积神经网络(CNN)入门

作为人类&#xff0c;我们天生擅长“看”东西&#xff1a;一眼就能认出猫狗、分辨红绿灯、读懂朋友的表情……但计算机的“眼睛”最初是一片空白。直到卷积神经网络&#xff08;CNN&#xff09;​的出现&#xff0c;计算机才真正开始理解图像。今天&#xff0c;我们就用最通俗的…

除自身以外数组的乘积——面试经典150题(力扣)

题目 给你一个整数数组 nums&#xff0c;返回 数组 answer &#xff0c;其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法&#xff0c;且在 O(n) 时…

⭐算法OJ⭐二叉树的前序遍历【树的遍历】(C++实现)Binary Tree Preorder Traversal

⭐算法OJ⭐二叉树的中序遍历【树的遍历】&#xff08;C实现&#xff09;Binary Tree Inorder Traversal Given the root of a binary tree, return the preorder traversal of its nodes’ values. Example 1: Input: root [1,null,2,3] Output: [1,2,3]Explanation: Exam…

计算机二级MS之Excel

声明&#xff1a;跟着大猫和小黑学习随便记下一些笔记供大家参考&#xff0c;二级考试之前将持续更新&#xff0c;希望大家二级都能轻轻松松过啦&#xff0c;过了二级的大神也可以在评论区留言给点建议&#xff0c;感谢大家&#xff01;&#xff01; 文章目录 考题难点&#x…

【Linux】VMware Workstation Pro 17 安装教程

目录 安装 VMware Workstation Pro 17 一、CDS Repository 获取安装包 二、网盘获取安装包 三、Broadcom官方获取安装包 后续安装过程没啥特殊要求 安装 VMware Workstation Pro 17 目前VMware Workstation pro 17已经对个人用户免费开放使用。 Broadcom官网地址&#x…

如何在云端平台上建立 30,000 名用户的网页 MMO游戏环境-2 (服务器)

接续上一篇「如何在云端平台上建立 30,000 名用户的网页 MMO游戏环境」&#xff0c;接下来讨论模拟连结上的问题。 最初计划使用35台伺服器来完成这个实验&#xff0c;希望能够有大量的用户连接&#xff0c;以验证真实的连接状况。然而&#xff0c;我们高估了这方面&#xff0c…