文章列表

# 场景说明 使用 dnsPolicy: ClusterFirst 策略。示例配置如下: apiVersion: v1kind: Podmetadata: name: alpine namespace: defaultspec: containers: - image: alpine command: - sleep - "10000" imagePullPolicy: Always name: alpine dnsPolicy: ClusterFirst关于 dnsPolicy 配置和场景说明,请参见 DNS 原理和配置说明。 # CoreDNS 的默认配置 在命名空间...

尝试删除 Kubernetes 命名空间后,长时间停留在终止状态。本文介绍如何解决命名空间处于终止状态的问题。 # 问题现象 尝试删除 Kubernetes 命名空间后,长时间停留在终止状态。 kubectl delete ns <namespacename>Error from server (Conflict): Operation cannot be fulfilled on namespaces "<namespacename>": The system is ensuring all content is removed...

# 问题背景 首先,你有没有遇到过这样的情况 apiVersion: v1kind: ConfigMapmetadata: name: test-cm namespace: default labels: test-label: test managedFields: - manager: kubectl operation: Apply apiVersion: v1 time: "2010-10-10T0:00:00Z" fieldsType: FieldsV1 fieldsV1: f:metadata: f:labels: f:test-label:...

原创:阳明,摘录其社区运营公众号,kubernetes 技术圈 从 kube-scheduler 的角度来看,它是通过一系列算法计算出最佳节点运行 Pod,当出现新的 Pod 进行调度时,调度程序会根据其当时对 Kubernetes 集群的资源描述做出最佳调度决定,但是 Kubernetes 集群是非常动态的,由于整个集群范围内的变化,比如一个节点为了维护,我们先执行了驱逐操作,这个节点上的所有 Pod 会被驱逐到其他节点去,但是当我们维护完成后,之前的 Pod 并不会自动回到该节点上来,因为 Pod 一旦被绑定了节点是不会触发重新调度的,由于这些变化,Kubernetes...

# 第八章 数据存储 ​ 在前面已经提到,容器的生命周期可能很短,会被频繁地创建和销毁。那么容器在销毁时,保存在容器中的数据也会被清除。这种结果对用户来说,在某些情况下是不乐意看到的。为了持久化保存容器的数据,kubernetes 引入了 Volume 的概念。 ​ Volume 是 Pod 中能够被多个容器访问的共享目录,它被定义在 Pod 上,然后被一个 Pod 里的多个容器挂载到具体的文件目录下,kubernetes 通过 Volume 实现同一个 Pod 中不同容器之间的数据共享以及数据的持久化存储。Volume 的生命容器不与 Pod...

# 第七章 Service 详解 本章节主要介绍 kubernetes 的流量负载组件:Service 和 Ingress。 # Service 介绍 ​ 在 kubernetes 中,pod 是应用程序的载体,我们可以通过 pod 的 ip 来访问应用程序,但是 pod 的 ip 地址不是固定的,这也就意味着不方便直接采用 pod 的 ip 对服务进行访问。 ​ 为了解决这个问题,kubernetes 提供了 Service 资源,Service 会对提供同一个服务的多个 pod 进行聚合,并且提供一个统一的入口地址。通过访问 Service 的入口地址就能访问到后面的 pod 服务。 ​...

# 第六章 Pod 控制器详解 本章节主要介绍各种 Pod 控制器的详细使用。 # Pod 控制器介绍 Pod 是 kubernetes 的最小管理单元,在 kubernetes 中,按照 pod 的创建方式可以将其分为两类: 自主式 pod:kubernetes 直接创建出来的 Pod,这种 pod 删除后就没有了,也不会重建 控制器创建的 pod:kubernetes 通过控制器创建的 pod,这种 pod 删除了之后还会自动重建 什么是Pod控制器 ​ Pod 控制器是管理 pod 的中间层,使用 Pod 控制器之后,只需要告诉 Pod 控制器,想要多少个什么样的 Pod...

# 第五章 Pod 详解 本章节将详细介绍 Pod 资源的各种配置(yaml)和原理。 # Pod 介绍 # Pod 结构 每个 Pod 中都可以包含一个或者多个容器,这些容器可以分为两类: 用户程序所在的容器,数量可多可少 Pause 容器,这是每个 Pod 都会有的一个根容器,它的作用有两个: 可以以它为依据,评估整个 Pod 的健康状态 可以在根容器上设置 Ip 地址,其它容器都此 Ip(Pod IP),以实现 Pod 内部的网路通信 这里是Pod内部的通讯,Pod的之间的通讯采用虚拟二层网络技术来实现,我们当前环境用的是Flannel # Pod 定义 下面是 Pod...

# 第四章 实战入门 本章节将介绍如何在 kubernetes 集群中部署一个 nginx 服务,并且能够对其进行访问。 # Namespace ​ Namespace 是 kubernetes 系统中的一种非常重要资源,它的主要作用是用来实现多套环境的资源隔离或者多租户的资源隔离。 ​ 默认情况下,kubernetes 集群中的所有的 Pod 都是可以相互访问的。但是在实际中,可能不想让两个 Pod 之间进行互相的访问,那此时就可以将两个 Pod 划分到不同的 namespace 下。kubernetes 通过将集群内部的资源分配到不同的 Namespace 中,可以形成逻辑上的...

# 第三章 资源管理 本章节主要介绍 yaml 语法和 kubernetes 的资源管理方式 # 资源管理介绍 在 kubernetes 中,所有的内容都抽象为资源,用户需要通过操作资源来管理 kubernetes。 ​ kubernetes 的本质上就是一个集群系统,用户可以在集群中部署各种服务,所谓的部署服务,其实就是在 kubernetes 集群中运行一个个的容器,并将指定的程序跑在容器中。 ​ kubernetes 的最小管理单元是 pod 而不是容器,所以只能将容器放在 Pod 中,而 kubernetes 一般也不会直接管理 Pod,而是通过 Pod控制器 来管理 Pod...