11 未来探究

掌握Kubernetes

k8s的对照和资源分为3个API轨道,alpha、beta、stable,用于表示成熟度

Job和CronJob

高级Pod控制器,允许运行最终将终止的容器

Job确保一定数量的Pod成功完成,CronJob确保在给定时间调用Job,如需运行批处理工作负载或计划任务,内置控制器可以发挥作用

Pod和节点之间的亲和性与反亲和性

可以使用节点选择器手动将Pod分配给某些节点

节点可以拒绝具有容忍(Taint)的Pod

当遇到更灵活的情况,如将Pod放一起、Pod可在可用作区域内平均分配,通过节点选择器或节点选择Pod会更好,亲和性(或反亲和性)可解决

Pod的自动伸缩

自动扩展运行应用程序的实例组

Pod水平伸缩器(PodHorizontalScaler)能在诸如部署(Deployment)之类的控制器中扩展具有CPU/内存指标的Pod副本,k8s 1.6始,伸缩器支持基于自定义指标的缩放,如每秒事务数

防止和缓解Pod中断

Pod是不稳定的,随着集群的大小会被终止并在节点间重新启动

如一个程序有太多的pod同时被中断,可能导致服务水平降低,甚至导致应用程序启动失败

应用程序是有状态或基于仲裁的,无法容忍Pod的中断

为减少干扰,利用PodDisruptionBudget通知k8s,在应用程序允许的时间内,有多少不可用Pod,以便k8s采取适当行动

PodDisruptionBudget是一个托管对象,但可能有k8s以外的因素导致中断,如硬件故障、内存不足,可将如节点问题探测器类工具整合到监控栈中,适当配置节点资源上的阈值,以通知k8s,该节点开始耗尽节点或驱逐过多的Pod

Kubernetes集群联邦(federation)

集群联邦是集群的集群,多个集群组成,可从单个控制平面访问

集群联调上创建的资源将在所有连接的集群中同步

k8s 1.7始,联合的资源包括:命名空间namespace、ConfigMap、秘钥Secret、部署Deployment、DaemonSet、服务Service、Ingress

集群联邦构建混合平台的能力为软件构建提供灵活性

集群附加组件

为增加Kubernetes集群而设计或配置的程序,是k8s的固有部分

集群附加组件可能在某些关键功能中使用,某些托管的k8s服务(如GKE)会部署附加组件管理器,以保护附加组件的状态不被修改或删除

Kubernetes和社区

起源于Google,由云原生计算基金会CNCF管理,CNCF下所有项目都基于容器的

Kubernetes孵化器

如Heapster、cAdvisor、dashboard、minikube、kops、kube-statemetrics、kube-problem-detector

Helm和chart

helm是包管理器(管理集群中的软件包)、helm中的包称为chart

char是运行应用程序的配置、定义和清单的集和

helm还建立为共享软件包的标准,运行直接安全流行软件如wordpress

未来基础设施

Docker Swarm

集成在Docker引擎中的Docker编排工具,它与Docker本身共享相同的API和用户界面,包括使用Docker Compose文件,Swarm简单易用,但缺乏灵活性

Swarm集群有manager和worker组成,manager是维护集群状态的共识组的一部分,同时保持高可用性

Swarm集群模式附带的功能:容器生命周期管理、两种调度策略(复制和全局,类似k8s中Deployment和DaemonSet)、服务发现、秘钥管理等;Ingress网络(类似k8s中NodePort服务,但需要L7负载均衡,需引入nginx或Traefik)

Amzon Elastic Container Service

集群管理器,好处由AWS管理,不过多关注管理

通过AWS控制台或API创建ECS集群

Apache Mesos

解决资源管理方面的困难,包括通用硬件,支持各种工作负载

双层架构来划分、分配资源和执行任务

你可能感兴趣的:(11 未来探究)