当前位置: 首页 > news >正文

Podman+Minikube:MacBook 运行 Kubernetes 最佳实践

在这里插入图片描述

简介

在现代软件开发中,Kubernetes作为容器编排的事实标准,已成为云原生应用的核心组成部分。对于开发者来说,在本地环境中搭建和测试Kubernetes集群显得尤为重要。而在这方面,结合MacBook、Podman和Minikube的组合,提供了一种高效、便捷的解决方案。

首先,MacBook因其稳定的性能和优秀的用户体验,成为了许多开发者的首选设备。Podman作为一个无守护进程的容器管理工具,允许用户在不依赖Docker的情况下,运行和管理容器。它的优点在于提供了更强的安全性和灵活性,支持无根用户操作,并且与Docker CLI命令兼容,使得用户可以轻松上手。通过Podman,开发者可以在本地创建和管理容器,而无需担心传统容器引擎可能带来的复杂性。

Minikube则是为本地开发提供Kubernetes集群的理想工具。它允许用户在本地快速启动一个单节点的Kubernetes集群,适合开发和测试。Minikube不仅支持多种虚拟化驱动,包括VirtualBox、HyperKit等,还具备丰富的插件和扩展功能,能够轻松满足不同的开发需求。通过Minikube,开发者可以迅速体验Kubernetes的强大功能,从而提高开发效率。

将Podman和Minikube结合使用,可以充分发挥两者的优势。在MacBook上,用户只需安装这两个工具,便能快速构建一个完整的Kubernetes开发环境。无论是进行应用开发、测试,还是学习Kubernetes的使用,Podman和Minikube的组合都能提供一个灵活、可扩展的解决方案。

此外,这种组合也极大地简化了工作流程。开发者可以使用Podman创建和管理容器,使用Minikube进行Kubernetes集群的管理与测试。无论是构建微服务架构、进行CI/CD集成,还是进行环境一致性测试,这一套组合都能轻松应对。

安装 podman desktop

访问 https://podman.io/ 下载安装即可。
在这里插入图片描述

podman machine init
Looking up Podman Machine image at quay.io/podman/machine-os:5.2 to create VM
Getting image source signatures
Copying blob 12113a444353 done   |
Copying config 44136fa355 done   |
Writing manifest to image destination
12113a44435343a5cb2f6fc1c8cb4589b359bafd6123aab0c293e9cf884184ae
Extracting compressed file: podman-machine-default-arm64.raw: done
Machine init complete
To start your machine run:podman machine startzongxun@zongxundeMacBook-Pro ~ % podman machine start
Starting machine "podman-machine-default"This machine is currently configured in rootless mode. If your containers
require root permissions (e.g. ports < 1024), or if you run into compatibility
issues with non-podman clients, you can switch using the following command:podman machine set --rootfulAPI forwarding listening on: /var/run/docker.sock
Docker API clients default to this address. You do not need to set DOCKER_HOST.Machine "podman-machine-default" started successfully

创建minikube集群

$ cat start.sh#!/usr/bin/env bashset -o nounsetKUBE_NAME="minikube"
KUBE_VERSION="v1.30.0"minikube start -p "${KUBE_NAME}" --driver=podman --docker-env HTTP_PROXY=http://192.168.21.101:7890 --docker-env HTTPS_PROXY=http://192.168.21.101:7890 --container-runtime=cri-o --kubernetes-version="${KUBE_VERSION}" --memory=no-limit --cpus=no-limit
sh -x start.sh
+ set -o nounset
+ KUBE_NAME=minikube
+ KUBE_VERSION=v1.30.0
+ minikube start -p minikube --driver=podman --docker-env HTTP_PROXY=http://192.168.21.101:7890 --docker-env HTTPS_PROXY=http://192.168.21.101:7890 --container-runtime=cri-o --kubernetes-version=v1.30.0 --memory=no-limit --cpus=no-limit
😄  Darwin 15.1 (arm64) 上的 minikube v1.33.1
✨  根据用户配置使用 podman (实验性功能) 驱动程序
📌  Using rootless Podman driver
👍  Starting "minikube" primary control-plane node in "minikube" cluster
🚜  Pulling base image v0.0.44 ...
E1031 18:36:52.046778   61560 cache.go:189] Error downloading kic artifacts:  not yet implemented, see issue #8426
🔥  Creating podman container (CPUs=no-limit, Memory=no-limit) ...\
/
\🌐  找到的网络选项:▪ HTTP_PROXY=http://192.168.21.101:7890▪ HTTPS_PROXY=http://192.168.21.101:7890▪ NO_PROXY=localhost,127.0.0.1,10.96.0.0/12,192.168.59.0/24,192.168.49.0/24,192.168.39.0/24,*.bsgchina.com
🎁  正在 CRI-O 1.24.6 中准备 Kubernetes v1.30.0…▪ env HTTP_PROXY=http://192.168.21.101:7890▪ env HTTPS_PROXY=http://192.168.21.101:7890▪ env NO_PROXY=localhost,127.0.0.1,10.96.0.0/12,192.168.59.0/24,192.168.49.0/24,192.168.39.0/24,*.bsgchina.com▪ 正在生成证书和密钥...▪ 正在启动控制平面...▪ 配置 RBAC 规则 ...
🔗  配置 CNI (Container Networking Interface) ...
🔎  正在验证 Kubernetes 组件...▪ 正在使用镜像 gcr.io/k8s-minikube/storage-provisioner:v5
🌟  启用插件: storage-provisioner, default-storageclass
🏄  完成!kubectl 现在已配置,默认使用"minikube"集群和"default"命名空间

检查

$ kubectl get node
NAME       STATUS   ROLES           AGE   VERSION
minikube   Ready    control-plane   88s   v1.30.0$ kubectl version
Client Version: v1.30.3
Kustomize Version: v5.0.4-0.20230601165947-6ce0bf390ce3
Server Version: v1.30.0$ kubectl get pod -A
NAMESPACE     NAME                               READY   STATUS    RESTARTS   AGE
kube-system   coredns-7db6d8ff4d-pjb5q           1/1     Running   0          97s
kube-system   etcd-minikube                      1/1     Running   0          111s
kube-system   kindnet-89csd                      1/1     Running   0          96s
kube-system   kube-apiserver-minikube            1/1     Running   0          111s
kube-system   kube-controller-manager-minikube   1/1     Running   0          110s
kube-system   kube-proxy-25h9f                   1/1     Running   0          96s
kube-system   kube-scheduler-minikube            1/1     Running   0          110s
kube-system   storage-provisioner                1/1     Running   0          109s

http://www.mrgr.cn/news/63034.html

相关文章:

  • Servlet 3.0 新特性全解
  • vue自定义组件实现v-model双向数据绑定
  • 【CTF】 文件包含漏洞——data伪协议 【详】
  • LabVIEW Modbus通讯稳定性提升
  • 数据库(31)——事务
  • C语言日记 2024年10月31日
  • vmvare启动freebsd操作系统密码忘记了怎么办?
  • 哪里可以找到无版权抖音视频素材?
  • lanqiaoOJ 1110:小王子单链表 ← STL list
  • Python | Leetcode Python题解之第524题通过删除字母匹配到字典里最长单词
  • mysql 的内连接、左连接、右连接有什么区别?
  • 3000字帮你彻底搞懂Java抽象类与接口的区别(含JDK8接口新增三种方法与丰富案例)
  • 如何在Ubuntu 18.04上使用uWSGI和Nginx为Flask应用提供服务
  • 【数据结构-邻项消除】力扣1717. 删除子字符串的最大得分
  • 如何找到车在路上行驶的视频素材
  • 数据结构之顺序表(C语言)
  • Java | Leetcode Java题解之第523题连续的子数组和
  • JavaScript实现将阿拉伯数字转换成中文或大写中文
  • 通过软盘拷贝文件
  • 什么是指针数组 和 数组指针
  • antd 5X中 tree属性结构,自定义菜单,右键菜单实现方式
  • 使用Nginx作为反向代理和负载均衡器
  • Linux---cp命令
  • 判断101—200之间有多少个素数,并输出所有素数
  • 芯片校正LDO电压
  • 10.31日志