合集-Kubernete
摘要:通过上一课时的学习,我们已经对 Kubernetes 的前世今生有所了解。接下来,我们开始具体学习如何将 Kubernetes 应用到自己的项目中,首先就需要了解 Kubernetes 的架构。所以,在本节课程中,我们会一起学习 Kubernetes 的架构设计,以及背后的设计哲学。 Google
阅读全文
摘要:本课时,我们就开始正式进入 Kubernetes 的学习,或许你已经听过或简单了解过 Kubernetes,它是一款由 Google 开源的容器编排管理工具,而我们想要深入地掌握 Kubernetes 框架,就不得不先了解 Kubernetes 的前世今生,而这一切都要从“云计算”的兴起开始讲起。
阅读全文
摘要:通过上一节课的学习,我们已经对 Kubernetes 的架构有了清楚的认识。但是到现在还没有和 Kubernetes 集群真正打过交道,所以你可能有一种“不识庐山真面目”的云里雾里的感觉。那么本节课,我们就来学习如何搭建 Kubernetes 集群,开启探索 Kubernetes 的第一站。 在线
阅读全文
摘要:在上一节课,我们已经了解了 Kubernetes 集群的搭建方式。从现在开始,我们就要跟 Kubernetes 集群打交道了。本节课我们会学习 Kubernetes 中最重要、也最核心的对象——Pod。 在了解 Pod 之前,我们先来看一下CNCF 官方是怎么定义云原生的。 云原生技术有利于各组织在
阅读全文
摘要:在上一节课中,我们学习了 Kubernetes 中的无状态工作负载,并上手实践了 Deployment 对象,相信现在你已经慢慢喜欢上 Kubernetes 了。 那么本节课,我们来一起看看Kubernetes 中的另外一种工作负载 StatefulSet。从名字就可以看出,这个工作负载主要用于有状
阅读全文
摘要:在上两节课中,我们已经了解了 Kubernetes 中最关键的对象 Pod,也学习了一些 Pod 的常见用法。 每一个 Pod 都是应用的一个实例,但是通常来说你不会直接在 Kubernetes 中创建和运行单个 Pod。因为 Pod 的生命周期是短暂的,即“用后即焚”。理解这一点很重要,这也是“不
阅读全文
摘要:通过上一节课的学习,相信你已经知道了 Pod 是 Kubernetes 中原子化的部署单元,它可以包含一个或多个容器,而且容器之间可以共享网络、存储资源。在日常使用过程中,也应该尽量避免在一个 Pod 内运行多个不相关的容器,具体原因在上一节课中也已经详细阐述。 在实际生产使用的过程中,通过 kub
阅读全文
摘要:经过前面几节课的学习,我们已经可以发布高可用的业务了,通过 PV 持久化地保存数据,通过 Deployment或Statefulset 这类工作负载来管理多实例,从而保证服务的高可用。 想一想,这个时候如果有别的应用来访问我们的服务的话,该怎么办呢?直接访问后端的 Pod IP 吗?不,这里我们还需
阅读全文
摘要:通过前面的课程,相信你对 Kubernetes 中的对象有了很多了解。Kubernetes 是一个强大的容器调度系统,你可以通过一些声明式的定义,很方便地在 Kubernetes 中部署业务。 现在你一定很想尝试在 Kubernetes 中部署一个稍微复杂的系统,比如下面这个典型的三层架构:前端、后
阅读全文
摘要:通过上一节课的学习,我们知道了如何在 Pod 中使用 Volume 来保存数据。Volume 跟 Pod 的生命周期是绑定的,当 Pod被删除后,Volume 中的数据有可能会一同被删除,具体需要看对应的 volume plugin 的使用要求,你可以看上节课的对比表格。 而这里我们还需要考虑如下几
阅读全文
摘要:通过前面几节课的学习,我们已经对 Kubernetes 中的 Pod 以及一些业务负载有所了解。你可以根据课程中提供的示例,自己动手尝试在集群中实践起来。 在使用过程中,我们常常需要对 Pod 进行一些配置管理,比如参数配置文件怎么使用,敏感数据怎么保存传递,等等。有些人可能会觉得,为什么不把这些配
阅读全文
摘要:在以前玩虚拟机的时代,大家比较少考虑存储的问题,因为在通过底层 IaaS 平台申请虚拟机的时候,大多数情况下,我们都会事先预估好需要的容量,方便虚拟机起来后可以稳定的使用这些存储资源。 但是容器与生俱来就是按照可以“运行在任何地方”(run anywhere)这一想法来设计的,对外部存储有着天然的诉
阅读全文
摘要:随着我们在 Kubernetes 集群中部署越来越多的业务,势必要考虑集群的资源利用率问题。尤其是当集群资源比较紧张的时候,如果此时还要部署一些比较重要的关键业务,那么该如何去提前“抢占”集群资源,从而使得关键业务在集群中跑起来呢? 这里一个最常见的做法就是采用优先级方案。通过给 Pod 设置高优先
阅读全文
摘要:Garbage Collector 即垃圾回收,通常简称 GC,和你之前在其他编程语言中了解到的 GC 基本上是一样的,用来清理一些不用的资源。Kubernetes 中有各种各样的资源,当然需要 GC啦,今天我们就一起来了解下 Kubernetes 中的 GC。 你可能最先想到的就是容器的清理,即
阅读全文
摘要:前面的课时中,我们曾提到通过 HPA 控制业务的资源水位,通过 ClusterAutoscaler 自动扩充集群的资源。但如果集群资源本身就是受限的情况下,或者一时无法短时间内扩容,那么我们该如何控制集群的整体资源水位,保障集群资源不会被“打爆”? 今天我们就来看看 Kubernetes 中都有哪些
阅读全文
摘要:你好,我是正范。 通过前面的课程学习,你已经学会了使用kubectl命令行,或者直接发送 REST 请求,以及使用各种语言的 client 库来跟 APIServer 进行交互。那么你是否知道在这其中Kubernetes 是如何对这些请求进行认证、授权的呢?这节课,我们就来一探究竟。 任何请求访问
阅读全文
摘要:通过前面的学习,相信你已经见识到了 Kubernetes 的强大能力,它能帮你轻松管理大规模的容器服务,尤其是面对复杂的环境时,比如节点异常、容器异常退出等,Kubernetes 内部的 Service、Deployment 会动态地进行调整,比如增加新的副本、关联新的 Pod 等。 当然 Kube
阅读全文
摘要:Prometheus 和 Grafana 可以说是 Kubernetes 监控解决方案中最知名的两个。Prometheus 负责收集、存储、查询数据,而 Grafana 负责将 Prometheus 中的数据进行可视化展示,当然 Grafana 还支持其他平台,比如 ElasticSearch、In
阅读全文
摘要:通过之前的学习,我们已经对 Kubernetes 有了一定的理解,也知道如何在 Kubernetes 中部署自己的业务系统。 Kubernetes 强大的能力让我们非常方便地使用容器部署业务。Kubernetes 自带的副本保持能力,可以避免部署的业务系统出现单点故障,提高可用性。各种探针也可以帮助
阅读全文
摘要:通过前面课程的学习,我们对 Kubernetes 中一些常见工作负载已经有所了解。比如无状态工作负载 Dployment 可以帮助我们运行指定数目的服务副本,并维护其状态,而对于有状态服务来说,我们同样可以采用 StatefulSet 来做到这一点。 但是,在实际使用的时候,有些场景,比如监控各个节
阅读全文
摘要:说到日志,你应该不陌生。日志中不仅记录了代码运行的实时轨迹,往往还包含着一些关键的数据、错误信息,等等。日志方便我们进行分析统计及监控告警,尤其是在后期问题排查的时候,我们通过日志可以很方便地定位问题、现场复现及问题修复。日志也是做可观测性(Observability)必不可少的一部分。 因此在使用
阅读全文
摘要:在本课程的最后一讲,我来为你介绍一些 kubectl 使用过程中的小技巧。kubectl 是我们日常操纵整个 Kubernetes 的利器,操作方便,功能强大。接下来,我会向你介绍常用的七个功能。 自动补全 我们可以通过如下命令进行命令行的自动补全,方便我们使用。 如果你使用的是 bash,可以通过
阅读全文
摘要:你好,我是正范。在上一讲,我们学习了如何通过一个 YAML 文件来定义一个 CRD,即扩展 API。这种扩展 API 跟 Kubernetes 内置的其他 API 同等地位,都可以通过 kubectl 或者 REST 接口访问,在使用过程中不会有任何差异。 但只是定义一个 CRD 并没有什么作用。虽
阅读全文
摘要:前面我们学习了 Deployment、Statefulset、Daemonset 这些工作负载,它们可以帮助我们在不同的场景下运行长伺型(Long Running)的服务。 但是有一类业务(一次性作业和定时任务)运行完就结束了,不需要长期运行,如果使用上述的那些工作负载就无法满足我们的要求。比如 P
阅读全文
摘要:随着使用的深入,你会发现 Kubernetes 中内置的对象定义,比如 Deployment、StatefulSet、Configmap,可能已经不能满足你的需求了。你很希望在 Kubernetes 定义一些自己的对象,一来可以通过 kube-apiserver 提供统一的访问入口,二来可以像其他内
阅读全文
摘要:当一个 Pod 在 Kube-APIServer 中被创建出来以后,会被调度器调度,然后确定一个合适的节点,最终被这个节点上的 Kubelet 拉起,以容器状态运行。 那么 Kubelet 是如何跟容器打交道的呢,它是如何进行创建容器、获取容器状态等操作的呢? 今天我们就来了解一下。 容器运行时 (
阅读全文
摘要:通过之前的学习,相信你对 Kubernetes 越来越熟悉了。理论上,Kubernetes 可以跑在任何环境中,比如公有云、私有云、物理机、虚拟机、树莓派,但是任何基础设施(Infrastructure)对网络的需求都是最基本的。网络同时也是 Kubernetes 中比较复杂的一部分。 我们今天就来
阅读全文
摘要:Kubernetes 隐藏了所有容器编排的复杂细节,让我们可以专注在应用本身,而无须过多关注如何去做部署和维护。此外,Kubernetes 还支持多副本,可以保证我们业务的高可用性。而对于集群本身而言,我们一样也要保证其高可用性,你可以参考官方文档:利用 Kubeadm 来创建高可用集群。 但是这些
阅读全文
摘要:我们已经学会如何部署业务,发布 Pod。但是 Pod 创建好以后,Kubernetes 又如何调度这些 Pod 呢?如果我们希望把一个 Pod 跑在我们期望的节点上,该如何操作呢?如果我们希望把某些关联性强的 Pod 跑在特定的节点上,或者同一个节点上,又该怎么操作呢? 今天我们就来揭晓。 Kube
阅读全文
摘要:(https://rancher.com/blog/2019/2019-01-17-101-more-kubernetes-security-best-practices/) 你好,我是正范。 Kubernetes 作为一个分布式集群的管理工具,提供了非常强大的可扩展能力,可以帮助你管理容器,实现业
阅读全文

浙公网安备 33010602011771号