k8s-1:组件说明

https协议

集群最好是>=3的基数

Pod

Pod是kubernetes中最小的调度单位,可以把他理解成在集群上运行的进程。

Pod里面可以运行单个容器或者运行多个需要协同工作的容器。

Pod运行在一个Worker Node中,这个Worker Node可以是物理机,也可以是虚拟机。

一个Worker Node中可能会有很多个Pod同时运行。

多个Pod可以协同工作。

在Pod中,有一个容器叫pause,这个是当前pod中所有容器的父容器,也叫基础容器。

pause启用PID的命名空间,pause的PID为1。

pause负责Pod中的容器的健康检查。

如果我们在Pod中部署两个容器,分别叫Container1和Container2。

那么Container1和Container2就会共享pause容器的网络栈,他们之间的通讯就会更快。

master:

        scheduler      

                Scheduler是一种调度器。

                Scheduler会收集每个Worker资源的详细信息及运行情况,包括CPU、内存等。

                Scheduler会收集每个Worker上运行什么服务。

                Scheduler有自己的算法,在调度前会进行分析,然后会安排Pod到具体的worker节点上

        api server  

                ApiServer提供HTTP/HTTPS RESTful API。

                所有服务访问的统一入口

                ApiServer是整个kubernetes集群的中枢神经,是整个集群增删改查的唯一入口。

                ApiServer串联了其他组件之间的数据交互。

                ApiServer提供集群管理的授权、访问控制、发现、认证等等功能。

                ApiServer是Etcd唯一的代理。

                ApiServer部署在master节点上。生产环境中master节点通常会做成高可用

        Controller Manager

                Controller Manager包括了很多的Controller,它可以对Pod进行副本管理。

                Controller Manager是处理kubernetes集群中常规任务的后台线程,它也是一个守护进程。

                Controller Manager通过ApiServer监视kubernetes集群的共享状态,确保整个集群处于预期的工作状态。

node

        Kubelet

                每个Worker Node上都有Kubelet,Kubelet就像是Node的客户端。

                Kubelet会监听和维护Pod的生命周期。

                当Master上的Scheduler确定了某个Node后,就会把Pod的配置信息发送给这个Node的kubelet,

                kubelet就会根据这些配置信息自动创建和运行容器

        kube-proxy

                kube-proxy就是一个代理,它可以转发Service的请求到Pod。

                kube-proxy可以实现一个内部Pod的负载均衡

        Container Runtime

                每个Worker Node上都有Container Runtime。

                Container Runtime负责下载image并运行容器,它提供一个容器运行环境

                Kubernetes的Container Runtime支持的容器有很多,最常见的就是Docker。

        etcd               

                Etcd是一个存储组件,就像是Kubernetes集群的数据库,他是一个可信赖的分布式键值对存储数据库,协助k8s的正常运转。

                有两个版本 v2和v3 v2存缓存,在v1.11中废除现在常用的的是v3

                Etcd会存储整个kubernetes集群状态。比如各个Node的信息和状态等。

                Etcd作为一个节点是相对独立的。

                只有ApiServer才能和Etcd进行通讯,Etcd会为ApiServer的操作记录持久化。

                Etcd不光可以存储,还可以监听。

                Etcd的键值发生变化会通知ApiServer,由ApiServer去通知客户端。

                因为Etcd的重要性,生产环境中Etcd最好部署多台,实现高可用。

常用组件插件

coredns:可以为集群中的svc创建一个域名ip的对应关系解析

dashboard:给k8s提供一个bs的结构的访问体系

ingress:官方只能实现四层代理,ingress可以实现七层代理

federation:提供一个可以跨集群中心多k8s统一管理的功能

prometheus:普罗米修斯,提供k8s集群的监控能力

ELK:日志统计分析接入

建议可以看k8s组件调用关系及其网络_强森森森森森的博客-CSDN博客这篇文章写得挺好的。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值