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 start

zongxun@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 --rootful

API 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 bash

set -o nounset

KUBE_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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/905809.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【制造业&盒子】食品物品检测系统源码&数据集全套:改进yolo11-MultiSEAMHead

改进yolo11-efficientViT等200全套创新点大全&#xff1a;食品物品检测系统源码&#xff06;数据集全套 1.图片效果展示 项目来源 人工智能促进会 2024.11.01 注意&#xff1a;由于项目一直在更新迭代&#xff0c;上面“1.图片效果展示”和“2.视频效果展示”展示的系统图片或…

性价比高的宠物净化器推荐!铲屎官们双十一不容错过的必备好物

秋天到了&#xff0c;我家毛孩子又开始爆毛&#xff01;一点都没有夸张&#xff0c;不仅家里到处都是它掉的毛&#xff0c;而且它自己也“膨胀”起来&#xff0c;身上都是脱落的毛发。 有时候没来得及清理&#xff0c;风一吹那些浮毛就飘到空气当中&#xff0c;呼吸的时候都感…

创建线程池时为什么不建议使用Executors进行创建

有没有想过为什么在创建线程池的时候我们一般都是通过ThreadPoolExecutor来创建线程池&#xff0c;很少使用Executors来创建线程池&#xff1f; 实践出真知&#xff0c;让我们具体在代码里面看看是什么原因~ 我们先用Executors来创建一个固定线程的线程池&#xff1a; Testpub…

基于STM32+华为云IOT设计的大棚育苗管理系统

文章目录 一、前言1.1 项目介绍【1】项目开发背景【2】设计实现的功能【3】项目硬件模块组成 1.2 设计思路1.3 系统功能总结1.4 开发工具的选择【1】设备端开发【2】上位机开发 1.5 模块的技术详情介绍【1】NBIOT-BC26模块【2】MQ135传感器【4】SHT30传感器【5】B1750传感器 二…

树莓集团:智慧园区的绿色生态与可持续发展

智慧园区作为现代信息技术与园区管理深度融合的新兴概念&#xff0c;已然成为当下备受瞩目的发展热点。简单来讲&#xff0c;它借助各类智能技术手段&#xff0c;全方位提升园区的管理、服务效率以及居住体验&#xff0c;绝非仅仅局限于一个物理空间&#xff0c;而是打造出一个…

心情追忆- AI dify工具

之前我独自开发了一个名为“心情追忆”的小程序&#xff0c;旨在帮助用户记录日常的心情变化及重要时刻。 项目需求来源->设计->前端(小程序)->后端->部署均由我一人完成. 上线一个月. 通过群聊分享等. 用户量也有了100多人. 我希望持续发展. 然后今天又产生了一…

.net framework 3.5sp1开启错误进度条不动如何解决

浏览器地址栏输入www.dnz9.com远程解决netframework问题 在Windows操作系统上安装或启用.NET Framework 3.5 SP1时&#xff0c;如果遇到进度条不动的问题&#xff0c;可能由多种原因引起。以下是一些可能的解决方案&#xff1a; 1. 使用Windows功能对话框 1.打开“控制面板”。…

微信小程序之流浪动物救助:爱与希望同行

作者介绍&#xff1a;✌️大厂全栈码农|毕设实战开发&#xff0c;专注于大学生项目实战开发、讲解和毕业答疑辅导。 &#x1f345;获取源码联系方式请查看文末&#x1f345; 推荐订阅精彩专栏 &#x1f447;&#x1f3fb; 避免错过下次更新 Springboot项目精选实战案例 更多项目…

深度解析:Android APP集成与拉起微信小程序开发全攻略

目录 一、背景以及功能介绍 二、Android开发示例 2.1 下载 SDK 2.2 调用接口 2.3 获取小程序原始Id 2.4 报错提示&#xff1a;bad_param 2.4.1 错误日志 2.4.2 解决方案 相关推荐 一、背景以及功能介绍 需求&#xff1a;产品经理需要APP跳转到公司的小程序(最好指定页…

linux 安装php扩展:xlswriter

这里以xlswriter扩展为例 进入官方扩展&#xff1a;https://pecl.php.net查询自己php对应版本的扩展包 下载扩展 wget https://pecl.php.net/get/xlswriter-1.5.5.tgz 解压扩展 tar -zxvf xlswriter-1.5.5.tgz 进入扩展目录 cd xlswriter-1.5.5 查找对应php版本的phpiz…

【99.9%解决】vue3+vite+typescript+vscode使用@alias路径别名配置不正确导致红色波浪线的解决办法

相信很多人设置了别名“”后在编辑器内产生了大量的红色波浪线&#xff0c;警告无法读取相关模块。网上针对这个问题都没有好好分析原因&#xff0c;并且提供真正理解之下的解决方案。我在历经各种失败后&#xff0c;总结出这篇文章&#xff0c;希望对大家有所帮助。 当然我因为…

Qt限制QGraphicsScene QGraphicsItem内部的移动范围

用过QGraphicsView的都知道&#xff0c;原点一般设定在view和item的中心&#xff0c;所以帮助文档和这个网友说的不一定跟我们对的上&#xff1a; 关于Qt限制QGraphicsScene内部Item的移动范围_qgraphicsitem限制移动范围-CSDN博客 首先&#xff0c;设定view的scenerect&…

前端 react 面试题(二)

文章目录 hooks的使用规则为什么hooks要确保在函数组件的最顶层,而不能放置在循环或者条件语句中。react的事件模型react的合成事件是如何实现的react事件传参,可以使用箭头函数或bind方法,这两种哪一种更好使用箭头函数:使用`bind`方法:react的事件模型和vue的区别React …

在IDEA2024中生成SpringBoot模板

1、创建新项目 根据自己想要创建的工程类型选择&#xff0c;这里创建的时web工程 生成项目&#xff1a; 注意&#xff1a;SpringBoot只会扫描主程序所在的包及其下面的子包

(实战)WebApi第10讲:Swagger配置、RESTful与路由重载

一、Swagger配置 1、导入SwashBuckle.AspNetCore包 2、在.NET Core 5框架里的startup.cs文件里配置swagger 3、在.NET Core 6框架里的Program.cs文件里配置swagger 二、RESTful风格&#xff1a;路由重载&#xff0c;HttpGet()括号中加参数 &#xff08;1&#xff09;原则&…

【AI工作流】Coze - 知识库全面指南:功能、应用场景及使用方法详解

文章目录 Coze知识库介绍功能概述应用场景更多文章功能特性丰富的数据源灵活的内容分割 使用限制创建并使用知识库 创建知识库并上传文本内容创建知识库并上传表格数据 维护知识库内容管理知识库管理分段单个分段操作&#xff1a;使用知识库在工作流内使用 Knowledge 节点 更多…

SWAT-MODFLOW地表水与地下水耦合实践技术

耦合模型被应用到很多科学和工程领域来改善模型的性能、效率和结果&#xff0c;SWAT作为一个地表水模型可以较好的模拟主要的水文过程&#xff0c;包括地表径流、降水、蒸发、风速、温度、渗流、侧向径流等&#xff0c;但是对于地下水部分的模拟相对粗糙&#xff0c;考虑到SWAT…

基于Matlab的图像去噪算法仿真

在信息化的社会里&#xff0c;图像在信息传播中所起的作用越来越大。所以&#xff0c;消除在图像采集和传输过程中而产生的噪声&#xff0c;保证图像受污染度最小&#xff0c;成了数字图像处理领域里的重要部分。 本文主要研究分析邻域平均法、中值滤波法、维纳滤波法及模糊小…

Java打包出现xxx.jar中没有主清单属性解决方案

BUG&#xff1a; xxx.jar中没有主清单属性 出现原因&#xff1a;在打包构建的jar目录内&#xff0c;可以看到有一个MANIFEST.MF文件&#xff0c;如图所示&#xff1a; 可以看到上面没有函数入口Main-Class属性&#xff0c;所以会出现xxx.jar中没有主清单属性&#xff0c;大概率…

庭田科技参与第四届计算机辅助焊接工程与增材制造国际研讨会

2024年10月18日&#xff0c;秋意盎然&#xff0c;魅力泉城济南迎来了一场科技与学术交融的盛宴——第四届计算机辅助焊接工程与增材制造国际研讨会(The 4th International Symposium on Computer-Aided Welding Engineering and Additive Manufacturing- CAWE-AM 2024)。此次盛…