在现有 Docker Desktop 环境下安装与配置独立 Kubernetes环境(Mac)
在现有 Docker Desktop 环境下安装与配置独立 Kubernetes 集群环境
目标
- 在已安装Docker Desktop自带Kubernetes的情况下,搭建一个独立 Kubernetes 集群环境。
- 配置独立的
kubectl工具,使其默认管理独立的 Kubernetes 集群。 - 保留 Docker Desktop 的 Kubernetes 环境,确保与独立环境互不干扰。
- 实现多个 Kubernetes 环境之间的灵活切换。
一、前提条件
在开始之前,请确保满足以下条件:
-
已安装 Docker Desktop,并启用了 Docker Desktop 的 Kubernetes 功能(如果需要)。
-
操作系统为 macOS,并已安装 Homebrew(包管理工具)。
-
系统工具检查:
- 确保
curl和brew可用:curl --version brew --version
- 确保
-
注意 Docker Desktop 的
kubectl工具:
默认情况下,Docker Desktop 自带的kubectl工具位于/usr/local/bin,并通过软链接指向 Docker Desktop 安装目录。如果希望安装独立的kubectl工具并避免冲突,可以通过重命名 Docker 的kubectl来解决。
二、重命名 Docker 的 kubectl
为了让独立安装的 kubectl 成为默认管理工具,同时保留 Docker Desktop 的 Kubernetes 功能,我们需要将 Docker 自带的 kubectl 软链接重命名为 kubectl-docker。
步骤
-
重命名 Docker 的
kubectl:sudo mv /usr/local/bin/kubectl /usr/local/bin/kubectl-docker此操作不会删除 Docker Desktop 的
kubectl,而是将其重命名,以便后续使用。 -
验证重命名是否成功:
ls -l /usr/local/bin/kubectl-docker输出应类似如下:
lrwxr-xr-x 1 root wheel 55B 12 9 2021 /usr/local/bin/kubectl-docker -> /Applications/Docker.app/Contents/Resources/bin/kubectl
至此,我们已经完成了重命名 Docker 的 kubectl,避免其与独立安装的 kubectl 工具产生冲突。
三、安装独立的 kubectl 工具
kubectl 是 Kubernetes 的核心命令行工具,用于管理 Kubernetes 集群。
安装命令
在 macOS 系统上安装和设置 kubectl
四、安装 Kubernetes 集群
根据需求选择以下几种常用的 Kubernetes 本地集群工具之一:
方案 1:使用 Minikube
Minikube 是一个轻量级工具,用于在本地快速启动单节点 Kubernetes 集群,适合开发和测试用途。
Minikube使用
安装步骤
-
安装 Minikube:
brew install minikube -
启动 Minikube 集群:
minikube start默认情况下,Minikube 使用 Docker 作为容器运行时。如果需要其他运行时(如
containerd或CRI-O),可以通过以下方式启动:minikube start --container-runtime=containerd -
验证 Minikube 集群是否成功启动:
kubectl config get-contexts输出应包含
minikube的上下文:CURRENT NAME CLUSTER AUTHINFO NAMESPACEminikube minikube minikube -
设置
kubectl使用 Minikube 的上下文:kubectl config use-context minikube -
验证 Kubernetes 节点状态:
kubectl get nodes应看到 Minikube 的节点状态为
Ready。
方案 2:使用 Kind
Kind(Kubernetes IN Docker)是一种使用 Docker 容器构建 Kubernetes 集群的工具,非常适合多节点集群的模拟。
kind使用
安装步骤
-
安装 Kind:
brew install kind -
创建 Kind 集群:
kind create cluster如果需要多节点集群,可以使用以下配置文件创建集群:
cat <<EOF > kind-config.yaml kind: Cluster apiVersion: kind.x-k8s.io/v1alpha4 nodes:- role: control-plane- role: worker- role: worker EOF kind create cluster --config kind-config.yaml -
验证 Kind 集群是否成功启动:
kubectl cluster-info --context kind-kind输出应显示集群的控制平面和服务地址。
-
切换到 Kind 集群的上下文:
kubectl config use-context kind-kind -
验证节点状态:
kubectl get nodes
方案 3:使用 kubeadm 安装(适合更接近生产的环境)
kubeadm 是 Kubernetes 官方提供的工具,用于快速部署一个多节点的 Kubernetes 集群。
你可以选择在虚拟机或者裸金属机器上安装 Kubernetes,配置 kubeadm 初始化集群。
<--------- 待更新 --------->
五、在多个 Kubernetes 环境之间切换
Docker Desktop 和独立安装的 Kubernetes 可以共存,你可以灵活切换它们的上下文。
-
切换到 Docker Desktop 的上下文:
kubectl-docker config use-context docker-desktop -
切换到 Minikube 的上下文:
kubectl config use-context minikube -
切换到 Kind 的上下文:
kubectl config use-context kind-kind -
查看当前使用的上下文:
kubectl config current-context
六、验证 Kubernetes 环境
为了确保 Kubernetes 工作正常,可以部署一个简单的示例应用。
-
部署示例 Deployment:
kubectl create deployment hello-world --image=nginx -
查看 Pod 状态:
kubectl get pods -
暴露服务端口:
kubectl expose deployment hello-world --type=NodePort --port=80 -
获取服务的 NodePort:
kubectl get svc -
如果使用 Minikube,可以通过以下命令获取 Minikube 的 IP 地址:
minikube ip然后访问
http://<minikube-ip>:<NodePort>,应看到 NGINX 默认页面。
七、总结
本文内容:
- 安装独立的 Kubernetes 集群(如 Minikube 或 Kind)。
- 配置独立的
kubectl工具,并避免与 Docker Desktop 冲突。 - 实现多个 Kubernetes 环境(如 Minikube、Kind 和 Docker Desktop)之间的自由切换。
- 验证 Kubernetes 环境运行正常,并部署了示例应用。
相关文章:
在现有 Docker Desktop 环境下安装与配置独立 Kubernetes环境(Mac)
在现有 Docker Desktop 环境下安装与配置独立 Kubernetes 集群环境 目标 在已安装Docker Desktop自带Kubernetes的情况下,搭建一个独立 Kubernetes 集群环境。配置独立的 kubectl 工具,使其默认管理独立的 Kubernetes 集群。保留 Docker Desktop 的 Ku…...
Linux探秘坊-------3.开发工具详解(1)
1 初识vim编辑器 创建第一个vim编辑的代码 1.新建文件 2.使用vim打开 3.打开默认是命令模式,写代码需要在屏幕上输出“i”字符 1.写完代码后要按Esc键退出到指令模式2.再按shift:wq即可保存并退出vim (因为不支持鼠标,通常 使用键盘上的箭…...
Spring Boot整合Thymeleaf、JDBC Template与MyBatis配置详解
本文将详细介绍如何在Spring Boot项目中整合Thymeleaf模板引擎、JDBC Template和MyBatis,涵盖YAML配置、依赖版本匹配、项目结构设计及代码示例。 一、版本兼容性说明 Spring Boot版本与Java版本对应关系 Spring Boot 2.x:支持Java 8、11(推…...
白玉微瑕:闲谈 SwiftUI 过渡(Transition)动画的“口是心非”(下)
概述 秃头小码农们都知道,SwiftUI 不仅仅是一个静态 UI 构建框架那么简单,辅以海量默认或自定义的动画和过渡(Transition)特效,我们可以将 App 界面的绚丽升华到极致。 不过,目前 SwiftUI 中的过渡&#x…...
论文:深度可分离神经网络存内计算处理芯片
引言:SRAM - CIM芯片在处理深度可分离神经网络时面临的挑战 深度可分离卷积(Depthwise separable convolution, DSC)由逐深度卷积(DW)和逐点卷积(PW)组成,逐深度卷积用于提取空间特征ÿ…...
hdrnet,Deep Bilateral Learning for Real-Time Image Enhancement解读
论文、代码和ppt地址:Deep Bilateral Learning for Real-Time Image Enhancement 论文使用的数据集: HDR: 这是一个复杂的摄影管道,包括色彩校正、自动曝光、去雾和色调映射等操作。 MIT “FiveK” 数据集: 这个数据集由 Bychkovsky 等人 提…...
Android系统开发(十五):从 60Hz 到 120Hz,多刷新率进化简史
引言 欢迎来到“帧率探索实验室”!今天,我们要聊聊 Android 11 中对多种刷新率设备的支持。你可能会问:“这和我写代码有什么关系?”别急,高刷新率不仅仅让屏幕更顺滑,还会直接影响用户体验。想象一下&…...
js判断一个数组对象中是否有相同的值
let userTitleLevelList[{title:医生,code:20},{title:老师,code:21}]; 如果一个数组对象格式如上面。如果有一样的对象就提示。即:title和code都是一样的内容、 const hasDuplicate userTitleLevelList.some((item, index, array) > { return array.filter(…...
基于深度学习的视觉检测小项目(十五) 用户的登录界面
用户管理离不开的是消息框(QMessageBox)和对话框(QDialog),比如对话框用于用户名和密码输入,消息框用于提示登录成功、密码错误。 • 基础知识:PySide6(PyQT5)的常用对话…...
redis-排查命中率降低问题
1.命中率降低带来的问题 高并发系统,当命中率低于平常的的运行情况,或者低于70%时,会产生2个影响。 有大量的请求需要查DB,加大DB的压力;影响redis自身的性能 不同的业务场景,阈值不一样,一般…...
ui文件转py程序的工具
源博客连接: PyCharm中利用外部工具uic转成的py文件,里面全是C代码,并非python类型的代码,导致大量报错。。。_pyside6-uic为什么把ui转为了c-CSDN博客 如果想把ui文件转为py文件,首先设置pycharm的外部工具…...
Alluxio 联手 Solidigm 推出针对 AI 工作负载的高级缓存解决方案
作者:Wayne Gao, Yi Wang, Jie Chen, Sarika Mehta Alluxio 作为全球领先的 AI 缓存解决方案供应商, 提供针对 GPU 驱动 AI 负载的高速缓存。其可扩展架构支持数万个节点,能显著降低存储带宽的消耗。Alluxio 在解决 AI 存储挑战方面的前沿技…...
Oracle 数据库常见字段类型大全及详细解析
在工作期间会遇到数据库建表的业务,经常会使用复制粘帖等操作,而不清楚数据库的字段类型。本文记录了 Oracle 数据库常见字段类型,根据不同的数据需求,可以选择不同的字段类型来存储数据。 文章目录 一、字符类型(Char…...
U3D的.Net学习
Mono:这是 Unity 最初采用的方式,它将 C# 代码编译为中间语言 (IL),然后在目标平台上使用虚拟机 (VM) 将其转换为本地机器码执行。 IL2CPP:这是一种较新的方法,它会将 C# 代码先编译为 C 代码,再由 C 编译器…...
Tomcat下载配置
目录 Win下载安装 Mac下载安装配置 Win 下载 直接从官网下载https://tomcat.apache.org/download-10.cgi 在圈住的位置点击下载自己想要的版本 根据自己电脑下载64位或32位zip版本 安装 Tomcat是绿色版,直接解压到自己想放的位置即可 Mac 下载 官网 https://tomcat.ap…...
adb常用指令(完整版)
1、adb devices 查看是否连接到设备 2、adb install [-r] [-s] 安装app,-r强制,-s安装sd卡上 3、adb uninstall [-k] 卸载app,-k保留配置和参数 4、adb push 把本地文件上传设备 5、adb pull 下载文件到本地 6、cd D:\sdk\platform-tool…...
大数据学习(36)- Hive和YARN
&&大数据学习&& 🔥系列专栏: 👑哲学语录: 承认自己的无知,乃是开启智慧的大门 💖如果觉得博主的文章还不错的话,请点赞👍收藏⭐️留言📝支持一下博主哦ᾑ…...
C# ASP.NET MVC项目内使用ApiController
1.在App_Start文件夹新建WebApiConfig.cs文件,建立webApi路由的注册方法。 using System.Web.Http;namespace PrivilegeManager {public class WebApiConfig{public static void Register(HttpConfiguration config){config.MapHttpAttributeRoutes();config.Route…...
Kafka 入门与应用实战:吞吐量优化与与 RabbitMQ、RocketMQ 的对比
前言 在现代微服务架构和分布式系统中,消息队列作为解耦组件,承担着重要的职责。它不仅提供了异步处理的能力,还能确保系统的高可用性、容错性和扩展性。常见的消息队列包括 Kafka、RabbitMQ 和 RocketMQ,其中 Kafka 因其高吞吐量…...
“推理”(Inference)在深度学习和机器学习的语境
“推理”(Inference)在深度学习和机器学习的语境中,是指使用经过训练的模型对新数据进行预测的过程。将其简单地理解为“模型的应用阶段”。在这一阶段,我们不再进行模型训练,而是利用已训练好且保存下来的模型来获取对…...
从怀疑到真香!2026我日常办公离不开的这款在线文字转换器太好用了
刚入职那半年我踩过太多坑:一周三次新人培训,怕漏记知识点全程录音,下课手动整理1小时录音要熬3小时,知识点散得根本没法复习;部门周会做完记录,散会就要我出整理好的纪要,赶工赶得饭都吃不上&a…...
保姆级教程:在ArcGIS Pro插件中集成你的自定义工具箱(以‘消除重复要素’为例)
从脚本到按钮:ArcGIS Pro插件开发实战指南 在GIS日常工作中,我们常常会遇到一些重复性的数据处理任务。比如数据质检环节的"消除重复要素"操作,虽然可以通过Python脚本实现,但每次都需要打开IDE或Python窗口执行代码&am…...
告别沉浸式白屏!UniApp中iOS/Android底部安全区与顶部状态栏颜色自定义全攻略
告别沉浸式白屏!UniApp中iOS/Android底部安全区与顶部状态栏颜色自定义全攻略当开发者尝试在UniApp中实现沉浸式设计时,往往会遇到一个令人头疼的问题——默认的白色安全区和状态栏导致界面元素(如电池图标、信号强度)几乎不可见。…...
第三幕 御酒掺土,江山为祭
金牌监制,您这一刀改得极其精准,直接把整部戏的格局从“江湖恩怨”拉升到了“家国博弈”的层面!确实,如果只谈慈悲,唐三藏只是个高僧;但如果加上李世民的重托和大唐的国运,他就是一个背负着沉重…...
告别拍脑袋规划!用ArcGIS做绿道选线:如何科学量化坡度、水域、道路成本并加权计算
科学规划绿道的ArcGIS高阶技法:从成本栅格构建到最优路径生成绿道规划从来不是简单的"两点之间直线最短",而是需要综合考虑地形、生态、人文等多维因素的复杂决策过程。传统规划中常见的"拍脑袋"决策方式,往往导致建成后…...
Office RibbonX Editor:让Office界面定制变得像搭积木一样简单
Office RibbonX Editor:让Office界面定制变得像搭积木一样简单 【免费下载链接】office-ribbonx-editor An overhauled fork of the original Custom UI Editor for Microsoft Office, built with WPF 项目地址: https://gitcode.com/gh_mirrors/of/office-ribbon…...
OpenClaw 连接阿里云百炼图文教程
OpenClaw 连接阿里云百炼图文教程 前置准备 已安装并可以正常打开 OpenClaw Windows。 OpenClaw 顶部 Gateway 状态保持在线。 已准备好可正常登录的阿里云账号。 可以正常访问阿里云百炼登录地址:https://bailian.console.aliyun.com/cn-beijing#/home 建议提…...
MBTI性格测试
简介 MBTI(Myers‑Briggs Type Indicator,迈尔斯‑布里格斯类型指标)是基于荣格心理类型理论发展出的性格类型工具,由凯瑟琳库克布里格斯及其女儿伊莎贝尔布里格斯迈尔斯创建。它通过四对偏好维度将个体的认知与行为倾向归纳为 16…...
厨房空调技术白皮书:从风冷到水冷,制冷系统在厨房场景中的工程化演进
厨房空调是暖通行业近三年技术迭代最密集的细分品类。从最初的"凉霸"(本质是风扇),到风冷分体式,再到水冷一体式,每代技术都在解决上一代没有覆盖的用户痛点。本文以工程技术视角,梳理四代厨房制…...
谷氨酸发酵过程的软测量建模【附模型】
✨ 长期致力于软测量、谷氨酸发酵、动力学模型、支持向量机、高斯过程、变量选择、异常状态研究工作,擅长数据搜集与处理、建模仿真、程序编写、仿真设计。 ✅ 专业定制毕设、代码 ✅ 如需沟通交流,点击《获取方式》 (1)多阶段高斯…...
