k8s基础概念介绍

2018/12/04

k8s组件介绍 从开发者角度来理解kubernetes,了解数据模型,常用组件,为二次开发做好基础准备。

1 部署架构

1.1 部署单元组件

## master节点

官方介绍

### kubeapi-server

server-api接口服务

### etcd

分布式k-v存储

### kube-scheduler

待办pod任务创建、跟踪

### kube-controller-manager

node controller 监控node状态 rc 运行时deployment等监控 endpoint(service,pod)等服务监控 RBAC等资源管理

## node节点 ### kubelet

### kube-proxy

 负责节点deployment创建,调度

### container-runtime 典型如docker镜像

2 基础概念模型

namespace

逻辑上的资源分组概念,可以基于namespace设置ResourceQuota: CPU,内存总额大小,pod,deployments数量限制

cluster

master

k8s集群调度的大脑核心,可以基于集群方式保证高可用。

Node

官方文档(https://kubernetes.io/docs/concepts/architecture/nodes/#node-status) k8s管理的物理机或虚拟机,node的创建管理,不受k8s控制,k8s只是通过health check方式确认节点是否可用 节点通过label,annotations方式和k8s集群建立关联关系。

Pod

k8s管理的最小调度单元,一般情况下一个node会创建一个pod. 一个pod里面可以启动多个紧密关联的deployment pod网络相关参考这个链接

service

controllers

Deployment

Deployment 是最常用的 Controller,最常用的就是通过创建 Deployment 来部署stateless应用。
Deployment 可以管理 Pod 的多个副本,并确保 Pod 按照期望的状态运行。

ReplicaSet

实现了 Pod 的多副本管理。使用 Deployment 时会自动创建 ReplicaSet,也就是说 Deployment 是通过 ReplicaSet 来管理 Pod 的多个副本,我们通常不需要直接使用 ReplicaSet。

DaemonSet

用于每个 Node 最多只运行一个 Pod 副本的场景。正如其名称所揭示的,DaemonSet 通常用于运行 daemon。

StatefulSet

能够保证 Pod 的每个副本在整个生命周期中名称是不变的。而其他 Controller 不提供这个功能,当某个 Pod 发生故障需要删除并重新启动时,Pod 的名称会发生变化。 同时 StatefulSet 会保证副本按照固定的顺序启动、更新或者删除。

ConfigMap

DaemonSet


扫码关注有惊喜

(转载本站文章请注明作者和出处 LuckyBoy