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

k8s的简介和部署

一、k8s简介

在部署应用程序的方式上面,主要经历了三个阶段:

传统部署:互联网早期,会直接将应用程序部署在物理机上
优点:简单,不需要其它技术的参与
缺点:不能为应用程序定义资源使用边界,很难合理地分配计算资源,而且程序之间容易产生影响

虚拟化部署:可以在一台物理机上运行多个虚拟机,每个虚拟机都是独立的一个环境

优点:程序环境不会相互产生影响,提供了一定程度的安全性

缺点:增加了操作系统,浪费了部分资源
容器化部署:与虚拟化类似,但是共享了操作系统
容器化部署方式给带来很多的便利,但是也会出现一些问题:
一个容器故障停机了,怎么样让另外一个容器立刻启动去替补停机的容器当并发访问量变大的时候,怎么样做到横向扩展容器数量

kubenetes简介:

Kubernetes 是一个可移植、可扩展的开源平台,用于管理容器化的工作负载和服务,方便进行声明式配置和自动化。Kubernetes 拥有一个庞大且快速增长的生态系统,其服务、支持和工具的使用范围广泛。

二、k8s部署

主机名ip角色
docker-harbor.revkarl.org172.25.254.250harbor仓库
k8s-master172.25.254.100master,k8s集群控制节点
k8s-node1172.25.254.10worker,k8s集群工作节点
k8s-node2172.25.254.20worker,k8s集群工作节点

所有节点关闭selinux和防火墙

systemctl disabled firewalld
systemctl stop firewalld
grubby --update-kernel ALL --args selinux=0
reboot

所有节点在每次开启的时候禁用swapon分区:

vim /etc/rc.d/rc.local
swapoff /dev/dm-1
chmod +x /etc/rc.d/rc.local

所有节点做好dns解析:

cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
172.25.254.10	  k8s-node1
172.25.254.20	  k8s-node2
172.25.254.100	k8s-master
172.25.254.250	reg.revkarl.org

所有节点安装docker:

cat /etc/yum.repos.d/docker-ce.repo 
[docker]
name=docker
baseurl=https://mirrors.aliyun.com/docker-ce/linux/rhel/9/x86_64/stable/
gpgcheck=0
dnf install docker-ce -y

在所有的k8s节点创建放置证书的目录:

mkdir -p /etc/docker/certs.d/reg.revkarl.org/

把harbor仓库里的证书拷贝给k8s所有节点:

ls /data/certs/
revkarl.org.crt  revkarl.org.key
scp /data/certs/revkarl.org.crt root@172.25.254.100:/etc/docker/certs.d/reg,revkarl.org/ca.crt

启动docker仓库:

systemctl enable --now docker

登陆之后查看harbor仓库的认证:

docker login reg.revkarl.org
docker info

现在我们就可以安装k8s部署工具了

[root@k8s-master ~]# cat /etc/yum.repos.d/k8s.repo 
[k8s]
name=k8s
baseurl=https://mirrors.aliyun.com/kubernetes-new/core/stable/v1.30/rpm/
gpgcheck=0
dnf install kubelet-1.30.0 kubeadm-1.30.0 kubectl-1.30.0 -y

设置kubectl命令补齐功能:

dnf install bash-completion -y
echo "source <(kubectl completion bash)" >> ~/.bashrc
source ~/.bashrc

在所有节点安装cri-docker

dnf install libcgroup-0.41-19.el8.x86_64.rpm \
> cri-dockerd-0.3.14-3.el8.x86_64.rpm -y

指定网络插件名称以及基础容器镜像 

vim /lib/systemd/system/cri-docker.service

fd:// --network-plugin=cni --pod-infra-container-image=reg.revkarl.org/k8s/pause:3.9
systemctl daemon-reload 
systemctl start cri-docker
ll /var/run/cri-dockerd.sock 
srw-rw---- 1 root docker 0 10月  5 18:03 /var/run/cri-dockerd.sock

在master节点拉取k8s所需镜像:

kubeadm config images pull \
--image-repository registry.aliyuncs.com/google_contaniers \
--kubernetes-version v1.30.0 \
--cri-socket=unix:///var/run/cri-dockerd.sock

上传镜像到harbor仓库

docker images | awk '/google/{ print $1":"$2}' \
| awk -F "/" '{system("docker tag "$0" reg.revkarl.org/k8s/"$3)}'
docker images | awk '/k8s/{system("docker push "$1":"$2)}'

三、集群初始化 

启动kubelet服务

systemctl enable --now kubelet
systemctl status kubelet.service

执行初始化命令:

kubeadm init --pod-network-cidr=10.244.0.0/16 \
--image-repository reg.revkarl.org/k8s \
--kubernetes-version v1.30.0 \
--cri-socket=unix:///var/run/cri-dockerd.sock

 指定集群配置文件变量:

echo "export KUBECONFIG=/etc/kubernetes/admin.conf" >> ~/.bash_profile

安装flannel网络插件:

下载flanne]的yaml部署文件

wget https://github.com/flanne7.io/flannel/releases/latest/download/kube-flannel.yml

拉取镜像: 

docker pull docker.io/flannel/flannel:v0.25.5
docekr docker.io/flannel/flannel-cni-plugin:v1.5.1-flannel1

上传镜像到仓库 :

docker tag flannel/flannel:v0.25.5reg.timinglee.org/flannel/flannel:v0.25.5
docker push reg.timinglee.org/flannel/flannel:v0.25.5
docker tag flannel/flannel-cni-plugin:v1.5.1-flannel1reg.timinglee.org/flannel/flannel-cni-plugin:v1.5.1-flannel1
docker push reg.timinglee.org/flannel/flannel-cni-plugin:v1.5.1-flanne11

修改镜像下载位置:

vim kube-flannel.yml
146:    image:reg.timinglee.org/flannel/flannel:v0.25.5
173:    image:reg.timinglee.org/flannel/flannel-cni-plugin:v1.5.1-flannel1
184:    image:reg.timinglee.org/flannel/flannel:v0.25.5

应用网络插件:

kubectl apply -f kube-flannel.yml

加入集群:

kubeadm join 172.25.254.100:6443 --token5hwptm.zwn7epa6pvatbpwf--discovery-token-ca-cert-hashsha256:52f1a83b70ffc8744db5570288ab51987ef2b563bf906ba4244a300f61e9db23 --cri-socket=unix:///var/run/cri-dockerd.sock

在master节点中查看所有node的状态:

kubectl get nodes

所有节点的状态都为ready,那么恭喜你装成功了!! 

 可以像我这样跑个nginx镜像试试:

相关文章:

k8s的简介和部署

一、k8s简介 在部署应用程序的方式上面&#xff0c;主要经历了三个阶段&#xff1a; 传统部署:互联网早期&#xff0c;会直接将应用程序部署在物理机上优点:简单&#xff0c;不需要其它技术的参与缺点:不能为应用程序定义资源使用边界&#xff0c;很难合理地分配计算资源&…...

Thingsboard 网关实战 modbus通信 rpc下发控制指令

我们这里说的是Thingsboard通过网关modbus通信接入设备&#xff0c;然后通过rpc下发指令去控制开关信号的设备&#xff0c;不会网关通过modbus接入设备的&#xff0c;可以看我之前的文章&#xff0c;从小白教学。 下面我们就说如何下发rpc开关信号指令 第一步.在modbus配置文…...

基于pytorch的手写数字识别

import pandas as pd import numpy as np import torch import matplotlib import matplotlib.pyplot as plt from torch.utils.data import TensorDataset, DataLoadermatplotlib.use(tkAgg)# 设置图形配置 config {"font.family": serif,"mathtext.fontset&q…...

MySQL 实验 7:索引的操作

MySQL 实验 7&#xff1a;索引的操作 索引是对数据表中一列或多列的值进行排序的一种结构&#xff0c;索引可以大大提高 MySQL 的检索速度。合理使用索引&#xff0c;可以大大提升 SQL 查询的性能。 索引好比是一本书前面的目录&#xff0c;假如我们需要从书籍查找与 xx 相关…...

为Floorp浏览器添加搜索引擎及搜索栏相关设置. 2024-10-05

Floorp浏览器开源项目地址: https://github.com/floorp-Projects/floorp/ 1.第一步 为Floorp浏览器添加搜索栏 (1.工具栏空白处 次键选择 定制工具栏 (2. 把 搜索框 拖动至工具栏 2.添加搜索引擎 以添加 搜狗搜索 为例 (1.访问 搜索引擎网址 搜狗搜索引擎 - 上网从搜狗开始 (2…...

如何设置WSL Ubuntu在Windows开机时自动启动

如何设置WSL Ubuntu在Windows开机时自动启动 步骤详解1. 创建批处理脚本2. 添加到Windows启动项 注意事项结语 在使用Windows Subsystem for Linux (WSL) 时,我们可能希望Ubuntu能够在Windows启动时自动运行。本文将介绍如何实现这一功能,让您的开发环境更加便捷。 步骤详解 …...

使用TensorBoard可视化模型

目录 TensorBoard简介 神经网络模型 可视化 轮次-损失曲线 轮次-准确率曲线 轮次-学习率曲线 迭代-评估准确率曲线 迭代-评估损失曲线 TensorBoard简介 TensorBoard是一款出色的交互式的模型可视化工具。安装TensorFlow时,会自动安装TensorBoard。如图: TensorFlow可…...

《深度学习》OpenCV 图像拼接 原理、参数解析、案例实现

目录 一、图像拼接 1、直接看案例 图1与图2展示&#xff1a; 合并完结果&#xff1a; 2、什么是图像拼接 3、图像拼接步骤 1&#xff09;加载图像 2&#xff09;特征点检测与描述 3&#xff09;特征点匹配 4&#xff09;图像配准 5&#xff09;图像变换和拼接 6&am…...

Hive数仓操作(三)

一、Hive 数据库操作 1. 创建数据库 基本创建数据库命令&#xff1a; CREATE DATABASE bigdata;说明&#xff1a; 数据库会在 HDFS 中以目录的形式创建和保存&#xff0c;数据库名称会存储在 Hive 的元数据中。如果不指定目录&#xff0c;数据库将在 /user/hive/warehouse 下…...

TDSQL-C电商可视化,重塑电商决策新纪元

前言&#xff1a; 在数字化浪潮席卷全球的今天&#xff0c;电子商务行业以其独特的魅力和无限潜力&#xff0c;成为了推动全球经济增长的重要引擎。然而&#xff0c;随着业务规模的急剧扩张&#xff0c;海量数据的涌现给电商企业带来了前所未有的挑战与机遇。如何高效地处理、…...

翔云 OCR:发票识别与验真

在数字化时代&#xff0c;高效处理大量文档和数据成为企业和个人的迫切需求。翔云 OCR 作为一款强大的光学字符识别工具&#xff0c;在发票识别及验真方面表现出色&#xff0c;为我们带来了极大的便利。 一、翔云 OCR 简介 翔云 OCR 是一款基于先进的人工智能技术开发的文字识别…...

HTML ASCII:Web 开发中的字符编码基础

HTML ASCII&#xff1a;Web 开发中的字符编码基础 ASCII&#xff0c;全称为美国信息交换标准代码&#xff08;American Standard Code for Information Interchange&#xff09;&#xff0c;是一种用于电子通信的字符编码标准。它最初于1963年提出&#xff0c;用于在不同的计算…...

Meta 首个多模态大模型一键启动!首个多针刺绣数据集上线,含超 30k 张图片

小扎在 Meta Connect 2024 主题演讲中宣布推出首个多模态大模型 Llama 3.2 vision&#xff01;该模型有 11B 和 90B 两个版本&#xff0c;成为首批支持多模态任务的 Llama 系列模型&#xff0c;根据官方数据&#xff0c;这两个开原模型的性能已超越闭源模型。 小编已经迫不及待…...

阿里云ECS服务器仿真

1.首先使用qemu-img对RAW镜像进行转换&#xff0c;qemu-img convert -O vmdk 1.raw 2.vmdk 2.使用WinHex对镜像的root密码进行删除 3.由于这次阿里云ECS使用了CONFIG_SYSTEM_TRUSTED_KEYS验证&#xff0c;无法直接仿真&#xff0c;需使用live系统对内核进行修改。分为以下几步&…...

如何为树莓派安装操作系统,以及远程操控树莓派的两种方法,无线操控和插网线操控

文章目录 一、下载树莓派的系统二、将文件下载到SD卡中1.使用官方软件2.其他选择 三、远程连接电脑安装vnc-viewer1.无线操作&#xff08;配置树莓派&#xff0c;开启VNC&#xff09;电脑远程配置2.有线连接&#xff08;需要一根网线&#xff09; 总结 一、下载树莓派的系统 下…...

【最新华为OD机试E卷-支持在线评测】简单的自动曝光(100分)多语言题解-(Python/C/JavaScript/Java/Cpp)

🍭 大家好这里是春秋招笔试突围 ,一枚热爱算法的程序员 💻 ACM金牌🏅️团队 | 大厂实习经历 | 多年算法竞赛经历 ✨ 本系列打算持续跟新华为OD-E/D卷的多语言AC题解 🧩 大部分包含 Python / C / Javascript / Java / Cpp 多语言代码 👏 感谢大家的订阅➕ 和 喜欢�…...

每日一练:等差数列划分

413. 等差数列划分 - 力扣&#xff08;LeetCode&#xff09; 题目要求&#xff1a; 如果一个数列 至少有三个元素 &#xff0c;并且任意两个相邻元素之差相同&#xff0c;则称该数列为等差数列。 例如&#xff0c;[1,3,5,7,9]、[7,7,7,7] 和 [3,-1,-5,-9] 都是等差数列。 给…...

Kotlin真·全平台——Kotlin Compose Multiplatform Mobile(kotlin跨平台方案、KMP、KMM)

前言 随着kotlin代码跨平台方案的推出&#xff0c;kotlin跨平台一度引起不少波澜。但波澜终归没有掀起太大的风浪&#xff0c;作为一个敏捷型开发的公司&#xff0c;依然少不了Android和iOS的同步开发&#xff0c;实际成本和效益并没有太多变化。所以对于大多数公司来说依然风平…...

unity 默认渲染管线材质球的材质通道,材质球的材质通道

标准渲染管线——材质球的材质通道 文档&#xff0c;与内容无关&#xff0c;是介绍材质球的属性的。 https://docs.unity3d.com/2022.1/Documentation/Manual/StandardShaderMaterialParameters.html游戏资源中常见的贴图类型 https://zhuanlan.zhihu.com/p/260973533 十大贴图…...

PostgreSQL升级:使用pg_upgrade进行大版本(16.3)升级(17.0)

1.pg_upgrade工具介绍 pg_upgrade 会创建新的系统表&#xff0c;并以重用旧的数据文件的方式进行升级。 pg_upgrade 的参数选项如下&#xff1a; -b bindir&#xff0c;--old-bindirbindir&#xff1a;旧的 PostgreSQL 可执行文件目录&#xff1b; -B bindir&#xff0c;--new-…...

springboot 百货中心供应链管理系统小程序

一、前言 随着我国经济迅速发展&#xff0c;人们对手机的需求越来越大&#xff0c;各种手机软件也都在被广泛应用&#xff0c;但是对于手机进行数据信息管理&#xff0c;对于手机的各种软件也是备受用户的喜爱&#xff0c;百货中心供应链管理系统被用户普遍使用&#xff0c;为方…...

微信小程序之bind和catch

这两个呢&#xff0c;都是绑定事件用的&#xff0c;具体使用有些小区别。 官方文档&#xff1a; 事件冒泡处理不同 bind&#xff1a;绑定的事件会向上冒泡&#xff0c;即触发当前组件的事件后&#xff0c;还会继续触发父组件的相同事件。例如&#xff0c;有一个子视图绑定了b…...

黑马Mybatis

Mybatis 表现层&#xff1a;页面展示 业务层&#xff1a;逻辑处理 持久层&#xff1a;持久数据化保存 在这里插入图片描述 Mybatis快速入门 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/6501c2109c4442118ceb6014725e48e4.png //logback.xml <?xml ver…...

线程同步:确保多线程程序的安全与高效!

全文目录&#xff1a; 开篇语前序前言第一部分&#xff1a;线程同步的概念与问题1.1 线程同步的概念1.2 线程同步的问题1.3 线程同步的解决方案 第二部分&#xff1a;synchronized关键字的使用2.1 使用 synchronized修饰方法2.2 使用 synchronized修饰代码块 第三部分&#xff…...

java 实现excel文件转pdf | 无水印 | 无限制

文章目录 目录 文章目录 前言 1.项目远程仓库配置 2.pom文件引入相关依赖 3.代码破解 二、Excel转PDF 1.代码实现 2.Aspose.License.xml 授权文件 总结 前言 java处理excel转pdf一直没找到什么好用的免费jar包工具,自己手写的难度,恐怕高级程序员花费一年的事件,也…...

鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院挂号小程序

一、开发准备 ​​环境搭建​​&#xff1a; 安装DevEco Studio 3.0或更高版本配置HarmonyOS SDK申请开发者账号 ​​项目创建​​&#xff1a; File > New > Create Project > Application (选择"Empty Ability") 二、核心功能实现 1. 医院科室展示 /…...

ffmpeg(四):滤镜命令

FFmpeg 的滤镜命令是用于音视频处理中的强大工具&#xff0c;可以完成剪裁、缩放、加水印、调色、合成、旋转、模糊、叠加字幕等复杂的操作。其核心语法格式一般如下&#xff1a; ffmpeg -i input.mp4 -vf "滤镜参数" output.mp4或者带音频滤镜&#xff1a; ffmpeg…...

C# 求圆面积的程序(Program to find area of a circle)

给定半径r&#xff0c;求圆的面积。圆的面积应精确到小数点后5位。 例子&#xff1a; 输入&#xff1a;r 5 输出&#xff1a;78.53982 解释&#xff1a;由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982&#xff0c;因为我们只保留小数点后 5 位数字。 输…...

蓝桥杯 冶炼金属

原题目链接 &#x1f527; 冶炼金属转换率推测题解 &#x1f4dc; 原题描述 小蓝有一个神奇的炉子用于将普通金属 O O O 冶炼成为一种特殊金属 X X X。这个炉子有一个属性叫转换率 V V V&#xff0c;是一个正整数&#xff0c;表示每 V V V 个普通金属 O O O 可以冶炼出 …...

push [特殊字符] present

push &#x1f19a; present 前言present和dismiss特点代码演示 push和pop特点代码演示 前言 在 iOS 开发中&#xff0c;push 和 present 是两种不同的视图控制器切换方式&#xff0c;它们有着显著的区别。 present和dismiss 特点 在当前控制器上方新建视图层级需要手动调用…...