虚拟机搭建---K8S环境

embedded/2025/2/7 8:46:44/

K8S:docker容器其实本质上是一个linux里面的一个进程,容器本身自己是没有可再生能力的,没有高可用,而且生产环境运行容器,不可能只运行一两个,因此为了更加方便的管理众多容器,以及让容器具备高可用性,有一个东西出来了,容器编排工具。

k8s是个工具,它是管理容器的,k8s管理/调度的最小单元/单位是一个pod。

实际生产环境搭建K8S是以二进制的方式搭建的。

虚拟机搭建K8S环境至少2个vcpu

克隆三台虚拟机

修改主机名

配置静态IP

可以选择配置静态IP或者DHCP分配IP

运行脚本

3个节点分别运行同一个脚本

[root@kmaster ~]# sh Stream8-k8s-v1.27.0.sh

[root@knode1 ~]# sh Stream8-k8s-v1.27.0.sh

[root@knode2 ~]# sh Stream8-k8s-v1.27.0.sh

等待3个节点全部运行完毕后,把脚本里面第11步操作的命令,单独拷贝出来,在master节点上执行(注意,不需要在node上执行,仅在master上)

[root@kmaster ~]# kubeadm init --image-repository registry.aliyuncs.com/google_containers --kubernetes-version=v1.27.0 --pod-network-cidr=10.244.0.0/16

如果集群初始化失败,大概率都是因为网络原因,更换网络再试

[root@kmaster ~]#   mkdir -p $HOME/.kube

[root@kmaster ~]#   sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config

[root@kmaster ~]#   sudo chown $(id -u):$(id -g) $HOME/.kube/config

[root@kmaster ~]# echo 'export KUBECONFIG=/etc/kubernetes/admin.conf' >> /etc/profile

[root@kmaster ~]# source /etc/profile

[root@kmaster ~]#

[root@kmaster ~]# kubectl get node

NAME      STATUS     ROLES           AGE     VERSION

kmaster   NotReady   control-plane   6m32s   v1.27.0

加入其他两个节点

把生成的token命令分别在其他两个节点上执行,就会加入当前的集群

kubeadm join 192.168.100.221:6443 --token faze5f.2xcem41hpwiqiprv \

    --discovery-token-ca-cert-hash sha256:79f0aaa17a84d8de2ef22237c7afb4b19cc091303d58445734d4cef4d48b8864

安装calico网络插件

[root@kmaster ~]# kubectl create -f tigera-operator-3-26-1.yaml

[root@kmaster ~]# kubectl create -f custom-resources-3-26-1.yaml

[root@kmaster ~]# watch kubectl get pods -n calico-system

所有pod全部变为running,整个集群创建成功。

现在集群状态就变为了ready

如果执行两个yaml文件之后,看不到明明空间,或者出现了其他错误。解决方案,倒着删除,重新执行。

kubectl delete -f cutomxxxx.....yaml

kubectl delete -f tigera.....yaml

先删干净,再次尝试执行

kubectl create -f tigera....yaml

kubectl create -f custom...yaml


http://www.ppmy.cn/embedded/160250.html

相关文章

DeepSeek大模型技术解析:从架构到应用的全面探索

一、引言 在人工智能领域,大模型的发展日新月异,其中DeepSeek大模型凭借其卓越的性能和广泛的应用场景,迅速成为业界的焦点。本文旨在深入剖析DeepSeek大模型的技术细节,从架构到应用进行全面探索,以期为读者提供一个…

【贪心算法篇】:“贪心”之旅--算法练习题中的智慧与策略(一)

✨感谢您阅读本篇文章,文章内容是个人学习笔记的整理,如果哪里有误的话还请您指正噢✨ ✨ 个人主页:余辉zmh–CSDN博客 ✨ 文章所属专栏:贪心算法篇–CSDN博客 文章目录 一.贪心算法1.什么是贪心算法2.贪心算法的特点 二.例题1.柠…

Ruby语言的循环实现

Ruby语言的循环实现 Ruby是一种面向对象的编程语言,以其简洁和易读性而闻名。在Ruby中,循环是一种常见的控制结构,用于重复执行代码块,直到满足特定条件。通过深入研究Ruby的循环结构,我们可以掌握其内部机制&#xf…

免费windows pdf编辑工具

Epdf(完全免费) 作者:不染心 时间:2025/2/6 Github: https://github.com/dog-tired/Epdf Epdf Epdf 是一款使用 Rust 编写的 PDF 编辑器,目前仍在开发中。它提供了一系列实用的命令行选项,方便用户对 PDF …

AURIX TC275学习笔记4 官方GTM例程 GTM_TOM_PWM_1

文章目录 概述其他例程 代码分析IfxGtm_enable()IfxGtm_Cmu_enableClocks()IfxGtm_Tom_Pwm_initConfig()IfxGtm_Tom_Pwm_init()IfxGtm_Tom_Pwm_start()fadeLED() 概述 目的&#xf…

【wiki知识库】07.用户管理后端SpringBoot部分

目录 一、今日目标 二、🎈SpringBoot部分类的添加 2.1 使用逆向工程新增User模块 2.2 UserQueryParam添加 2.3 UserSaveParam添加 2.4 UserResetPasswordParam添加 2.5 UserQueryVo添加 2.6 SnowFlake工具类 三、🚆后端新增接口 3.1 /user/li…

Spring Boot中使用MockMvc测试PATCH请求控制器

在Spring Boot项目中,对控制器进行单元测试是确保代码质量和功能正确性的重要环节。本文将通过一个具体的例子,展示如何使用Spring的MockMvc框架来测试处理PATCH请求的控制器。 示例项目结构 假设我们有一个简单的Spring Boot项目,其中包含一…

每日Attention学习22——Inverted Residual RWKV

模块出处 [arXiv 25] [link] [code] RWKV-UNet: Improving UNet with Long-Range Cooperation for Effective Medical Image Segmentation 模块名称 Inverted Residual RWKV (IR-RWKV) 模块作用 用于vision的RWKV结构 模块结构 模块代码 注:cpp扩展请参考作者原…