-
pod: 计算运行最小单位
-
control: 控制pod的工具
为什么要用k8s
自动化部署,扩缩,管理
1. 故障迁移: 节点关机或者宕机后,node服务转移到另一个node节点.

- 负载均衡
滚动升级和回滚
- kubectl set image deployment my-tomcat tomcat=tomcat:8.0.41-jre8-alpine
执行升级命令后,可以看到有些pod在销毁,有些在创建.

- depolyment 创建一个deployment来管理创建的容器.(管理)
重要的概念
弹性伸缩,滚动更新,配置管理,存储卷,网关路由等.
ingress&&service

拿微服务比例: ingress类似nginx,service类似LoadBalance.
Service 主要负责 K8S 集群内部的网络拓扑。集群外部需要用 Ingress 。
比如配置一个ingress-controller脚本,将请求转发给某个域名.
- 存储卷将外部数据挂在到容器中。 实现了分离。 这样容器崩溃了,数据还在.
-
关于问题排查:
常见的有 kubectl logs exec describe -
关于k8s性能提升:
用container减少了调用链长度,提高了性能,占用资源变少了。
如果你使用Docker作为K8S容器运行时的话,kubelet需要先要通过dockershim去调用Docker,再通过Docker去调用containerd。
如果你使用containerd作为K8S容器运行时的话,由于containerd内置了CRI插件,kubelet可以直接调用containerd。
使用containerd不仅性能提高了(调用链变短了),而且资源占用也会变小(Docker不是一个纯粹的容器运行时,具有大量其他功能)。
当然,未来Docker有可能自己直接实现K8S的CRI接口来兼容K8S的底层使用。
网友评论