Kubernetes,简称K8S(K-8个字母-S)
Kubernetes系统架构
Kubernetes概念
- 什么是k8s:
- 一组服务器集群
- k8s管理的是集群节点上的容器
- k8s功能:
- 自我修复:当某个服务器或容器出现故障无法运行时,自动的再其他节点上创建新的容器
- 弹性伸缩:实时根据服务器的并发情况,增加或缩减容器数量
- 自动部署:利用yaml文件实现自动部署
- 回滚:出现故障时,很方便的回滚到上一个版本
- 服务发现和负载均衡:自动就实现了负载均衡
- 机密和配置共享管理:
- 存储编排:
- 批处理:
- k8s集群分为两类节点
- master node:主节点
- worker node:工作节点
- master 节点上的组件
apiserver
:接收客户端操作k8s的指令schduler
:从多个worker node中选取一个来启动服务controller manager
:向worker node的kubelet发送指令的
- node节点上的组件
kubelet
:向docekr发送指令,管理docker容器kubeproxy
:管理docker容器的网络
etcd
数据库- k8s的数据库
- 用来注册节点、服务、记录账户…
- 可更换其他数据库(MySQL),需要额外配置
Kuberbnetes 核心概念
Pod
(容器组)- 最小部署单元
- 一组容器的组合
- 一个pod中可以有一个或多个容器
- pod又称为容器组
- 一个pod中的容器共享网络命名空间
- pod是短暂的
Controllers
(控制器):控制pod,启动、停止、删除、、、- ReplicaSet:确保预期的pod副本数量
- Deployment:无状态应用部署
- StatefulSet:有状态应用部署
- DaemonSet:确保所有Node运行同一个pod
- Job:一次性任务
- Cronjob:定时任务
service
(服务)- 将一组pod关联起来,提供一个统一的入口
- 即使pod地址发生改变,这个同意入口也不会变化,可以保证用户访问不受影响
- 防止pod失联
- 定义一组pod的访问策略
Label
(标签)- 一组pod有一个统一的标签
- service是通过标签和一组pod进行关联的
Namespace
(名称空间)- 用来隔离pod的运行环境(默认情况下,pod是可以互相访问的)
- 使用场景
- 为不同的公司提供隔离的pod运行环境
- 为开发环境、测试环境、生产环境分别准备不同的名称空间,进行业务隔离
K8S中启动一个容器的步骤
不是直接一条命令就结束的!
- apiserver
- kubelet
- master
- worker
- pod
- docker
评论区