Pod 的 NameSpace


一、Pod 的 NameSpace

使用 kubectl 管理命名空间及其包含的资源相当简单。在这一节中,我们将演示一些最常见的命名空间操作,便于你开始有效地分割资源。

在我们进行创建命名空间之前,先说一下 Kubernetes 是如何自动设置它的,在默认情况下,新的集群上有四个命名空间:

要显示集群中可用的所有命名空间,使用 kubectl get namespaces 命令:

40.png

default: 向集群中添加对象而不提供命名空间,这样它会被放入默认的命名空间中。在创建替代的命名空间之前,该命名空间会充当用户新添加资源的主要目的地,无法删除。

kube-public: 此命名空间是自动...

Read more

Pod 的健康检查-探针


Pod探针是K8s保障容器运行稳定性的核心机制,直接决定了故障容器能否被自动修复、服务流量能否精准路由。

K8s通过三类探针监控Pod状态,分别对应“容器是否存活”“是否可用”“是否启动完成”三个核心场景,实现故障自动干预。

一、核心探针类型:三类探针的核心区别

三类探针的核心差异在于监控目标失败后的处理逻辑,具体如下表所示:

探针类型 核心作用 失败后果 典型使用场景
存活探针(livenessProbe) 判断容器是否“存活”(如进程是否卡死) 触发容器重启(符合重启策略时) 应用死锁、进程无响应
就绪探针(readinessProbe) 判断容器是否“可用”...

Read more

Pod 的 init Containers


在 Kubernetes 中,Init Containers(初始化容器) 是在 Pod 的主容器(应用容器)启动之前运行的专用容器,用于完成主容器启动前需要的初始化工作。它们为应用容器提供了隔离的初始化环境,确保主容器启动时所有依赖条件都已满足。

核心作用

Init Containers 的主要任务是为应用容器准备运行环境,常见场景包括:

  • 等待其他服务(如数据库、API 服务)就绪
  • 下载或配置应用所需的配置文件、密钥等
  • 初始化数据库表结构或数据迁移
  • 设置文件系统权限、环境变量等
  • 执行前置命令(如解压资源包、验证依赖)

关键特点

1.执行顺序

一个 Pod 可以定义多个 Ini...

Read more

Pod 介绍


一、什么是 Pod

在Kubernetes中,Pod是调度和运行的最小单元,它包含一个或多个容器,并共享网络和存储资源。

Pod 是 kubernetes 集群中最小的部署和管理的基本单元,协同寻址,协同调度。

Pod 是一个或多个容器的集合,是一个或一组服务(进程)的抽象集合。

Pod 中可以共享网络和存储(可以简单理解为一个逻辑上的虚拟机,但并不是虚拟机)。

Docker 是目前 Pod 最常用的容器环境,但仍支持其他容器环境。

27.png

我们可以看到,当我们启动一个 Pod 以后,每个 Pod 内都会有一个 Pause 的容器

每个 Pod 里运行着一个特殊的被称之为 Pause 的容...

Read more

指定pod运行在固定节点


一、指定固定节点:Pod.spec.nodeName

Pod.spec.nodeName 将 Pod 直接调度到指定的 Node 节点上,会跳过 Scheduler 的调度策略,该匹配规则是强制匹配:

vim node-1.yaml 

apiVersion: apps/v1
kind: Deployment
metadata:
  name: myweb
spec:
  selector:
    matchLabels:
      app: myweb
  replicas: 6
  template:
    metadata:
      labels:
        app...

Read more

Kubernetes污点和容忍


本文主要快速讲解Kubernetes的污点和容忍度,一句话总结:如果Pod能容忍某个节点上的污点,那么Pod就可以调度到该节点。

在K8S中,如果Pod能容忍某个节点上的污点,那么Pod就可以调度到该节点。如果不能容忍,那就无法调度到该节点。污点和容忍度就像谈恋爱的小情侣,你情我愿,女生知道男生的缺点,却依然选择容忍,这样他们可以生活在一起。如果女生容忍不了男生的缺点,那就没法生活在一起。

1、理论

1.1、污点和容忍度的概念

  • 污点(Taints):定义在节点上,用于拒绝Pod调度到此节点,除非该Pod具有该节点上的污点容忍度。被标记有Taints的节点并不是故障节点。
  • 容忍度(T...

Read more

Kubernetes节点与 Pod 亲和性


首先来个一句话总结:亲和性调度就像关系亲密的闺蜜,你去哪儿我也去哪儿。反亲和性调度就像赌气的两个孩子,赌气永远不在一起玩儿。

1、调度Pod的主要方式

Pod调度到指定Node的方式主要有4种:

  • nodeName调度:直接在Pod的yaml编排文件中指定nodeName,调度到指定name的节点上。
  • nodeSelector调度:直接在Pod的yaml编排文件中指定nodeSelector,调度到带有指定label的节点上。
  • 污点(Taints)和容忍度(Tolerations)调度:主要通过在Node节点上打污点,然后在Pod的yaml编排文件中配置容忍度,来实现调度。
  • 亲和-反...

Read more

Kubernetes集群调度介绍


Kubernetes调度

Scheduler 是 kubernetes 的调度器,主要的任务是把新创建 pod 分配到集群的节点上。

听起来非常简单,但有很多要考虑的问题:

  • 如何保证全部的节点调度的公平性?并不是所有节点资源配置一定都是一样的。
  • 如何保证每个节点都能被分配资源?
  • 集群资源如何能够被高效利用?
  • 集群资源如何才能被最大化使用?
  • 如何保证 Pod 调度的性能和效率?
  • 用户是否可以根据自己的实际需求定制自己的调度策略?
  • 公平:如何保证每个节点都能被分配资源
  • 资源高效利用:集群所有资源最大化被使用
  • 效率:调度的性能要好,能够尽快地对大批量的 pod 完成调度工作
  • 灵活:允...

Read more

Kubernetes节点与令牌管理


在 Kubernetes 中,使用 kubeadm 工具可以很方便地添加新的节点到现有的集群中。这个过程主要包括在主节点上生成一个加入命令,然后在新的节点上执行这个命令。以下是详细的步骤:

1. 在主节点上生成加入命令

首先,登录到你的 Kubernetes 主节点(通常是控制平面节点)。然后,使用 kubeadm 生成一个加入命令。这个命令包含了必要的令牌和证书哈希,使得新节点能够安全地加入集群。

kubeadm token create --print-join-command

这个命令会输出一个类似于下面的命令:

kubeadm join <control-plane-h...

Read more

Harbor镜像仓库部署


一、创建自签证书:

1.1、准备工作

  • 检查是否已经安装 openssl: openssl version
  • 创建存放证书目录并进入目录
[root@zuolaoshi ~]# mkdir /opt/harbor-ca-key
[root@zuolaoshi ~]# cd /opt/harbor-ca-key

1.2、创建秘钥

生成私钥

[root@zuolaoshi harbor-ca-key]# openssl genrsa -des3 -out server.pass.key 2048

# genra 生成RSA私钥
# -des3 des3算法
# -out server....

Read more