Kubernetes(k8s)总结

k8s架构及核心概念

k8s是一种开源的容器集群管理系统,具有自动化容器部署、管理、扩展和联网等容器编排技术。
k8s(Cluster)一般包含一个master,多个Node节点,master节点主要用于集群控制调度,不运行容器。在生产环境中,为了集群的高可用,通常也会部署多个master节点。
在node节点上运行容器,由master节点管理。最小工作单元是Pod,pod包含一个或多个容器。

master节点:

  • apisever:对外暴露API,前端控制层
  • etcd:后端存储,存储集群数据、配置(可单独部署)
  • controller:控制器
  • scheduler:任务调度,根据任务策略将Pod调度到合适的Node节点

node节点:

  • kubelet:接受master指令,管理Pod
  • kube-proxy:多个Pod/service负载均衡
  • add-ons:插件扩展功能
  • container runtime:启动和运行容器

k8s应用编排与管理(Controller)

Kubectl是管理k8s的命令行工具,可以展现为命令式、申明式(通过.yaml)

k8s应用编排-工作负载类型:

  • 无状态工作负载(Deployment):管理Pod是互相等价的,提供弹性伸缩、滚动/升级能力,通过ReplicaSet参数控制数量
  • 有状态工作负载(StatefulSet):每个Pod有唯一ID,不可替代(场景:分布式数据库)
  • 守护进程工作负载(DaemonSet):每个节点都运行着一个守护进程(场景:日志、监测)
  • 批处理工作负载(Job、CronJob):一次性,定时任务,AI计算

k8s服务发布(Service)

通过service负载均衡管理,保证Pod在变化时,业务能够被访问到。

k8s支持的service类型:

  • ClusterIP:在集群内部提供虚拟IP供Pod访问(默认模式),通过selector关联deployment
  • NodePort:在node上打开一个端口供外部访问
  • LoadBalancer:通过外部负载均衡器来访问

k8s存储管理(Volume)

emptyDir存储、hostPath存储卷、configMap、Secret
PV、PVC绑定类似docker数据卷

你可能感兴趣的:(kubernetes,云原生,容器)