一、kubernetes
1. 基础知识
1.1 硬件
1.1.1 节点(Node)
节点是kubernetes中最小的计算硬件单元。是集群中单个机器的表示。
可以对节点进行抽象的理解,即简单的将每台机器看作一组可以使用的CPU和RAM资源。
这样,任何机器都可以替代Kubernetes集群中的任何其他机器。
1.1.2 集群
集群就是多个节点组成的整体,一般来说,将集群看做一个整体,而无须担心单个节点的状态。
在Kubernetes中,节点汇聚资源,形成更强大的机器。当你将程序部署到集群中时,它将智能地处理将工作分配给你的各个节点。如果添加或删除了任何节点,集群将根据需要在工作中进行转换。
1.1.3 持久卷
持久卷可以看作是将外部硬盘插入集群之中。持久卷提供了可以挂载到集群的文件系统,而不与任何特定节点相关联。
因为在集群上运行的程序不能保证在特定的节点上运行,所以无法将数据保存到文件系统中的任意位置。如果一个程序试图将数据保存到一个文件中,但随后又被转移到一个新的节点上,那么该文件将不再是程序期望的位置。由于这个原因,与每个节点相关的传统本地存储被当作临时缓存来保存程序,但本地保存的任何数据都不能持久。
1.2 软件
1.2.1 容器(Container)
一个或多个应用程序被打包成容器。
可以将多个程序添加到单个容器中,但是如果可能的话,你应该将自己限制为每个容器的一个进程。拥有很多小容器比一个大容器好。如果每个容器都有一个紧密的焦点,那么更新更容易部署,并且问题更容易诊断。
1.2.2 Pod
k8s并不直接运行容器,而是将一个或者多个容器封装到Pod当中。
Pod被用作k8s的复制单元。在必要时通过复制新副本部署到集群各个节点的方式来实现负载均衡。
1.2.3 部署(Deployment)
虽然Pod是k8s的基本计算但愿,但他们也通常不是在集群上启动的。
相反,Pod通常又一个抽象层来管理:部署。
部署的主要目的是声明一个Pod应该同时运行多少个副本,并实现自动化管理。
1.2.4 入口(Ingress)
入口是外部世界与Pod中的服务的通信通道。
2. 学习k8s的基础知识
2.1 创建集群
2.1.1 使用Minikube创建集群
一个 Kubernetes 集群包含两种类型的资源:
- Master 调度整个集群
- Nodes 负责运行应用
集群图
Master 负责管理整个集群。 Master 协调集群中的所有活动,例如调度应用、维护应用的所需状态、应用扩容以及推出新的更新。
Node 是一个虚拟机或者物理机,它在 Kubernetes 集群中充当工作机器的角色。每个Node都有 Kubelet , 它管理 Node 而且是 Node 与 Master 通信的代理。
Master 管理集群,Node 用于托管正在运行的应用。
2.2 部署应用
2.2.1 使用kubectl创建Deployment
K8s部署
创建k8s集群之后,就可以创建 Kubernetes Deployment。
Deployment 负责创建和更新应用程序的实例
2.2.1 部署你在 Kubernetes 上的第一个应用程序
应用程序需要打包成一种受支持的容器格式,以便部署在 Kubernetes 上
待更新。。。。。