阿里云认证

一、云原生概论

1.1、云原始优势

  •        传统软件架构,用户不仅仅需要关注基础设施的能力及其运维,还需要采购及维护大量的第三方软件以及非功能性能力,降低软件开发效率,并且没有充分利用云计算IaaS与Paas的能力。
  •        从技术的角度,云原生架构是基于云原生技术的一组架构 原则和设计模式的集合,旨在将云应用中的非业务代码部分进行最大化的剥离,从而让云设施接管应用中原有的大量非功能特性(如弹性、韧性、安全、可观测性、灰度等),使业务不在有非功能性业务中断困扰的同时,具备轻量、敏捷、高度自动化的特点。

 1.2、容器技术带来的价值

  •        容器是轻量级的
  •        容器是易于移植的
  •        容器可以实现秒级部署
  •        容器是互相隔离的

 1.3 、容器编排带来的价值

  •       大规模容器自动化部署
  •       敏捷高效的资源调度
  •       强大的弹性伸缩能力
  •        容器服务自愈能力
  •       自动化的服务发现

 1.4 Docker容器

       是资源分割和调度的基本单位

       封装整个服务的运行时环境,用于构建、发布和运行分布式应用的一个框架

      是一个跨平台、可移植并且简单易用的容器解决方案

1.5、Docker镜像

      是一个Linux的文件系统

      包含运行的程序以及程序、库、资源、配置等数据

       类似一个只读压缩包

       用于创建容器

       分层构建、前一层是后一层的基础

        包含了一个精简的操作系统、应用运行所必须的文件和依赖包

         一次构建、到处运行

        构建:  docker   commit 生成镜像;  Dockerfile

1.6、容器

       容器是镜像运行的运行实体

        容器可以被创建、启动、停止、删除、暂停

         容器运行特定应用

         容器之间相互隔离

         容器是多层制度镜像之上运行的可写层

        容器停止删除,可写层数据丢失

         数据持久化:使用宿主存储、网络存储 

 1.7 Kubernetes核心功能

        服务发现与负载均衡

        容器自动装箱

        存储编排

         自动化容器恢复

         自动发布与回滚

         配置与密文管理

         批量执行

         水平伸缩

1.8 Pod

          最小的调度及资源单位

          由一个或者多个容器组成

         定义容器的运行方式

          提供给容器共享的运行环境

1.9 、 Deployment    

          是Kubernetes中部署应用最常见的一种方式

           做应用真正的管理

            Pod是组成Deployment最小的单元

           定义一组Pod的副本数目、版本等

            通过控制器维持Pod数目,自动恢复失败的Pod

            通过控制器以指定策略控制版本

   1.10、Service 

           通过创建Service,可以为一组具有相同功能的容器应用提供一个统一的入口地址

           将请求镜像负载分发到后端的各个容器应用上

           提供了一个或者多个Pod实例的稳定访问地址

            支持多种访问方式:

                      cluster 

                       NodePort

                       LoadBalance

1.11、 Namespace 

          用来做一个集群内部的逻辑隔离的,它包括鉴权、资源管理等;

          每个资源都属于一个Namespace  

           同一个Namespace中的资源名称唯一

            不同Namespace中资源名可重名

1.12、 Kubernetes核心架构

          Kubernetes系统用于管理分布式节点集群中的微服务或者容器化应用程序

          提供了零停机时间部署、自动回滚、缩放和容器自愈(其中包括自动配置、自动重启、自动复制的高弹性基础设施,以及容器的自动缩放等)等功能。              

 1.13 Master服务端

         kube-apiserver:集群的HTTP REST   API接口,是集群控制的入口

         kube-controller-manager: 家中所有资源对象自动化控制中心

         kube-scheduler:集群中Pod资源对象的调度服务

         Etcd: 一个分布式的存储系统

 

 1.14、Node客户端组件

        kubelet组件: 负责管理节点上容器的创建、删除、启停等任务,与Master节点进行通信;

        kube-proxy组件: 负责Kubernetes服务的通信及负载均衡服务;

        Container Runtime: 负责容器的基础管理服务,接收kubelet组件的指令。

1.15、Kubernetes典型使用流程

    

 二、阿里云云原生容器服务产品体系

              容器服务Kubernetes版(ACK)

              Serverless  Kubernetes (ASK)

              镜像服务(ACR) 

              服务网络(ASM)

              边缘容器服务(ACK@Edage)   

 2.1  容器服务Kubernetes版

     阿里云容器服务产品三种形态:

  •                   专有Kubernetes
  •                   托管版Kubernetes
  •                    Serverless  Kubernetes

 2.2  容器服务ACK产品核心功能

        集群形态:ACK/ACK Pro/ASK

        组件升级: 一键升级k8s版本

         弹性伸缩:支持垂直伸缩、水平伸缩等多种扩容模式

         多云管理: 支持多云、混合云集群管理

         安全授权:支持RAM授权和RBAC权限管理

 2.3、弹性伸缩

        弹性伸缩分为两个维度:

                 调度层弹性

                  资源层弹性

        调度层弹性组件包括:

                 容器水平伸缩(HPA)

                 容器垂直伸缩(VPA)           

                 容器定时伸缩(CronHPA)

                 负责均衡(Elastic-Workload)

 2.4、容器服务ACK应用场景

        弹性伸缩架构应用场景

        DevOps持续交付应用场景

        云原生AI应用场景

         微服务架构

          混合云架构

 2.5 、Deployment和Statefulset的区别

    

 2.6、有状态应用集的特点

  •        稳定且需要唯一的网络标识符
  •        稳定且持久的存储
  •        要求有序,平滑的部署和扩展
  •        要求有序,平滑的终止和删除
  •        有序的滚动和更新

 2.7 StatefulSet可能会创建的三种类型的资源

  •           ControllerRevision,通过这个资源,statefulSet可以很方便的管理不同版本的template模版; 
  •           PVC,StatefulSet会在创建Pod之前,先更具这个模版创建PVC,并把PVC加到Pod volume中
  •           Pod,StatefulSet按照顺序创建、删除、更新Pod,每个Pod有唯一的序号。

 三、容器网络

     Kubernetes为了更好的控制网络的接入,推出了CNI即容器网络的API接口。

      它是Kubernetes中标准的一个调用网络实现的接口;

      kubelet通过这个API来调用不同的网络插件以实现不同的网络配置,实现了这个接口的就是CNI插件,它实现了一系列的CNI API接口

       目前比较常见的Terway、Flannel、Calico、Weave等等。

       CNI是Kubernetes于底层网络插件之间的一个抽象层,为k8s屏蔽了底层网络实现的复杂度,同时解耦了k8s的具体网络插件实现

 

 3.1 、ACK容器网络的实现

        CNI是Container Network  Interface的缩写;

        他是一个通用的网络插件的Kubernetes网络接口;

        Kubernetes使用CNI接口调用网络插件;

        网络插件(CNI)能分配且唯一的IP地址;

        网络插件(CNI)可以配置Pod的网络和打通Pods之间的访问;

 3.2 网络规划

 规划注意事项

 3.3 Flannel网络

 3.4 Terway网络

 

 3.5 Flannel 和Terway网络的对比

 3.6 Service网络

    通过服务(Service)抽象,能够解耦前端和后端的关联,从而实现松耦合的微服务设计,以及自动负载均衡实现快速的业务弹性。

    ACK容器服务采用Service方式为一组容器提供固定的访问入口,并对这一组容器做负载均衡。

 

 3.7  Ingress

  在Kubernetes集群中,Ingress作为集群内服务对外暴露的访问接入点,其几乎承载这集群内服务访问的所有流量;

  Ingress是Kubernetes中的一个资源对象,用来管理集群外部访问集群内部服务的方式;

   通过Ingress资源来配置不同的转发规则,从而达到根据不同的规则设置访问集群内不同的Service后端Pod。

 四、存储

4.1、存储插件

 

 4.2、存储的选择

 

 

 五、日志

 容器服务ACK可光测性租金啊-SLS日志服务,SLS可以采集三种不同类型的日志

           APIServer等核心组件的日志

           Service Mesh/Ingress等接入层的日志

           应用的标准日志

  应用实时监控服务ARMA(Application Real-Time Monitoring Service)

  AHAS架构感知监控,通常在Kubernetes集群中负载的类型大部分为微服务;为Kubernetes应用安装AHAS探针后,AHAS能自动识别系统中的Pod,Deployment,Service和他们的与其他组织的依赖关系。       

 

 六、弹性伸缩

 6.1、调度层弹性组件

     调度层弹性组件都和Pod相关的,并不关心资源的情况;

 七、Serverless容器

   对于Serverless Kubernetes而言

               最重要的一个概念是将容器的运行时和具体的节点运行环境解耦;

               用户无需关注node运维和安全,降低运维成本;

                极大简化了容器弹性实现,无需按照容量规划,按需创建容器应用Pod即可;

                极大简化了容器弹性实现,无需按照容量规划,按需创建容器应用Pod即可;

                 此外,Serverless容器运行时可以被整个云弹性计算基础设施所支撑,保障整体弹性的成本和规模。

 

 7.1 ECI

              ECI是阿里云基于ECS IaaS资源池提供的稳定、高效、高弹性容器实例服务;

              ECI让容器称为了公有云的第一等公民,用户无需噶偶买和管理ecs就可以直接部署容器应用,这种简化的容器实例产品心态和ASK形成了一个完美的租户;

              弹性容器实例ECI(Elastic  Container  Instance) 是阿里云在云原生时代为用户提供的基础计算服务,是阿里云云原生时代下的云计算基础设施;

              ECI改变了遗忘计算服务以整台集群作为交付形态的传统,通过结合容器技术与无服务器(Serverless)技术为用户提供了一款安全便捷的Serverless运行服务;

              ECI为Kubernetes提供了基础的容器Pod运行环境,但业务间的依赖,负载均衡,弹性伸缩,定期调度等能力依然需要Kubernetes来提供。

 

 

 

 7.2、网络管理

         ASK集群中ECI Pod默认使用Host网络模式,占用交换机VSwitch的一个弹性网刊ENI资源,与VPC内的ECS、RDS互联互通;

7.3 存储管理

          Pod支持挂载阿里云块存储和文件存储

                      阿里云块存储(Disk)

                      阿里云文件存储(NAS)

7.4 日志管理

    ECI模式下不支持DeamonSet,通过将Job类任务挂载NAS盘,把输出的日志存储在NAS盘,在通过另一个同样挂载NAS盘的Pod来采集Job任务标准输出到日志系统中。

 7.5 网络管理

   阿里云Serverless Kubernetes服务,虚拟节点退出Pod挂载弹性公网IP功能,此功能能使某些Serverless容器应用的部署和服务访问变的更加简单和便利;

   无需创建VPC NAT网关即可让单个Pod访问网络;

    无需创建Service也可以让单个Pod暴露公网服务;

     可以更加灵活而且动态的绑定Pod和EIP;

 八、服务网格

      Service Mesh

      Istio

 8.1 阿里云服务网格 Alibaba  Cloud  Service Mesh(ASM)

      统一管理微服务应用流量、兼容Istio的托管式平台

     通过流量控制、网格观测以及服务间通信安全等功能,服务网格可以全方位建华服务治理;

     为运行在异构计算基础设施的服务提供统一的管理能力;

      

 

 https://help.aliyun.com/zh/eci/user-guide/create-a-preemptible-elastic-container-instance

 

1、Kubernetes集群初始的命名空间 : kube-system    default     kube-public

posted @ 2023-09-20 16:36  中仕  阅读(9)  评论(0编辑  收藏  举报