随笔分类 -  Kubernetes

摘要:准入控制器 准入控制器(Admission Controller)位于 API Server 中,在 对象被持久化 之前,准入控制器会拦截对 API Server 的请求,一般用来做身份验证和授权。主要包含两个特殊的控制器,分别用作配置的变更和验证。 MutatingAdmissionWebhook 阅读全文
posted @ 2022-10-24 17:07 不知名换皮工程师 阅读(174) 评论(0) 推荐(1)
摘要:HPA 使用 Deployment 的时候知道了可以通过 kubectl scale 的方式调整集群中 Pod 的副本数以满足业务的需求。 在生产环境中,应用的资源使用率通常都有高峰和低谷的时候,如何削峰填谷,提高集群的整体资源利用率,并且尽可能的减少人工干预。Kubernetes 提供了这样一种资 阅读全文
posted @ 2022-10-23 15:19 不知名换皮工程师 阅读(495) 评论(0) 推荐(0)
摘要:Job Job 负责处理任务,主要为仅执行一次的任务,它保证批处理任务的一个或多个 Pod 成功结束。 Job 的资源清单如下所示: apiVersion: batch/v1 kind: Job metadata: name: job-demo namespace: default spec: # 阅读全文
posted @ 2022-10-22 11:51 不知名换皮工程师 阅读(63) 评论(0) 推荐(0)
摘要:DaemonSet 通过控制器名称可以看出:Daemon,就是用来部署守护进程的。 DaemonSet 用于在每个 Kubernetes 节点中将守护进程的副本作为后台进程运行,说白了就是在每个节点部署一个 Pod 副本,当新的节点加入到 Kubernetes 集群中,Pod 会被调度到该节点上运行 阅读全文
posted @ 2022-10-21 18:42 不知名换皮工程师 阅读(76) 评论(0) 推荐(0)
摘要:StatefulSet Deployment 控制器对于无状态的服务的编排很容易,但是对于有状态的服务就显得无能为力了。 当然,在使用 docker 的时候就有提到过,对于有状态的服务,是不建议放到容器中的。 无状态服务(Stateless Service):服务不会在本地存储持久化数据,多个实例对 阅读全文
posted @ 2022-10-21 15:20 不知名换皮工程师 阅读(129) 评论(0) 推荐(0)
摘要:Deployment 已经知道 ReplicaSet 控制器是用来维护集群中运行的 Pod 数量,但生产中一般不会直接使用它,而是会使用更上层封装的控制器,比如 Deployment。 Deployment(部署),和名字一样,其核心的功能就是实现了 Pod 的滚动更新。这对于线上的服务做到不中断发 阅读全文
posted @ 2022-10-20 10:50 不知名换皮工程师 阅读(131) 评论(0) 推荐(0)
摘要:控制器 在实际应用中,一般不会直接使用 Pod,而是会使用各种 Pod 的上层封装 控制器 来满足使用需求。Kubernetes 中运行了一系列控制器来确保集群的当前状态与期望状态保持一致。 控制器会监听资源创建、更新、删除事件,并触发 Reconcile 调谐函数,该过程称为 Reconcile 阅读全文
posted @ 2022-10-19 19:01 不知名换皮工程师 阅读(336) 评论(0) 推荐(0)
摘要:Pod Pod 是 Kubernetes 最基本的调度单元。 在一个复杂的系统中,往往某些应用的关系是非常密切的,它们需要共享某些资源。如果都运行在同一个容器内,会面临一个问题,容器运行时的管理进程是 PID=1 的进程,如果容器以多进程运行,那么里面的某些进程挂了,就会成为僵尸进程,没办法进行管理 阅读全文
posted @ 2022-10-19 00:41 不知名换皮工程师 阅读(135) 评论(0) 推荐(0)
摘要:资源清单 在使用 docker 部署容器的时候,使用 docker run 进行容器的运行,但是对于复杂的需求,如果还是使用 docker run,就会变得极其复杂和难以管理。于是便有了 docker compose。 在 kubernetes 中也会存在类似 docker run 一样的命令用于运 阅读全文
posted @ 2022-10-17 20:22 不知名换皮工程师 阅读(75) 评论(0) 推荐(0)
摘要:分层架构 Kubernetes 设计理念和功能其实就是一个类似 Linux 的分层架构,如下图所示: 具体说明: 核心层:Kubernetes 最核心的功能,对外提供 API 构建高层的应用,对内提供插件式应用执行环境。 应用层:部署(无状态应用、有状态应用、批处理任务、集群应用等)和路由(服务发现 阅读全文
posted @ 2022-10-14 14:03 不知名换皮工程师 阅读(102) 评论(0) 推荐(0)
摘要:安装准备 区别于使用 kubeadm 部署集群时所有核心组件都托管在集群上。二进制安装则采用守护进程的方式直接将各个组件运行在宿主机,生产环境更为推荐。 此时就可以将测试机器回滚到初始化完成时候的快照,也就是完成初始化文档的所有内容: https://www.cnblogs.com/ezops/p/ 阅读全文
posted @ 2022-10-11 12:25 不知名换皮工程师 阅读(385) 评论(0) 推荐(0)
摘要:删除节点 有些时候某些机器出现问题可能需要将其下掉,或者在初始化节点的时候信息初始化的有问题需要重新加入,这时候就涉及到删除节点的问题。 具体删除办法如下,Master 节点和 Worker 节点都一样: # 先将节点标记为不可调度的维护模式 kubectl drain master-03 --de 阅读全文
posted @ 2022-10-11 11:30 不知名换皮工程师 阅读(497) 评论(0) 推荐(0)
摘要:证书有效期 通过 kubeadm 安装的 Kubernetes 集群的证书有效期为 1 年,可以使用相关命令查看证书的有效期: kubeadm certs check-expiration 如图所示: 可以看到除了 ca 证书,其他证书的有效期都是一年。如果证书到期,则整个集群都会挂掉。 解决这个问 阅读全文
posted @ 2022-10-10 21:02 不知名换皮工程师 阅读(456) 评论(0) 推荐(0)
摘要:Kubeadm kubeadm 是 Kubernetes 社区提供的集群构建工具,它能够以最佳实践的方式部署一个最小化的可用 Kubernetes 集群。 但是 kubeadm 在设计上并未安装网络解决方案,所以需要用户自行安装第三方符合 CNI 的网络解决方案,如 flanal,calico,ca 阅读全文
posted @ 2022-10-10 11:38 不知名换皮工程师 阅读(1368) 评论(0) 推荐(0)
摘要:集群准备 生产中理想的集群规划: 但是由于资源有限,只有 6 台 CentOS 7.9 的虚拟机,所以将 K8S Master,Nginx + Keepalived,CoreDNS 三个集群进行了整合,CoreDNS 会在后面的章节单独进行安装。 具体规划如下: | 主机 | IP | 系统 | 配 阅读全文
posted @ 2022-09-18 11:41 不知名换皮工程师 阅读(282) 评论(1) 推荐(0)
摘要:说明介绍 Kubernetes 简称 K8S,源于希腊语,意为”舵手”或“飞行员”,由 Google 在 2014 年将自己的 Borg 系统使用 Go 语言重写开源而来。 其 logo 类型轮船的方向盘,而 docker logo 类似载满集装箱的轮船,寓意可想而知。 相较于 Docker 带火了 阅读全文
posted @ 2022-09-18 11:32 不知名换皮工程师 阅读(112) 评论(0) 推荐(0)