美文网首页k8s学习笔记K8S技术中台
k8s学习笔记(三)k8s常见术语解读

k8s学习笔记(三)k8s常见术语解读

作者: YongtaoHuang | 来源:发表于2021-08-16 09:35 被阅读0次

    Docker 容器的本质,“Namespace 做隔离,Cgroups 做限制,rootfs 做文件系统”

    K8S的每个术语都是对某种能力和某种设施的声明式描述。

    一、Pod

    • K8S的最小调度单元
    • 一个Node节点里可能有多个Pod,一个Pod里可能有多个docker。
    • 共享网络
    • 生命周期短暂

    Pod只是一个逻辑概念。Pod:是一个容器组。容器的本质是视图隔离,资源受限的进程。Pod也就是一个进程组。
    Pod中的容器之间,存在超亲密关系。
    Pod 里的所有容器,共享的是同一个 Network Namespace,并且可以声明共享同一个 Volume。
    Pod的5种状态:Pending。Running。Succeeded。Failed。Unknown。

    二、Controller

    控制器:在集群上管理和运行容器的对象,用来管理Pod的生命周期。

    • 确保预期的pod副本数量
    • 有/无状态应用部署
    • 确保所有的node运行在同一个pod
    • 一次性任务和定时任务
    Controller.png

    Kubernetes 项目的 pkg/controller 目录下有这些个文件:

    deployment
    job
    replicaset
    cronjob 
    statefulset
    daemon
    ...
    

    Pod和Controller之间的关系:

    • Pod通过Controller实现运维,如弹性伸缩,滚动升级等。
    • Pod和Controller通过label建立联系。
    2.1 Deployment:

    部署无状态应用

    • 认为Pod都一样
    • 无顺序要求
    • 不用考虑在哪个node运行
    • 随意进行伸缩和扩展

    一个应用有好几个pod,用于做冗余、高可用,这就叫做deployment。

    2.2 StatefulSet

    部署有状态应用

    • 每个pod独立,保持启动顺序和唯一性
    • 唯一的网络标识符,持久存储
    • 有序,比如mysql主从
    2.3 ReplicaSet

    副本

    2.4 DaemonSet

    部署守护进程
    如:部署一个日志采集守护进程,每一个worker node上安装数据采集工具。

    2.5 Job 与 CronJob

    一次任务(如计算)和定时任务

    三、Service和容器网络

    定义一组pod的访问规则,解决了Pod的IP动态变化后的服务发现问题。

    • Pod升级回滚后,ip地址会变动 Service的作用是防止pod失联(服务发现)。
    • 定义一组Pod的访问策略(负载均衡)。
    3.1 Serice

    Service三种类型

    • ClusterIP:集群内部使用,默认形式。
    • NodePort:对外访问应用
    • LoadBalancer:公有云,对外访问应用
    3.2 Ingress

    Ingress作为统一入口,由Service关联Pod。Ingress7层代理。

    四、PV和PVC

    Persistent Volume(PV)和 Persistent Volume Claim(PVC)是套持久化存储体系,用来持久化容器数据。

    五、Operator

    在 Kubernetes 生态中,有一个相对更加灵活和编程友好的管理“有状态应用”的解决方案,它就是:Operator。
    K8s内置的能力不会再去做更多的演进了,Operator实际上就是一个API对象加一个控制器。我们通过Operator给系统增加功能,也避免了K8S膨胀。
    Operator 的工作原理,实际上是利用了 Kubernetes 的自定义 API 资源(CRD),来描述我们想要部署的“有状态应用”;然后在自定义控制器里,根据自定义 API 对象的变化,来完成具体的部署和运维工作。

    六、其它应用

    6.1 Helm

    Helm是kubernetes的包管理工具,类似linux的apt和yum。

    6.2 Istio

    Istio (希腊语:扬帆起航)项目使用 sidecar 容器完成微服务治理的。一种Sevice Mesh解决方案。
    Istio默认使用的数据平面:envoy,envoy是CNCF第3个毕业生。。


    Istio.png

    2020.3月,1.5版本,最终架构。


    蚂蚁金服.png FreeWheel.png
    6.3 Prometheus

    CNCF第二个毕业生。监控、报警、数据库。以http协议周期性抓取键监控组件状态。

    7. 云原生

    CNCF云原生定义:(1)服务容器化;(2)微服务;(3)容器编排(K8S)。
    云原生三驾马车:Serverless(无服务,只关心本身功能),Service Mesh(服务之间的网络联系);K8S(服务的编排)。

    相关文章

      网友评论

        本文标题:k8s学习笔记(三)k8s常见术语解读

        本文链接:https://www.haomeiwen.com/subject/ozhubltx.html