欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

k8s基础知识-备忘总结

程序员文章站 2022-06-30 20:48:32
...

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