一.:简介 & 原理 & 核心(340~341)
1:简介:
1)Kubernetes:简称 K8s。是用于自动部署、拓展、管理容器化应用程序的开源系统。
分布式编排系统,用于管理分布式集群的。
-1:中文官网:https://kubernetes.io/zh/
-2:中文社区:https://www.kubernetes.org.cn/
-3:官方文档:https://kubernetes.io/zh/docs/home/
2)功能:
2:架构:
1)整体主从方式:(一台 Master 节点,其它 Node 节点)
2)Master 节点架构:
-1:kube-apiserver:
a:它是 Kubernetes 控制面的前端。对外暴露 K8s 的 api 端口,是外界进行资源操作的唯一入口。
b:提供 认证、授权、访问控制、API 注册、发现 等机制。
c:API 服务器是 Kubernetes 控制面的组件, 该组件公开了 Kubernetes API。API 服务器是 Kubernetes 控制面的前端。
d:Kubernetes API 服务器的主要实现是 kube-apiserver。 kube-apiserver 设计上考虑了水平伸缩,也就是说,它可通过部署多个实例进行伸缩。
e: 你可以运行 kube-apiserver 的多个实例,并在这些实例之间平衡流量。
-2:etcd:
a:etcd 是兼具一致性 和 高可用性的键值数据库,可作为保存 Kubernetes 所有集群数据的后台数据库。
b:Kubernetes 集群的 etcd 数据库,通常需要有个备份计划。
-3:kube-scheduler:
a:控制平面组件,负责监视新创建的、未指定运行节点(node)的 Pods,选择节点让 Pod 在上面运行。
b:所有 K8s 的集群操作,都必须经过主节点进行调度。
c:调度决策考虑的因素包括单个 Pod 和 Pod 集合的资源需求、硬件/软件/策略约束、亲和性和反亲和性规范、数据位置、工作负载间的干扰和最后时限。
-4:kube-controller-manager:
a:在主节点上,运行的控制器的组件。
b:从逻辑上讲,每个控制器都是一个单独的进程, 但是为了降低复杂性,它们都被编译到同一个可执行文件,并在一个进程中运行。
c:这些控制器包括:
3)Node 节点架构:
-1:kubelet:
a:一个在集群中,每个节点上运行的代理。它保证容器都运行在 Pod 中。(帮节点来干活的 )
b:负责维护容器的生命周期,同时也负责 Volume(CSI)和网络(CNI)的管理
-2:kube-proxy :
a:负责为:Service 提供 cluster 内部的服务发现和负载均衡。
b:kube-proxy 是集群中每个节点上运行的网络代理, 实现 Kubernetes 服务(Service) 概念的一部分。
-3:容器运行时(Container Runtime):
a:容器运行环境是负责运行容器的软件。
b:Kubernetes 支持多个容器运行环境: Docker、 containerd、CRI-O 以及任何实现 Kubernetes CRI (容器运行环境接口)。
-4:fiuentd:
a:是一个守护进程,它有助于提供集群层面日志。
3:概念:
1)Container:容器,可以是 docker 启动的一个容器。
2)Pod:
-1:K8s 使用 Pod,来组织一组容器。
-2:一个 Pod 中,所有容器共享同一网络。
-3:Pod 是 K8s 中,最小的部署单元。
3)Volume:
-1:声明在 Pod 容器中,可访问的文件目录。
-2:可以被挂载 Pod 中一个或多个容器,指定路径下。
-3:支持多种后端存储抽象。(本地存储、分布式存储、云存储)
4)Controller:更高层次对象,部署和管理 Pod。
-1:ReplicaSet:确保预期的 Pod 副本数量。
-2:Deplotment:无状态应用部署。
-3:StatefulSet:有状态应用部署。
-4:DaemonSet:确保 所有 Node,都运行一个指定 Pod。
-5:Job:一次性任务
-6:Cronjob:定时任务
5)Depliyment:
-1:定义一组 Pod 的副本数目、版本等。
-2:多个 Pod 可以组成一个 Service。
-3:通过控制器(Controller),维持 Pod数目(自动恢复失败的 Pod)
-4:通过控制器,以指定的策略控制版本(滚动升级、回滚等)
6)Service:(多个 Pod 组成)
-1:定义一组 Pod 的访问策略。
-2:Pod 的负载均衡,提供一个或多个 Pod 的稳定访问地址。
-3:支持多种方式(ClusterIP、NodePort、LoadBalance)
7)Lable:标签,用于对象资源的查询、筛选。
8)NameSpace:命名空间,逻辑隔离。
-1:一个集群内部的逻辑隔离机制。(权鉴、资源)
-2:每个资源,都属于一个 namespace。
-3:同一个 namespace 所有资源名,不可重复。
-4:不同 namespace 可以资源名重复。
9)API:
-1:我们可以通过 kubernetes 的 API,来操作整个集群。
-2:可以通过 kubectl、ui、curl,最终发送 【http + json / yaml】 方式的请求给 API Server,然后控制 K8s 集群。
-3:K8s 里的所有资源对象,都可以采用 yaml 或 json ,格式的文件定义或描述。
4:快速体验:
5:流程叙述:
二.:K8s 集群安装(342~)
见:https://blog.youkuaiyun.com/qq_43056248/article/details/123438677
三.:Docker 深入(~347)
四.:K8s 细节(348~)
1:Kubelet:
1)Kubelet 文档:
https://kubernetes.io/zh/docs/reference/kubectl/overview/
2)资源类型:
3)格式化输出:
4)常用操作:
-1:
-2:
-3:
-4:
-5:
5)命令参考:
-1:
-2:
-3:
-4:
-5:
2:yml 语法:
1)yml 模版:
2)yaml 字段解析:f
3:入门操作:
1)Pod 是什么:
-1:
-2:
-3:
-4:
-5:
2)Deployment :
-1:
-2:
-3:
-4:
-5:
3)Service 的意义:
-1:
-2:
-3:
-4:
-5:
4)lables and sel:
-1:
-2:
-3:
-4:
-5:
5):
-1:
-2:
-3:
-4:
-5:
4:常用操作:
1):
-1:
-2:
-3:
-4:
-5:
2):
-1:
-2:
-3:
-4:
-5:
3):
-1:
-2:
-3:
-4:
-5:
4):
-1:
-2:
-3:
-4:
-5:
5):
-1:
-2:
-3:
-4:
-5:
5:命令参考:
1):
-1:
-2:
-3:
-4:
-5:
2):
-1:
-2:
-3:
-4:
-5:
3):
-1:
-2:
-3:
-4:
-5:
4):
-1:
-2:
-3:
-4:
-5:
5):
-1:
-2:
-3:
-4:
-5:
6::
1):
-1:
-2:
-3:
-4:
-5:
2):
-1:
-2:
-3:
-4:
-5:
3):
-1:
-2:
-3:
-4:
-5:
4):
-1:
-2:
-3:
-4:
-5:
5):
-1:
-2:
-3:
-4:
-5:
五.:(~)
1::
1):
-1:
-2:
-3:
-4:
-5:
2):
-1:
-2:
-3:
-4:
-5:
3):
-1:
-2:
-3:
-4:
-5:
4):
-1:
-2:
-3:
-4:
-5:
5):
-1:
-2:
-3:
-4:
-5:
2::
1):
-1:
-2:
-3:
-4:
-5:
2):
-1:
-2:
-3:
-4:
-5:
3):
-1:
-2:
-3:
-4:
-5:
4):
-1:
-2:
-3:
-4:
-5:
5):
-1:
-2:
-3:
-4:
-5:
3::
1):
-1:
-2:
-3:
-4:
-5:
2):
-1:
-2:
-3:
-4:
-5:
3):
-1:
-2:
-3:
-4:
-5:
4):
-1:
-2: