本文内容
前提关联知识k8s 是什么怎么使用 k8s 部署一个 hello world 的Docker
Kubernetes 相关知识
分布式系统基础
因为 k8s 的各个部分从原生设计上就是分布式,杂合了很多分布式系统的知识 linux 系统基础
K8s部署和操作都推荐 使用 linux操作 Docker 基础 (重点)
K8s 本质上是一个Docker管家,为应对大量docker容器的管理而生 学习精神
阅读英文文档,才能得到完整的、最新的文档因环境不同,部署常常造成许多问题,保持一个进取和冷静的心才能快速解决问题
K8s 是什么
K8s 是 Kubernetes的缩写,因为 ubernete 是8个字母,因而被称为 K8sK8s 是 Google 公司的一个内部系统(Borg)开源而来,近来在各种管理 Docker 的软件中脱颖而出,占据多数份额K8s 类似于一个软件系统,它的目的是 灵活高效的管理 Docker容器,K8s 不仅可以管理Docker容器,还可以管理其他 虚拟化容器
直接使用Docker 部署服务带来的问题
随着部署在 Docker容器中的 服务越来越来多,手动启动或暂停多个Docker 容器的效率过于低下如何监控所有Docker 容器的状态,或者当Docker 容器所需要的资源已经不需要满足时,动态灵活地扩充或缩减资源Docker 搭建集群后,如何对所有Docker容器 进行负载均衡
面对这些问题,K8s 如何解决
K8s 首先面对的问题,就是对多个容器进行控制,Docker 服务除了使用命令行执行,也可以使用API 进行控制K8s 自带一个网页,也就是可以通过网页点击管理容器,K8s 接管所有Docker 服务,暴露出 命令和API有了 K8s ,可以不直接操作 Docker 也能完成服务部署,这就是 k8s 的核心功能
K8s 管理硬件资源和状态监控
K8s 引入插件 Prometheus 进行可视化监控,也可以使用 dashboard 进行查看状态K8s 引入一个 Pods 的概念,Pod 相当于一个独立的资源,以前docker 是一个独立的资源,现在 Pod 是 K8s 中的最小管理单元
Pod中通常只放一个容器,也可以放多个容器,此时这几个容器应该是关联性非常强的Pod拥有独立的CPU、内存、网络、存储资源查看官网对Pod的介绍K8s 通过对 pod 进行操作,就可以对Docker容器进行控制了在用户层面使用特定格式的 yaml 文件进行声明,K8s 会按照文件内容部署Pod 以前我们部署 Docker 在一台机器上,K8s 引入一个 nodes 的概念,这台部署Docker 服务的机器就是一个 node, K8s 会把pod 部署在 node上,如下图
右下角中 nodes 就是一台台服务器,也就是说,K8s 的管理不仅是多个docker容器,还是多个服务器上的多个docker容器 总结
concept意思关联备注
podK8s 管理的最小单元容器部署在pod中pod 可容纳一个或多个有紧密联系的容器nodeK8s 中的部署服务器pod部署在node中node 可部署多个 pod
K8s 的大脑 K8s 控制层
K8s 抢救容器
K8s