[Mac] 使用 Podman + Kind + Cilium 搭建 CKAD 完美实践环境指南

大家好!这篇博客文章将为您整理一份在Mac环境下,最简洁、最强大地搭建CKAD实践环境的指南。

不仅仅是复制命令,如果您能理解为什么这样设置,那么大约15分钟后,您的Mac将变成一个完美的考场。🚀


📑 目录

  1. 为什么选择 Podman 和 Kind? (告别 Docker Desktop)
  2. 实践前的必备准备
  3. 一次性完成的魔法脚本分析
  4. 200% 同步 CKAD 考场环境 (Alias & Dry-run)
  5. 集群状态检查与总结
  6. [附录] 常见问题 (FAQ)

1. 为什么选择 Podman 和 Kind? 🐳

对于Mac用户来说,Docker Desktop很熟悉,但由于资源占用和许可问题,Podman正成为一个出色的替代方案。结合 Kind (Kubernetes in Docker/Podman),您可以在本地环境中轻松运行多节点集群。

特别是,本指南旨在通过直接安装讲师专业领域的 Cilium CNI,同时进行高级网络实践。


2. 实践前的必备准备 🛠️

在运行脚本之前,您的Mac上必须安装 Homebrew。打开终端 (zsh) 并逐步按照以下步骤操作。


3. 一次性完成实践环境搭建脚本 💻

此脚本将一次性完成 Podman 机器创建、Cilium 安装以及考试优化设置。

# ---------------------------------------------------------
# 专为Mac设计的CKAD实践环境搭建脚本
# ---------------------------------------------------------

# 设置CLI忽略注释 (防止复制粘贴时出错)
setopt INTERACTIVE_COMMENTS

# 0. 安装所需程序
brew install podman kubectl cilium-cli kind

# 1. 安装 Podman 并配置 VM
# 建议使用 6GB 内存以流畅运行 Cilium 和 2 个工作节点。
podman machine init --cpus 2 --memory 6144 
podman machine set --rootful # 配置管理员权限
podman machine start

# 2. 立即应用并永久保存环境变量
export KIND_EXPERIMENTAL_PROVIDER=podman
echo 'export KIND_EXPERIMENTAL_PROVIDER=podman' >> ~/.zshrc

# 3. 创建多节点集群配置文件
# 配置 1 个控制平面和 2 个工作节点,以支持 Taints/Affinity 实践。
cat <<EOF > kind-config.yaml
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
name: ckad-practice
nodes:
- role: control-plane
- role: worker
- role: worker
networking:
  disableDefaultCNI: true # 为直接安装 Cilium 禁用默认 CNI
EOF

# 4. 创建 Kind 集群
kind create cluster --config kind-config.yaml

# 5. 安装程序
brew install kubectl 
brew install cilium-cni

# 5. 安装 Cilium CLI 并配置 CNI
# 利用讲师感兴趣的 Cilium 创建高级网络实践环境。
cilium install --version 1.18.4

# 6. 验证应用
source ~/.zshrc
kubectl get nodes -w

4. 集群状态检查与总结 ✅

脚本执行完成后,请确保所有节点都处于 Ready 状态。

  • k get nodes: 应该显示 3 个节点。
  • cilium status: 检查 Cilium 是否正常运行。

现在,您的Mac已经做好了完美的“战斗准备”,随时可以解决CKAD问题!


5. [附录] 常见问题 (FAQ) ❓

Q: 提示内存不足。

A: 尝试使用 podman machine set –memory 8192 命令增加分配。8GB 会非常流畅。

Q: 我想删除集群并重新创建。

A: 您可以使用 kind delete cluster –name ckad-practice 命令干净地删除它。



Comments

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注