k8s中的基础概念

news2024/11/17 19:52:23

k8s可以从硬件和软件两方面来理解:

硬件:

        1、节点(Node):类似于手机、平板、电脑

        2、集群(Cluster):多个节点组合到一起

        3、持久卷(Persistent Volumes):类似于插入到集群中的外部硬盘

软件:

        1、容器(Container)

        2、Pod:k8s的基本计算单元。Kubernetes不直接运行容器,它将一个或多个容器封装到一个称为Pod的高级结构中。相同Pod中的任何容器都将共享相同的名称空间和本地网络

        3、部署(Deployment):管理pod的抽象层。部署的主要目的是声明一个Pod应该同时运行多少个副本。当将部署添加到集群中时,它将自动地旋转加速所需的Pod数量,然后监视它们。如果一个Pod消失,部署将自动重新创建它。

使用部署,你不必手动处理Pod。你只需声明系统的期望状态,它将自动为你管理。

        4、网关(Gateway):网关路由,外部由此来访问部署的应用程序

一、k8s的pod

1、获取所有的namespace

kubectl get namespaces
kubectl get pods --all-namespaces
kubectl get pods -A

2、部署nginx到项目(demo)中

kubectl run nginx --image=nginx --namespace=demo

3、通过label查询pods

官方标签label链接

kubectl get pods --namespace=demo -l "app=admin-service"

4、查看pod的日志

kubectl logs --namespace=demo -l "app=admin-service"

5、查看pods更多的详细信息

kubectl get pods --namespace=demo -l "app=admin-service" -o wide

6、pods相关的命令 官方pod命令链接

二、k8s的控制器

Kubernetes中内建了很多controller(控制器),这些相当于一个状态机,用来控制Pod的具体状态和行为

1、Deployment:适合无状态的服务部署,例如:admin-service

2、StatefullSet:适合有状态的服务部署,例如:MySQL

3、DaemonSet:一次部署,所有的node节点都会部署,例如一些典型的应用场景:

          运行集群存储 daemon,例如:在每个Node上运行 glusterd、ceph

          在每个Node上运行日志收集daemon,例如:fluentd、logstash

          在每个Node上运行监控daemon,例如:”Prometheus Node Exporter

4、Job:一次性的执行任务,例如:数据库初始化

5、Cronjob:周期性的执行任务,例如:定时任务

        1、deployment

                a、副本 replicas 去设置启动多个少实例

                b、spec:设置容器相关的信息:镜像,cpu设置多少,端囗映射、挂载

                c、更新策略:

                        1)、我升级版本了。如果我停掉之前的版本,然后上线新的版本,有一段时间服务不可用

                        2)、滚动更新就可以不用停止服务

        2、如何获取某个pod的deployment

kubectl get deployments --namespace=demo -l "app=admin-service" -o yaml > ./admin-service.yaml

        3、deployment官方文档

三、k8s的service 

service:负责多个 pod之间的负载均衡

1.编辑yaml

        kubectl apply 应用yaml配置

2.列出service

kubectl get services --namespace=demo -l "app=admin-service-nodeport"

四、k8s的gateway

资源模型

网关 API 有三种稳定的 API:

  • 网关类:定义一组具有通用配置并由控制器管理的网关 实现类。

  • 网关:定义流量处理基础架构(例如云负载均衡器)的实例。

  • HTTPRoute:定义特定于 HTTP 的规则,用于将流量从网关侦听器映射到 后端网络终结点的表示形式。这些节点通常表示为服务.

网关 API 被组织成不同的 API 类型,这些 API 类型具有相互依赖的关系来支持 组织以角色为导向的性质。一个 Gateway 对象只与一个 GatewayClass 相关联;GatewayClass 描述负责管理此类网关的网关控制器。 然后,将一个或多个路由类型(如 HTTPRoute)关联到网关。网关可以过滤可能附加到其监听的路由,从而形成一个带有路由的双向信任模型。

下图说明了三种稳定网关 API 类型的关系:

五、k8s的卷

常用的卷类型:

        1、local

        2、hostpath

        3、cephfs

六、k8s集群架构组件

当你部署完 Kubernetes,便拥有了一个完整的集群。

一组工作机器,称为节点, 会运行容器化应用程序。每个集群至少有一个工作节点。

工作节点会托管 Pod,而 Pod 就是作为应用负载的组件。 控制平面管理集群中的工作节点和 Pod。 在生产环境中,控制平面通常跨多台计算机运行, 一个集群通常运行多个节点,提供容错性和高可用性。

下图是正常运行的 Kubernetes 集群所需的各种组件

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

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

相关文章

微信小程序开发WebSocket通讯

官方文档说明:入口 WebSocket连接的链接只支持wss加密方式,且只能用域名的方式 该域名还要在微信公众平台的小程序中登记才能使用,开发->开发管理->服务器域名->修改 该域名要和https使用的一致 以域名地址:dtu.aab…

质量好洗地机有哪些?洗地机口碑榜

在很多人眼中,洗地机可能被简单地视为一种高价的拖把,但作为一个经验丰富的洗地机测评博主,我要强调洗地机在家务工作中的巨大价值。它不仅仅是一种清洁工具,更是集扫地、拖地、洗地以及擦干地板等多项功能于一身的强大设备。通过…

【软件测试】学习笔记-设计GUI自动化测试策略

这篇文章从“实战”这个角度展开,探讨实际的大型全球化电商网站的GUI自动化测试如何开展。这场实战,从以下两个方面展开: 测试策略如何设计?这一点,我会根据亲身经历的实际项目,和你探讨GUI测试的分层测试…

R730服务器做了raid的硬盘,插在R720上面可以用吗?

环境 戴尔R720 戴尔R730 问题描述 R730服务器做了raid的硬盘,插在R720上面可以用吗? 解决方案 1.直接在 R730服务器做了raid的硬盘,卸下来在插在r720上面使用 ,读不到硬盘 2.前往R730服务器上面,去清除RAID配置的…

采集小红书笔记详情页的方法,大部分人都想得复杂了

一般来说,社交媒体都有列表页和详情页、个人主页三大页面,列表页一般包含搜索结果页、话题聚合页等等,详情页就是点开某一条笔记或者动态的具体页面; 小红书当然也不例外,比如下面这个话题聚合页: https:/…

csv文件查找工具(一)

自己写的小工具,查询csv文件前三列的数据互查, 主要目的是 组sql 需要这三个数据互查, 当然从数据库查的更快, 但数据库的连接需要验证权限,能自己搞,先自己搞 速度待优化,没时间搞了&#xff0…

【办公技巧】Word功能区灰色显示不能编辑,怎么破?

Word文档可以设置加密来保护文件禁止修改,但是在word文档中设置限制编辑功能时对它的作用是否有详细的了解呢?今天为大家介绍word限制编辑功能的作用以及忘记了限制编辑密码该如何解决。 设置限制大家应该都清楚,就是点击工具栏中的审阅 – …

微信小程序开发学习笔记《7》全局配置以及小程序窗口

微信小程序开发学习笔记《7》全局配置以及小程序窗口 博主正在学习微信小程序开发,希望记录自己学习过程同时与广大网友共同学习讨论。全局配置官方文档 一、全局配置文件及常用的配置项 小程序根目录下的app.json 文件是小程序的全局配置文件。 常用的配置项如…

Java基础项目---飞机大战的简易实现

推荐阅读 智能化校园:深入探讨云端管理系统设计与实现(一) 智能化校园:深入探讨云端管理系统设计与实现(二) 文章目录 推荐阅读前言一、系统分析问题描述总体设计功能流程图 二、程序和算法的介绍FlyingOb…

DDNS-GO配置使用教程

环境:openwrt 下载地址:Releases jeessy2/ddns-go GitHub 下载 ssh至openwrt根目录,根据你的处理器选择要下载的版本,我是路由器,选择的是 ddns-go_5.7.1_linux_arm64.tar.gz wget github链接 安装 tar -zxvf…

Java面试题之JVM

Java面试题之JVM 1. JVM的组成部分及其作用?2. JVM的堆和栈的区别?3. 简述一下垃圾回收机制?(垃圾回收的原理?)4. 垃圾回收器都有什么?该怎么选择?5. 如何判断垃圾可以回收了?6. 垃圾回收算法有…

Redis原理篇(Dict的收缩扩容机制和渐进式rehash)

Dict(即字典) Redis是一种键值型数据库,其中键与值的映射关系就是Dict实现的。 Dict通过三部分组成:哈希表(DictHashTable),哈希节点(DictEntry),字典(Dict&#xff09…

pgzrun 生命游戏制作过程详解

背景资料 康威生命游戏(Game of Life)是剑桥大学约翰何顿康威设计的计算机程序。 美国趣味数学大师马丁加德纳(Martin Gardner,1914-2010)通过《科学美国人》杂志,将康威的生命游戏介绍给学术界之外的广大渎者,一…

互联网大厂职场各职级P6/P7和核心能力

目录 具体能力要求总结 具体能力要求 专业工匠 p5 被别人带领p6 独立完成项目全流程,指导 2-3 人 乐队指挥 p7 带行政团队 7-10 ,项目团队,专项团队,复杂系统设计 1-3 个一般系统构成p8 领域专家 垂直 3 个团队 ,横…

蓝桥杯基础知识3 memset()

蓝桥杯基础知识3 memset() #include <bits/stdc.h> using namespace std;int main(){int a[5]; //随机数for(int i 0;i < 5; i)cout << a[i] << \n;cout << \n;memset(a, 0, sizeof a); //0for(int i 0;i < 5; i)cout << a[i] << …

Proteus仿真stm32f103r6输出PWM/正弦波

资料下载地址&#xff1a;Proteus仿真stm32f103r6输出PWM/正弦波 一、仿真图 Proteus仿真stm32f103r6输出PWM/正弦波 二、程序 #include "pbdata.h"u16 fre; void RCC_Configuration(void); void GPIO_Configuration(void); void TIM3_Configuration();void Dela…

Kotlin程序设计(三)高级用法

Kotlin程序设计高级篇 在学习了前面的内容之后&#xff0c;相信各位小伙伴应该对Kotlin这门语言有了一些全新的认识&#xff0c;我们已经了解了大部分的基本内容&#xff0c;从本章开始&#xff0c;就是对我们之前所学的基本内容的进一步提升。 泛型 在前面我们学习了最重要…

【信息论与编码】【北京航空航天大学】实验二、哈夫曼编码【C语言实现】(下)图像编码压缩

实验2 哈夫曼编码&#xff08;下&#xff09;&#xff08;图像编码&#xff09; 实验简介&#xff1a; 本次实验为实验1&#xff1a;哈夫曼编码的后续补充&#xff0c;实验1见博客&#xff1a;实验一、哈夫曼编码【C语言实现】&#xff08;上&#xff09; 说明&#xff1a; 实…

Redis系列-15.Redis的IO多路复用原理解析

&#x1f44f;作者简介&#xff1a;大家好&#xff0c;我是爱吃芝士的土豆倪&#xff0c;24届校招生Java选手&#xff0c;很高兴认识大家&#x1f4d5;系列专栏&#xff1a;Spring源码、JUC源码、Kafka原理、分布式技术原理、数据库技术&#x1f525;如果感觉博主的文章还不错的…

【REST2SQL】05 GO 操作 达梦 数据库

【REST2SQL】01RDB关系型数据库REST初设计 【REST2SQL】02 GO连接Oracle数据库 【REST2SQL】03 GO读取JSON文件 【REST2SQL】04 REST2SQL第一版Oracle版实现 信创要求用国产数据库&#xff0c;刚好有项目用的达梦&#xff0c;研究一下go如何操作达梦数据库 1 准备工作 1.1 安…