Kubernetes由于单词太长,省略掉中间8个字母简称为K8S。它介于应用服务和服务器之间。能够通过策略协调和管理多个服务,只需要一个YAML文件配置。定义应用的部署顺序等信息,自动部署应用到各个服务器,还可以自动扩容缩容。
架构原理
划分服务器:控制平面、工作节点node
(老板,打工人)
控制平面
- 使用Api Server组件提供的接口直接控制服务器;
- 检查服务器资源有Scheduler调度器完成;
- Controller Manager开启和关闭服务;
- 产生的数据保存在存储层ETCD
node内部组件
node是实际的工作节点,既可以是裸机服务器也可以是虚拟机。部署服务我们只需要将代码打包为Container Image容器镜像,就能一行命令部署。
container runtime:容器运行时组件,
每个服务都为一个container,并且搭配一个日志收集器container和监控采集器container,这多个container共同组成一个一个pod。运行在node上,K8M可以将一个pod从一个节点转移到另外一个节点,所以说pod是K8S的最小调度单位。
Kublet是负责管理和监控pod运行
Kube proxy负责node的网络通信,可以转发外部请求
Cluster集群
控制平面和node共同组成了一个Cluster集群,在公司会有多个集群,测试环境集群和生产环境集群。Ingress使得外部可以访问内部
Kubectl
Kubectl是提供的命令行,调用api
服务创建:kubectl apply -f xx.yaml
网站访问服务