0
点赞
收藏
分享

微信扫一扫

从‘孔乙己长衫’现象看社会不公

西红柿上校 2023-05-04 阅读 72

【云原生Kubernetes】01-Kubernetes简介

文章目录

前言

kubernets概述

为什么要使用Kubernetes?

让我们通过时间倒流来看看为什么 Kubernetes 如此有用。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sUnG1YBd-1682586922172)(D:\学习\学习笔记\图片\92.png)]

  • 传统部署时代
  • 虚拟化部署时代
  • 容器部署时代

Kubernetes能做什么?

Kubenets架构

架构图

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-T2N1rHh4-1682586922173)(D:\学习\学习笔记\图片\93.png)]

架构组件说明

Master节点

Node节点

Etcd节点

组件间的工作流程

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-87xo2je5-1682586922174)(D:\学习\学习笔记\图片\94.png)]

  • 如上图所示,注意除了api-server与etcd之间是双向箭头(互相访问),api-server与其他组件之间都是单向箭头(单向访问)
  • 通过上图可以清楚的了解到api-server在中间起到关键性的作用,各个组件都需要与api-server进行通信,而api-server并不会主动的许其他组件进行沟通(与etcd之间除外,会主动将接受的相关信息记录到etcd之中),都是其他组件主动向api-server发起请求。
  • 假如我们在kubernetes集群中运行一个nginx的容器,我们整个集群是怎么将容器运行起来的呢?
    • 用户通过连接api-server(cli命令或ui图形交互)向kubernetes集群下发指令,说我现在需要创建一个nginx的容器;
    • 这时候api-server接受到该指令之后,就会将该指令记录到etcd中;
    • 与此同时scheduler(调度器)和controller-manager(集群调度器)都在时刻监控着api-server,不间断的向api-server询问我现在有事情要做吗?
    • 此时api-server会告诉scheduler(资源调度器)现在需要在集群中启动一个nginx容器;scheduler就会通过计算将容器运行到那个node上,并将信息告诉给api-server;
    • api-server接受到scheduler返回来的信息之后就会将该信息存储到etcd中,并记录说将nginx容器运行在node2节点上;存储之后api server就处于休息状态,因为它不会主动的去连接其他组件,但是api-server想休息也没办法休息的很舒服,因为scheduler(调度器)和controller-manager(集群调度器)在不停的向api server询问我是否有事情需要去做,以及kubelet向其报告节点以及pod的信息以及健康状态。
    • 当controller-manager(集群调度器)询问api-server是否有事情做的时候,api-server就会说,现在有一个事情你快去将nginx容器运行到node2节点上去。当controller-manager(集群调度器)接受到该指令之后会很痛快的答应说好的,但是实际上并没真正的去做事情,而是一如既往的监控着api-server同时也一直询问该容器创建了吗?没创建抓紧创建啊。
    • 因为每个node节点中kubelet会每隔一定时间就会想api server反馈自己的健康状态以及其他相关的自身信息,并且询问我是否有新的任务去做。
    • 当node2节点连接api-server的时候就会告诉node2节点,要在你这里运行一个nginx的容器,内存呀,cpu是多少等等,这时候kubelet就会按照要求去创建。

Kubernetes的核心技术

Pod

副本控制器(Replication Controller,RC)

Deployment

Service

任务(Job)

后台支撑服务集(DaemonSet)

有状态服务集(StatefulSet)

集群联邦(Federation)

存储卷(Volume)

密钥对象(Secret)

EmptyDir

HostPath

ConfigMap

PersistentVolumeClaim

节点(Node)

用户账户(User Account)和服务账户(Service Account)

命名空间(Namespace)

RBAC访问授权


espace。例如,可以将不同的应用程序、不同的团队或不同的环境放置在不同的Namespace中,以便更好地管理它们。

RBAC访问授权


举报

相关推荐

0 条评论