Kubernetes知识点总结

what

Kubernetes是一个全新的基于容器技术的分布式架构领先方案(源于Brog,是google十几年经验的结晶);

Kubernetes是一个开放的开发平台(无侵入性,现有系统很容器迁移到Kubernetes上);

Kubernetes是一个完备的分布式系统支撑平台(完善的集群管理能力)。

why

使用Kubernetes最直接的感受就是我们可以轻装上阵的开发复杂的系统了;

其次Kubernetes是在全面拥抱微服务架构(微服务的核心就是将一个巨大的单体应用拆分成很多小的互相连接的微服务,一个微服务后面可能是多个实例副本在支撑,副本数量可以随着系统负荷的变化而动态调整);

最后Kubernetes系统架构具备超强的横向扩展能力。

Kubernetes中的基本概念及术语

Master

Master是集群控制节点,运行着kube-apiserver、kube-controller-manager、kube-scheduler、etcd等进程;

Node

集群中除Master节点外的其他节点。

kubectl get nodes;kubectl describe node nodename

Pod

Pod中运行着一组容器,包括一个‘根容器’Pause(1.pause的状态代表整体业务容器的状态,2、业务容器共享pause的IP和volume等)和很多业务容器。一个Pod里的容器与其他主机上的Pod可以直接通信。

Label

一个label就是一个key=value的键值对,Label Selector(标签选择器)通过这个方式实现类似SQL的简单通用的对象查找机制。版本标签、环境标签、架构标签、分区标签、质量控管标签等。

Replication Controller (RC)

RC定义了一个期望场景,即申明某种Pod的副本数量在任意时刻都符合某个预期值。(1、Pod的期望数量;2、用于筛选目标Pod的Label Selector;3、用于创建的Pod模板)。kubectl scale rc rcname --replicas=2。(注意:删除RC不会影响已经创建的Pod)

Deployment

deployment与rc很相似,deployment可以实时知道创建的变化过程。

Horizontal Pod Autoscaler (HPA)

Pod横向自动扩容。通过追踪分析RC控制的所有目标Pod的负载变化情况,来确定是否需要针对性的调整目标Pod的副本数。(指标:1、CPUUtilizationPercentage,2、应用自定义指标,tps qps等)

Service(服务)

每个service就是我们经常提起的微服务架构里的一个‘微服务’。

NodeIP:Node节点的IP,实际存在的IP;

PodIP:Pod的IP,是docker engine根据docker0网桥的IP段进行分配的,通常是一个虚拟的二层网络;

ClusterIP:service的IP,是一个虚拟的IP,‘伪造的’IP。

Volume(存储卷)

Volume与Pod的生命周期相同,但与容器的生命周期不相关。

emptyDir、hostPath、gcePersistentDisk、awsElasticBlockStore、NFS等

Persistent Volume(PV PVC)

PV可以理解成Kubernetes集群中的某个网络存储中对应的一块存储(1、pv只能是网络存储,不属于任何Node,但可以在每个Node上访问;2、pv并不是定义在Pod上的,而是独立于Pod之外定义的;3、pv支持的类型:GCE Persistent Disks、NFS、RBD、iSCSCI、AWS ElasticBlockStore、GlasterFs等)。pv有状态(available-空闲、bound-已经绑定到某个pvc上、released-对应pvc已经删除,但资源还没有回收、failed-pv自动回收失败)

Namespace(命名空间)

用于资源隔离,分别管理。

Annotation(注解)

记录一些额外信息,如build信息、release信息、日志库、团队联系信息等。






猜你喜欢

转载自blog.csdn.net/u010313909/article/details/80171123