wangyp

博客园 首页 联系 订阅 管理

第一章       k8s入门

k8s是什么

功能上:容器编排引擎的事实标准。《每天五分钟玩转kubernetes》

Kubernetes is a portable, extensible, open-source platform for managing containerized workloads and services, that facilitates both declarative configuration and automation. It has a large, rapidly growing ecosystem. Kubernetes services, support, and tools are widely available.《https://kubernetes.io/

架构上:它是一个全新的基于容器技术的分布式架构领先方案。《k8s权威指南》

一些概念:

几乎所有的资源对象都可以通过kubectl命令进行增删改查等操作并将其保存在etcd存储中进行永久化存储

 

集群中的角色:

Node:工作负载节点,kubelet:负责容器的创建 和Master的交互;kube-proxy:实现service的通信和负载均衡机制的组件;docker:docker引擎

Master:控制节点;高可用方案建议用3个节点;部署的进程:kube-api-server,集群控制入口;controller-manager,控制中心;Schedule 调度;当然还运行一个etcd

 

Service:Node IP/Cluster IP/Pod IP

Pod:pod包含一个叫pause的根容器,然后还有其他的业务容器;一来可以通过pause容器来查看整个容器组的状态;二来多个业务容器共享Pause容器的ip和其挂载的volume,简化了同一个容器间的通信问题和文件共享问题。

         Pod分类:静态pod和动态pod

Label:kv键值对,Label可以附加到各种资源对象上 实现多维度的资源分组管理功能 之后我们可以通过Label Selector查询和筛选拥有某些Label的资源对象。比如ReplicaSet、service都是通过Label Selector来筛选的

。版本标签:" release ”:” stable”,”release”:”canary”...

。环境标签:” env让onment”:” dev ”,吨nv 让onment”:’}

。架构标签:”tier ”:frontend”,”tier”:”backend”,”tier”:"middleware”

。分区标签:"partition”:”customerA”,”partition”:”customerB

Endpoint:Pod的IP+容器的端口 代表Pod中一个服务进程的对外通信地址

Pod中的Event:事件的记录;可以通过kubectl describe pod xxxx来查看描述信息,从而定位原因

RC/RS:replication controller /replica set。我们很少使用RS 主要被deployment这个高层次的资源对象使用 从而形成一套Pod的创建 删除 更新的编排机制。当我们使用deployment时候,无需关心他是如何创建rs的,这一切都是自动发生的。旧版本是rc,新版本是rs和deployment,来编排容器。

Rc、rs作用:实现pod的自动创建和副本数量的控制 rc里包括完整的pod定义模板 可以实现pod的扩容和缩容等功能 也可以实现pod的滚动更新

Deployment:和RC相比较  最重要的区别是可以随时知道Pod的创建进度

Pod的管理对象:RC/RS/deployment/ DaemonSet/StatefulSet/Job

HPA:Horizontal Pod Autoscaler

StatefulSet:

 

为什么要用k8s?

l  轻装上阵的开发系统,以前要多人协作一起开发。现在是架构师专注服务组件的提炼,开发工程师进行业务的研发,在加一个运维就可以了。

l  拥抱微服务架构。内嵌的负载均衡器

l  随时可以迁移到公有云。

l  强大的横向扩容能力

怎么使用k8s,举个栗子

posted on 2019-09-18 09:24  wangyp  阅读(487)  评论(0编辑  收藏  举报