随笔分类 - 学习笔记 / Kubernetes学习笔记
k8s 学习笔记之 Dashboard
摘要:之前在 kubernetes 中完成的所有操作都是通过命令行工具 kubectl 完成的。其实,为了提供更丰富的用户体验,kubernetes 还开发了一个基于 web 的用户界面(Dashboard)。用户可以使用 Dashboard 部署容器化的应用,还可以监控应用的状态,执行故障排查以及管理
k8s 学习笔记之安全认证
摘要:## 访问控制概述 Kubernetes 作为一个分布式集群的管理工具,保证集群的安全性是其一个重要的任务。所谓的安全性其实就是保证对 Kubernetes 的各种**客户端**进行**认证和鉴权**操作。 **客户端** 在 Kubernetes 集群中,客户端通常有两类: - **User Ac
k8s 学习笔记之配置存储——ConfigMap&Secret
摘要:## 配置存储 ### ConfigMap ConfigMap 是一种比较特殊的存储卷,它的主要作用是用来存储配置信息的。 创建 configmap.yaml,内容如下: ```yaml apiVersion: v1 kind: ConfigMap metadata: name: configmap
k8s 学习笔记之数据存储——高级存储
摘要:## 高级存储 前面已经学习了使用 NFS 提供存储,此时就要求用户会搭建 NFS 系统,并且会在 yaml 配置 nfs。由于 kubernetes 支持的存储系统有很多,要求客户全都掌握,显然不现实。为了能够屏蔽底层存储实现的细节,方便用户使用,kubernetes 引入 PV 和 PVC 两种
k8s 学习笔记之数据存储——基础存储
摘要:在前面已经提到,容器的生命周期可能很短,会被频繁地创建和销毁。那么容器在销毁时,保存在容器中的数据也会被清除。这种结果对用户来说,在某些情况下是不乐意看到的。为了持久化保存容器的数据,kubernetes 引入了 Volume 的概念。 Volume 是 Pod 中能够被多个容器访问的共享目录,它被
k8s 学习笔记之 Ingress
摘要:## Ingress介绍 在前面课程中已经提到,Service 对集群之外暴露服务的主要方式有两种:NotePort 和 LoadBalancer,但是这两种方式,都有一定的缺点: - NodePort 方式的缺点是会占用很多集群机器的端口,那么当集群服务变多的时候,这个缺点就愈发明显 - LB 方
k8s 学习笔记之 Service——Service 的使用
摘要:### 实验环境准备 在使用 service 之前,首先利用 Deployment 创建出3个 pod,注意要为 pod 设置`app=nginx-pod`的标签 创建 deployment.yaml,内容如下: ```yaml apiVersion: apps/v1 kind: Deploymen
k8s 学习笔记之 Service——Service 介绍和类型
摘要:## Service 介绍 在 kubernetes 中,pod 是应用程序的载体,我们可以通过 pod 的 ip 来访问应用程序,但是 pod 的 ip 地址不是固定的,这也就意味着不方便直接采用 pod 的 ip 对服务进行访问。 为了解决这个问题,kubernetes 提供了 Service
k8s 学习笔记之 Pod 控制器——StatefulSet
摘要:## StatefulSet StatefulSet 是用来管理有状态应用的工作负载 API 对象。 StatefulSet 用来管理某 Pod 集合的**部署**和**扩缩**,并为这些 Pod 提供**持久存储**和**持久标识符**。 和 Deployment 类似,StatefulSet 管
k8s 学习笔记之 Pod 控制器——Job & CronJob
摘要:## Job Job,主要用于负责**批量处理(一次要处理指定数量任务)**短暂的**一次性(每个任务仅运行一次就结束)**任务。Job特点如下: - 当 Job 创建的 pod 执行成功结束时,Job 将记录成功结束的 pod 数量 - 当成功结束的 pod 达到指定的数量时,Job 将完成执行
k8s 学习笔记之 Pod 控制器——DaemonSet(DS)
摘要:## DaemonSet(DS) DaemonSet 类型的控制器可以保证在集群中的每一台(或指定)节点上都运行一个副本。一般适用于日志收集、节点监控等场景。也就是说,如果一个 Pod 提供的功能是节点级别的(每个节点都需要且只需要一个),那么这类 Pod 就适合使用 DaemonSet 类型的控制
k8s 学习笔记之 Pod 控制器——Horizontal Pod Autoscaler(HPA)
摘要:在之前的学习中,我们已经可以实现通过手工执行`kubectl scale`命令实现 Pod 扩容或缩容,但是这显然不符合 Kubernetes 的定位目标——自动化、智能化。Kubernetes 期望可以实现通过监测 Pod 的使用情况,实现 pod 数量的自动调整,于是就产生了 Horizonta
k8s 学习笔记之 Pod 控制器——Deployment
摘要:## Deployment(Deploy) 为了更好的解决服务编排的问题,kubernetes 在 V1.2 版本开始,引入了 Deployment 控制器。值得一提的是,这种控制器并不直接管理 pod,而是通过管理 ReplicaSet 来简介管理 Pod,即:Deployment 管理 Repl
k8s 学习笔记之 Pod 控制器——ReplicaSet(RS)
摘要:**Pod控制器介绍** Pod 是 kubernetes 的最小管理单元,在 kubernetes 中,按照 pod 的创建方式可以将其分为两类: - **自主式 pod**:kubernetes 直接创建出来的 Pod,这种 pod 删除后就没有了,也不会重建 - **控制器创建的 pod**:
k8s 学习笔记之 Pod——Pod 的调度
摘要:## Pod 的调度 在默认情况下,一个 Pod 在哪个 Node 节点上运行,是由 Scheduler 组件采用相应的算法计算出来的,这个过程是不受人工控制的。但是在实际使用中,这并不满足的需求,因为很多情况下,我们想控制某些 Pod 到达某些节点上,那么应该怎么做呢?这就要求了解 kuberne
k8s 学习笔记之 Pod——Pod 的生命周期
摘要:## Pod 生命周期 我们一般将 pod 对象从创建至终的这段时间范围称为 pod 的生命周期,它主要包含下面的过程: - pod 创建过程 - 运行初始化容器(init container)过程 - 运行主容器(main container) - 容器启动后钩子(post start)、容器终止
k8s 学习笔记之 Pod——Pod 的配置
摘要:## Pod 的配置 先研究`pod.spec.containers`属性,这也是pod配置中最为关键的一项配置。 ```shell [root@k8s-master01 ~]# kubectl explain pod.spec.containers KIND: Pod VERSION: v1 RE
k8s 学习笔记之 Pod——Pod 的介绍
摘要:## Pod 的介绍 ### Pod 的结构  每个 Pod 中都可以包含一个或者多个容器,这些容器可以分为两类:
k8s 学习笔记之基础实战入门
摘要:## Namespace Namespace 是 kubernetes 系统中的一种非常重要资源,它的主要作用是用来实现**多套环境的资源隔离**或者**多租户的资源隔离**。 默认情况下,kubernetes集群中的所有的Pod都是可以相互访问的。但是在实际中,可能不想让两个Pod之间进行互相的访
k8s 学习笔记之资源管理方式
摘要:### 三种管理方式 - 命令式对象管理:直接使用命令去操作 k8s 资源 `kubectl run nginx-pod --image=nginx:1.17.1 --port=80` - 命令式对象配置:通过命令配置和配置文件操作 k8s 资源 `kubectl create/patch -f n