1. run container in container engine-在容器引擎中运行容器2. Schedule containers effcient-高效的调度容器3. Keep containers alive and health- 保持容器的存活和健康4. Allow container communication- 允许容器的通信5. Allow common deployment techniques-允许通用的部署技术6. handle volumes-处理卷2. kubernetes Architecture2.1 Contarol Plance
Contarol Plance-控制平面,简单的不知道我理解的对不对为master节点上面的etcd scheduler apiserver controler manager 。至于cloud control manager我理解是使用云商托管的kubernets 比如腾讯云的 cke还有阿里云的ack 都有类似的kubernets的托管服务。
见: https://kubernetes.io/docs/concepts/overview/components/#control-plane-components
1. kube-apiserver apiserver控制平面暴露kubernets的api服务,API服务器是Kubernetes控制平面的前端。 水平扩展 平衡实例之间流量
2. etcd etcd数据库Consistent and highly-available key value store used as Kubernetes’ backing store for all cluster data 高度一直的kv键值数据库。用作kubernetes的备份与数据存储。
3. kube-scheduler 调度器监视没有分配节点的新创建的Pod,并选择一个节点以使其运行。调度策略有很多种,官网现学现卖:
1. individual and collective resource requirements 个体和集体的资源需求 2. hardware/software/policy constraints 硬件/软件/策略约束 3. affinity and anti-affinity specifications 亲和性和反亲和力规范 4. data locality 数据本地性 5. inter-workload interference 工作负载之间的干扰 6. deadlines 生存周期4. kube-controller-manager
Control Plane component that runs controller processes. 控制平面运行控制的进程
- 节点控制器:负责在节点出现故障时进行通知和响应。
- 复制控制器:负责为系统中的每个复制控制器对象维护正确数量的Pod。
- 端点控制器:填充“端点”对象(即,加入“服务和窗格”)。
- 服务帐户和令牌控制器:为新的名称空间创建默认帐户和API访问令牌
云控制器暂时忽略吧,一般的还接触不到的2.2. Data Plane
Data Plane-----数据平面 。一般理解为work节点 工作节点?主要有kubelet 和kube-proxy服务
1. kubelet在集群中每个节点上运行的代理。 确保容器在Pod中运行。维护节点上的网络规则.如果有kube-proxy可用,它将使用操作系统数据包过滤层。 否则,kube-proxy会转发流量本身
2. kube-proxykube
容器运行时是负责运行容器的程序。
Kubernetes支持多种容器运行时:Docker,Containerd,CRI-O以及Kubernetes CRI(容器运行时接口)的任何实现形式。
注: 插件的命名空间资源属于kube-system命名空间
1. dns 域名解析服务2. Dashboard webui 仪表盘3. Container Resource Monitoring 容器资源的监控4. Cluster-level Logging 集群级别的日志4. 关于pod之间的通信
注: 默认是全部可以通信的,当然了 可以通过networkpolicy等方式进行隔离
注: 关于ca学习的不是太透彻,有时间单独的好好学习一下
1. CA is the trusted root of all certificates inside the cluster CA是群集内所有证书的受信任根2. All cluster ertificates are signed by the CA 所有集群的证书都由CA签名3. .Used by components to validate each other 组件用来相互验证
关于Scheduler->Api 和controller-manage->Api 和 kubelet->Api 还有 kubelet server cert