随笔分类 - Kubernetes
1
摘要:Harbor Harbor 是一个 CNCF 基金会托管的开源的可信的云原生 docker registry 项目,可以用于存储、签名、扫描镜像内容。 Harbor 最核心的功能就是给 docker registry 添加上一层权限保护的功能。并支持在 registry 之间复制镜像,用户管理、访问
阅读全文
摘要:Longhorn 除了本地存储、NFS 共享存储之外,还有块存储。在 Kubernetes 中,块存储的方案有很多,比如 Ceph RBD,这里主要介绍 Rancher 开源的一款 Kubernetes 的云原生分布式块存储方案 - Longhorn。 使用 Longhorn 可以: 使用 Long
阅读全文
摘要:内置对象 前面提到过可以在模板中使用 {{ .Release.Name }} 获取 release 的名称,Release 是模板中可以访问的几个顶级对象之一: Release:该对象描述了 release 本身的相关信息 Release.Name:release 名称 Release.Namesp
阅读全文
摘要:Chart Helm 使用一种名为 charts 的包格式,一个 chart 是描述一组相关的 Kubernetes 资源的文件集合。单个 chart 既可以用于部署简单的应用,也可以是复杂的应用。 Charts 是创建在特定目录下面的文件集合,然后可以将它们打包到一个版本化的存档中来部署。 目录结
阅读全文
摘要:Helm Helm 可以帮助管理 Kubernetes 应用程序,其作用类似于 CentOS 的 yum。对于越来越复杂的 Kubernetes 应用程序来说,如果单纯依靠手动维护应用程序的 YAML 资源清单文件,成本是巨大的,此时 Helm 就解决了这方面的难题。通过使用 Helm Charts
阅读全文
摘要:调度器 kube-scheduler 是 kubernetes 的核心组件之一,主要负责整个集群资源的调度功能,根据特定的调度算法和策略,将 Pod 调度到最优的工作节点上面去,从而更加合理、更加充分的利用集群的资源。 默认情况下,kube-scheduler 提供的默认调度器能够满足绝大多数的要求
阅读全文
摘要:存储 前面有通过 hostPath 或者 emptyDir 的方式来持久化数据,但是显然还需要更加可靠的存储来保存应用的持久化数据,这样容器在重建后,依然可以使用之前的数据。可存储资源和 CPU 资源以及内存资源有很大不同,为了让用户更加方便的使用,Kubernetes 便引入了 PV 和 PVC
阅读全文
摘要:ConfigMap 前面的资源对象并不能满足日常工作中的所有需求,一个最重要的需求就是应用的配置管理,特别是可变配置。 比如,在开发过程中程序需要配置 MySQL 或者 Redis 的连接地址。如果是以前的部署方式,此时想要修改这些信息,就需要修改代码的配置,然后重新打包部署。如果使用 Config
阅读全文
摘要:ingress-nginx 前面已经了解了 Ingress 资源对象只是一个路由请求描述配置文件,要让其真正生效还需要对应的 Ingress 控制器才行,Ingress 控制器有很多,这里先介绍使用最多的 ingress-nginx,它是基于 Nginx 的 Ingress 控制器。 ingress
阅读全文
摘要:Ingress 前面知道了可以使用 NodePort 和 LoadBlancer 类型的 Service 可以把应用暴露给外部用户使用,这对于小规模的应用来说确实没多大问题,但是当你的应用越来越多的时候,就会发现对于 NodePort 的管理就会变得非常麻烦,特别是大量的端口管理。为此,Kubern
阅读全文
摘要:服务发现 通过 Service 知道了后端的 Pod 服务可以通过 Cluster IP 代理出来让其他服务能够访问到。但也存在一个问题,Service 可能会被更新或者重建,下一次的 IP 可能就变了,此时服务怎么办? 为了解决这个问题,在早期的 Kubernetes 中,通过设置环境变量的方法,
阅读全文
摘要:label Selector 在某些特殊的使用场景中,可能会遇到某些服务只能部署在某些特定的机器上面的情况。为了将这一部分机器逻辑上隔离出来,就需要用户给这批机器打上特定的标签。然后在部署的时候通过标签选择器限制服务的部署以实现这种特殊的需求。 查看标签: # 查看 Node 的标签 kubectl
阅读全文
摘要:HPA 使用 Deployment 的时候知道了可以通过 kubectl scale 的方式调整集群中 Pod 的副本数以满足业务的需求。 在生产环境中,应用的资源使用率通常都有高峰和低谷的时候,如何削峰填谷,提高集群的整体资源利用率,并且尽可能的减少人工干预。Kubernetes 提供了这样一种资
阅读全文
摘要:控制器 在实际应用中,一般不会直接使用 Pod,而是会使用各种 Pod 的上层封装 控制器 来满足使用需求。Kubernetes 中运行了一系列控制器来确保集群的当前状态与期望状态保持一致。 控制器会监听资源创建、更新、删除事件,并触发 Reconcile 调谐函数,该过程称为 Reconcile
阅读全文
摘要:Pod Pod 是 Kubernetes 最基本的调度单元。 在一个复杂的系统中,往往某些应用的关系是非常密切的,它们需要共享某些资源。如果都运行在同一个容器内,会面临一个问题,容器运行时的管理进程是 PID=1 的进程,如果容器以多进程运行,那么里面的某些进程挂了,就会成为僵尸进程,没办法进行管理
阅读全文
摘要:安装准备 区别于使用 kubeadm 部署集群时所有核心组件都托管在集群上。二进制安装则采用守护进程的方式直接将各个组件运行在宿主机,生产环境更为推荐。 服务还是那些,只需要将服务器准备到初始化状态即可,即: https://www.cnblogs.com/Dy1an/p/17142958.html
阅读全文
摘要:Kubeadm kubeadm 是 Kubernetes 社区提供的集群构建工具,它能够以最佳实践的方式部署一个最小化的可用 Kubernetes 集群。 但是 kubeadm 在设计上并未安装网络解决方案,所以需要用户自行安装第三方符合 CNI 的网络解决方案,如 flanal,calico,ca
阅读全文
摘要:集群准备 生产环境服务器规划: 但是由于资源有限,本次环境只有 8 台 CentOS 7.9 的虚拟机,具体规划如下: | 主机 | IP | 系统 | 配置 | 初始化安装服务 | | | | | | | | ops | 192.168.2.40 | CentOS 7.9 | 4C/4G/20G
阅读全文
摘要:服务说明 Kubernetes 简称 K8S,源于希腊语,意为”舵手”或“飞行员”,由 Google 在 2014 年将自己的 Borg 系统使用 Go 语言重写开源而来。 其 logo 类型轮船的方向盘,而 docker logo 类似载满集装箱的轮船,寓意可想而知。 在 Docker 带火了容器
阅读全文
摘要:Docker Docker 从 1.11 版本开始,其容器的运行就不再是简单的通过 Docker Daemon 来启动,而是通过集成 containerd、runc 等多个组件来协同完成。 Docker Daemon:守护进程,属于 CS 架构,负责和 Docker Client 端交互,并管理 D
阅读全文
1