【K8s学习】

k8s的简单执行流程:
Kubernetes Master(API Server、Scheduler等组件)负责调度Pod到合适的Node上。
当Pod被调度到某个Node时,该Node上的kubelet代理会收到指令并开始执行Pod的生命周期管理任务,包括创建、监控和终止Pod中的容器。
kubelet通过调用底层容器运行时接口来管理容器,而默认情况下,这个容器运行时就是Docker。也就是说,kubelet实际上是间接控制Docker引擎来创建和管理Pod内的容器。
所以,Pod更像是Kubernetes对容器进行抽象和编排的一种方式,并不是直接“控制”Docker的。在Kubernetes生态系统下,Docker是实现容器化技术的一种具体工具,kubelet通过与Docker API交互,确保Pod中的容器按照Kubernetes的规则运行。

1、Master 主节点 与Node计算节点 (组件)

在这里插入图片描述

Master-节点包括API Server、Scheduler、Controller manager、etcd.
API Server是整个系统的对外接口,供客户端和其它组件调用,相当于“营业厅”。
Scheduler负责对集群内部的资源进行调度,相当于“调度室”。
Controller manager负责管理控制器,相当于"“大总管”。
初步理解 提供api ,调度任务,mananager器,数据库
然后是Node节点。
在这里插入图片描述
Node节点包括Docker、kubelet、kube-proxy、Fluentd、kube-dns(可选),还有就是Pod。

Pod是Kubernetes最基本的操作单元。一个Pod代表着集群中运行的一个进程,它内部封装了一个或多个紧密相关的容器。除了Pod之外,K8S还有一个Service的概念,一个Service可以看作一组提供相同服务的Pod的对外访问接口
Docker,不用说了,创建容器的。
Kubelet,主要负责监视指派到它所在Node上的Pod,包括创建、修改、监控、删除等。
先理解为类似于redis的sentinel
Kube-proxy,主要负责为Pod对象提供代理。
mybatis插件 切面分页
Fluentd,主要负责日志收集、存储与查询,守护进程。
打日志
RKT
rkt运行容器,作为docker工具的替代方案。
supervisord
supervisord是一个轻量级的监控系统,用于保障kubelet和docker运行。
k8s

2、K8s对象

1.容器化应用正在运行(以及在哪些节点上)
这些应用可用的资源
关于这些应用如何运行的策略,如重新策略,升级和容错
Kubernetes对象是“record of intent”,一旦创建了对象,Kubernetes系统会确保对象存在。通过创建对象,可以有效地告诉Kubernetes系统你希望集群的工作负载是什么样的。

要使用Kubernetes对象(无论是创建,修改还是删除),都需要使用Kubernetes API。例如,当使用kubectl命令管理工具时,CLI会为提供Kubernetes API调用。你也可以直接在自己的程序中使用Kubernetes API,Kubernetes提供一个golang客户端库 (其他语言库正在开发中-如Python)。Java:k8sClient源码库

<dependency>
 <groupId>io.kubernetes</groupId>
 <artifactId>client-java</artifactId>
 <version>8.0.2</version>
 <scope>compile</scope>
</dependency>

2.描述Kubernetes对象
在Kubernetes中创建对象时,必须提供描述其所需Status的对象Spec,以及关于对象(如name)的一些基本信息。当使用Kubernetes API创建对象(直接或通过kubectl)时,该API请求必须将该信息作为JSON包含在请求body中。通常,可以将信息提供给kubectl .yaml文件,在进行API请求时,kubectl将信息转换为JSON。认证信息放在yam文件中发生的时候变为json发送
3.必填字段
对于要创建的Kubernetes对象的yaml文件,需要为以下字段设置值:
apiVersion - 创建对象的Kubernetes API 版本
kind - 要创建什么样的对象?
metadata- 具有唯一标示对象的数据,包括 name(字符串)、UID和Namespace(可选项)

3.K8s Names

Kubernetes REST API中的所有对象都用Name和UID来明确地标识。

对于非唯一用户提供的属性,Kubernetes提供labels和annotations。

1.Name
Name在一个对象中同一时间只能拥有单个Name,如果对象被删除,也可以使用相同Name创建新的对象,Name用于在资源引用URL中的对象,例如/api/v1/pods/some-name。通常情况,Kubernetes资源的Name能有最长到253个字符(包括数字字符、-和.),但某些资源可能有更具体的限制条件.

2.UIDs
UIDs是由Kubernetes生成的,在Kubernetes集群的整个生命周期中创建的每个对象都有不同的UID(即它们在空间和时间上是唯一的)。

4.K8s Labels与selecotrs

Labels选择器
与Name和UID 不同,标签不需要有唯一性。一般来说,我们期望许多对象具有相同的标签。

通过标签选择器(Labels Selectors),客户端/用户 能方便辨识出一组对象。标签选择器是kubernetes中核心的组成部分。

API目前支持两种选择器:equality-based(基于平等)和set-based(基于集合)的。
标签选择器可以由逗号分隔的多个requirements 组成。在多重需求的情况下,必须满足所有要求,因此逗号分隔符作为AND逻辑运算符。

一个为空的标签选择器(即有0个必须条件的选择器)会选择集合中的每一个对象。

一个null型标签选择器(仅对于可选的选择器字段才可能)不会返回任何对象。

注意:两个控制器的标签选择器不能在命名空间中重叠。

相关推荐

  1. k8s学习

    2024-01-13 12:44:02       52 阅读
  2. <span style='color:red;'>学习</span><span style='color:red;'>k</span><span style='color:red;'>8</span><span style='color:red;'>s</span>

    学习k8s

    2024-01-13 12:44:02      48 阅读
  3. K8S学习

    2024-01-13 12:44:02       53 阅读
  4. k8s学习

    2024-01-13 12:44:02       47 阅读
  5. <span style='color:red;'>k</span><span style='color:red;'>8</span><span style='color:red;'>s</span><span style='color:red;'>学习</span>

    k8s学习

    2024-01-13 12:44:02      36 阅读
  6. <span style='color:red;'>k</span><span style='color:red;'>8</span><span style='color:red;'>s</span><span style='color:red;'>学习</span>

    k8s学习

    2024-01-13 12:44:02      39 阅读
  7. <span style='color:red;'>K</span><span style='color:red;'>8</span><span style='color:red;'>S</span><span style='color:red;'>学习</span>

    K8S学习

    2024-01-13 12:44:02      32 阅读
  8. k8s学习路线

    2024-01-13 12:44:02       44 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-13 12:44:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-13 12:44:02       100 阅读
  3. 在Django里面运行非项目文件

    2024-01-13 12:44:02       82 阅读
  4. Python语言-面向对象

    2024-01-13 12:44:02       91 阅读

热门阅读

  1. 单片机学习记录(一)

    2024-01-13 12:44:02       47 阅读
  2. Spring整理-Spring Bean的作用域

    2024-01-13 12:44:02       54 阅读
  3. PyTorch核心--tensor 张量 !!

    2024-01-13 12:44:02       54 阅读
  4. AOSP 编译

    2024-01-13 12:44:02       56 阅读
  5. Spring整理-Spring Bean的生命周期

    2024-01-13 12:44:02       55 阅读
  6. Xbox无法登陆解决方式

    2024-01-13 12:44:02       211 阅读
  7. 【Node.js学习 day5——包管理工具】

    2024-01-13 12:44:02       52 阅读
  8. 正则表达式

    2024-01-13 12:44:02       37 阅读
  9. 浅谈Vue中的NextTick。

    2024-01-13 12:44:02       52 阅读
  10. 前端系列:正则表达式RegExp详解

    2024-01-13 12:44:02       46 阅读
  11. 什么是激励函数?

    2024-01-13 12:44:02       51 阅读
  12. Vue3 中 ref和reactive的区别是什么?

    2024-01-13 12:44:02       54 阅读
  13. 笙默考试管理系统-MyExamTest----codemirror(68)

    2024-01-13 12:44:02       46 阅读