K8S知识图谱

K8S集群组件

Kubernetes 系统快速入门

面试宝典
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
CNI、CSI和CRI

在这里插入图片描述

  • Kubernetes集群主要由Master和Node两类节点组成。
  • Master主要包含API Server、controller-manager、Scheduler和etcd几个组件,其中API Server是整个集群的网关。
  • Node主要由kubelet、kube-proxy和容器引擎等组件构成,kubelet是Kubernetes集群的工作于节点之上的代理组件。
  • 完整的Kubernetes集群还需要部署有CoreDNS(或KubeDNS)、Prometheus(或HeapSter)、Dashboard和Ingress Controller几个附加组件。
  • Kubernetes的网络中主要存在四种类型的通信:同一Pod内的容器间通信、各Pod间的通信、Pod与Service间的通信,以及集群外部的流量同Service之间的通信。

在这里插入图片描述

在这里插入图片描述

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

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

Pod

虚拟化管理VM、Docker管理容器、Kubernetes管理Pod。

Pod部署

在这里插入图片描述
pending running running failed
在这里插入图片描述

  • 1.Pod是Kubernetes中被调度的最小单位。
  • 2.Pod中可能包含多个容器。单容器Pod是最简单的,但是多容器Pod对于紧耦合的容器使用场景来说更加适用,多容器Pod非常适用于日志和服务网格。
  • 3.Pod被调度到节点上——一个Pod不能被调度为跨多个节点。
  • 4.Pod是被基于声明式的方式定义在一个清单文件中的,该文件会被POST到API Server,然后被调度器分配到节点上。
  • 5.几乎总是通过更高级的部署对象来部署Pod。

Pod的使用

Pod生命周期

生命周期

在这里插入图片描述

Pod对象的生命周期

  • 1)用户通过kubectl或其他API客户端提交Pod Spec给API Server。
  • 2)API Server尝试着将Pod对象的相关信息存入etcd中,待写入操作执行完成,API Server即会返回确认信息至客户端。
  • 3)API Server开始反映etcd中的状态变化。
  • 4)所有的Kubernetes组件均使用“watch”机制来跟踪检查API Server上的相关的变动。
  • 5)kube-scheduler(调度器)通过其“watcher”觉察到API Server创建了新的Pod对象但尚未绑定至任何工作节点。
  • 6)kube-scheduler为Pod对象挑选一个工作节点并将结果信息更新至API Server。
  • 7)调度结果信息由API Server更新至etcd存储系统,而且API Server也开始反映此Pod对象的调度结果。
  • 8)Pod被调度到的目标工作节点上的kubelet尝试在当前节点上调用Docker启动容器,并将容器的结果状态回送至API Server。
  • 9)API Server将Pod状态信息存入etcd系统中。
  • 10)在etcd确认写入操作成功完成后,API Server将确认信息发送至相关的kubelet,事件将通过它被接受。

在这里插入图片描述

K8S资源

在这里插入图片描述

资源划分与管理

命名空间:将不同的业务区分开来,虚拟空间。
标签与注解:区分资源。

命名空间

在这里插入图片描述

NameSpace

标签与注解

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

Labels & Annotations

资源控制器

在这里插入图片描述

  • ReplicationController:用于确保每个Pod副本在任一时刻均能满足目标数量,换言之,它用于保证每个容器或容器组总是运行并且可访问;它是上一代的无状态Pod应用控制器,建议读者使用新型控制器Deployment和ReplicaSet来取代它。
  • ReplicaSet:新一代ReplicationController,它与ReplicationController的唯一不同之处仅在于支持的标签选择器不同,ReplicationController只支持等值选择器,而ReplicaSet还额外支持基于集合的选择器。
    Deployment:用于管理无状态的持久化应用,例如HTTP服务器;它用于为Pod和ReplicaSet提供声明式更新,是建构在ReplicaSet之上的更为高级的控制器。
  • StatefulSet:用于管理有状态的持久化应用,如database服务程序;其与Deployment的不同之处在于StatefulSet会为每个Pod创建一个独有的持久性标识符,并会确保各Pod之间的顺序性。
  • DaemonSet:用于确保每个节点都运行了某Pod的一个副本,新增的节点一样会被添加此类Pod;在节点移除时,此类Pod会被回收;DaemonSet常用于运行集群存储守护进程——如glusterd和ceph,还有日志收集进程——如fluentd和logstash,以及监控进程——如Prometheus的Node Exporter、collectd、Datadog agent和Ganglia的gmond等。
  • Job:用于管理运行完成后即可终止的应用,例如批处理作业任务;换句话讲,Job创建一个或多个Pod,并确保其符合目标数量,直到Pod正常结束而终止。

Kubernetes的核心对象

controller manager

DaemonSet

DaemonSet

ReplicaSet

ReplicaSet

Deployment

Deployment

StatefulSet

StatefulSet

CronJob & Job

CronJob & Job

网络与服务

在这里插入图片描述

Cluster IP: k8s集群内部访问
Node Port:外部应用访问k8s集群服务
Load Balancer:负载均衡

Service & Endpoint

k8s集群内的service通过DNS 服务器解析endpoint(pod)的地址

Service & Endpoint

Ingress

暴露k8s集群的Serivce

Ingress

存储

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

在这里插入图片描述

常见的存储卷介绍

emptyDir、hostPath、NFS、PVC、SC

Kubernetes支持的存储卷类型

本地存储卷

hostPath

网络存储卷

持久存储卷

pv & pvc

配置存储卷

认证与授权

在这里插入图片描述

可视化展示rbac权限

ServerAccount

ServerAccount

Role

Rolebinding

ClusterRole & ClusterRoleBinding

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值