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

如何在本地使用Docker搭建和运行Kubernetes集群

Alt

文章目录

  • 1. 准备环境
  • 2. 安装Minikube
  • 3. 启动Minikube集群
  • 4. 验证集群
  • 5. 部署一个示例应用
    • 创建一个Deployment
    • 部署应用
    • 检查部署
  • 6. 访问应用
    • 创建一个Service
    • 部署Service
    • 获取Service的访问地址
  • 7. 清理资源
  • 结论

🎈个人主页:程序员 小侯
🎐CSDN新晋作者
🎉欢迎 👍点赞✍评论⭐收藏
✨收录专栏:云计算
✨文章内容:
🤝希望作者的文章能对你有所帮助,有不足的地方请在评论区留言指正,大家一起学习交流!🤗

在本文中,我们将探讨如何在本地环境中使用Docker运行Kubernetes(通常称为K8s)集群。本地运行Kubernetes可以为开发、测试和学习提供便利,同时避免了与云提供商的互动。我们将分步骤介绍如何设置和运行本地Kubernetes集群,并穿插一些关键代码示例。

1. 准备环境

首先,确保您的系统上已经安装了Docker。如果您尚未安装Docker,可以根据您的操作系统下载并安装Docker Desktop(对于Windows和macOS用户)或Docker CE(对于Linux用户)。
在这里插入图片描述

2. 安装Minikube

Minikube是一个用于在本地运行Kubernetes集群的工具。它是一个轻量级的Kubernetes发行版,适用于本地开发和测试。

使用以下命令安装Minikube:

curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
chmod +x minikube
sudo mv minikube /usr/local/bin/

3. 启动Minikube集群

一旦安装了Minikube,您可以使用以下命令启动本地Kubernetes集群:

minikube start

Minikube将在Docker中创建一个虚拟机,然后在该虚拟机中启动Kubernetes集群。

4. 验证集群

您可以运行以下命令来验证Minikube集群的状态:

kubectl cluster-info

您应该看到类似以下内容的输出:

Kubernetes control plane is running at https://192.168.49.2:8443
KubeDNS is running at https://192.168.49.2:8443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy

这表明您的本地Kubernetes集群已成功启动。

5. 部署一个示例应用

让我们通过部署一个简单的示例应用程序来进一步了解如何在Minikube上运行Kubernetes。

创建一个Deployment

创建一个名为nginx-deployment.yaml的文件,并将以下内容添加到文件中:

apiVersion: apps/v1
kind: Deployment
metadata:name: nginx-deployment
spec:replicas: 2selector:matchLabels:app: nginxtemplate:metadata:labels:app: nginxspec:containers:- name: nginximage: nginx:latestports:- containerPort: 80

此配置定义了一个名为nginx-deployment的Deployment,将运行两个Nginx容器。

部署应用

运行以下命令来部署Nginx应用程序:

kubectl apply -f nginx-deployment.yaml

检查部署

运行以下命令来检查Deployment的状态:

kubectl get deployments

您应该看到nginx-deployment的副本数为2。

6. 访问应用

要访问部署的Nginx应用程序,您需要创建一个Service以公开应用程序。

创建一个Service

创建一个名为nginx-service.yaml的文件,并将以下内容添加到文件中:

apiVersion: v1
kind: Service
metadata:name: nginx-service
spec:selector:app: nginxports:- protocol: TCPport: 80targetPort: 80type: NodePort

部署Service

运行以下命令来部署Service:

kubectl apply -f nginx-service.yaml

获取Service的访问地址

运行以下命令来获取Service的访问地址:

minikube service nginx-service --url

您将获得一个URL,可在浏览器中访问Nginx应用程序。

7. 清理资源

当您完成测试后,可以使用以下命令来清理Minikube集群和相关资源:

minikube delete

这将删除Minikube虚拟机以及关联的Kubernetes集群。

结论

通过这个示例,您学会了如何在本地环境中使用Docker和Minikube运行Kubernetes集群,并部署了一个简单的Nginx应用程序。本地运行Kubernetes对于开发、测试和学习Kubernetes非常有用,可以帮助您更好地理解和熟悉Kubernetes的功能和操作。希望这篇文章能帮助您入门本地Kubernetes的使用。

后记 👉👉💕💕美好的一天,到此结束,下次继续努力!欲知后续,请看下回分解,写作不易,感谢大家的支持!! 🌹🌹🌹

相关文章:

如何在本地使用Docker搭建和运行Kubernetes集群

文章目录 1. 准备环境2. 安装Minikube3. 启动Minikube集群4. 验证集群5. 部署一个示例应用创建一个Deployment部署应用检查部署 6. 访问应用创建一个Service部署Service获取Service的访问地址 7. 清理资源结论 🎈个人主页:程序员 小侯 🎐CSDN…...

每天几道Java面试题(第二天)

目录 第二幕、第一场)公司前台第二场)公司卫生间 友情提醒 背面试题很枯燥,加入一些戏剧场景故事人物来加深记忆。PS:点击文章目录可直接跳转到文章指定位置。 第二幕、 第一场)公司前台 【接待人员埃斯卡莱罗,面试…...

Java | 线程的生命周期和安全

不爱生姜不吃醋⭐️ 如果本文有什么错误的话欢迎在评论区中指正 与其明天开始,不如现在行动! 🌴线程的生命周期 sleep方法会让线程睡眠,睡眠时间到了之后,立马就会执行下面的代码吗? 答:不会&am…...

Bootstrap的一些主要作用

Bootstrap是一个流行的前端开发框架,它主要用于快速构建响应式、移动优先的网站和网络应用程序。它提供了一套CSS样式和JavaScript插件,帮助开发者轻松地创建漂亮、一致和交互丰富的用户界面。 以下是Bootstrap的一些主要作用: 响应式布局&a…...

网络编程套接字 | UDP套接字

前面的文章中我们叙述了网络编程套接字的一些预备知识点,从本文开始我们就将开始UDP套接字的编写。本文中的服务端与客户端都是在阿里云的云服务器进行编写与测试的。 udp_v1 在v1的版本中我们先来使用一下前面讲过得一些接口,简单的构建一个udp服务器…...

网络层IP协议

目录 前言 1.如何理解IP协议 2.IP协议格式 3.网段划分 4.特殊的IP地址 5.IP地址的数量限制 6.私有IP地址和公网IP地址 7.路由 总结 前言 在前面的文章中介绍了关于传输层常用的两个协议,UDP协议和TCP协议,当数据经过传输层之后,进入网…...

C++ Day4

目录 仿照string类&#xff0c;完成myString 类 思维导图 仿照string类&#xff0c;完成myString 类 #include <iostream> #include<cstring>using namespace std;class myString {private:char *str; //记录c风格的字符串int size; //记录…...

2024字节跳动校招面试真题汇总及其解答(二)

1. 微服务的好处,划分原则 微服务是软件架构的一种模式,它将应用程序划分为一系列小型、独立的服务。每个服务都提供一个单独的功能,并使用轻量级的接口相互通信。 微服务架构具有以下好处: 灵活性:微服务可以独立部署、扩展和更新,这使得它们能够随着业务需求的变化而…...

SpringBoot集成websocket(4)|(使用okhttp3实现websocket)

SpringBoot集成websocket&#xff08;4&#xff09;|&#xff08;使用okhttp3实现websocket&#xff09; 文章目录 SpringBoot集成websocket&#xff08;4&#xff09;|&#xff08;使用okhttp3实现websocket&#xff09;[TOC] 前言一、实现步骤1.实现步骤 二、websocket服务代…...

【MySQL】JDBC编程

MySQL-JDBC编程 文章目录 MySQL-JDBC编程Java的数据库编程JDBC工作原理JDBC的使用驱动包下载导入代码编写 Java的数据库编程 JDBC&#xff0c;即Java Database Connectivity&#xff0c;java数据库连接。是一种用于执行SQL语句的Java API&#xff0c;它是 Java中的数据库连接…...

数据结构——二叉树线索化遍历(前中后序遍历)

二叉树线索化 线索化概念&#xff1a; 为什么要转换为线索化 二叉树线索化是一种将普通二叉树转换为具有特殊线索&#xff08;指向前驱和后继节点&#xff09;的二叉树的过程。这种线索化的目的是为了提高对二叉树的遍历效率&#xff0c;特别是在不使用递归或栈的情况下进行遍历…...

GO语言网络编程(并发编程)Channel

GO语言网络编程&#xff08;并发编程&#xff09;Channel 1、Channel 1.1.1 Channel 单纯地将函数并发执行是没有意义的。函数与函数间需要交换数据才能体现并发执行函数的意义。 虽然可以使用共享内存进行数据交换&#xff0c;但是共享内存在不同的goroutine中容易发生竞态…...

c++day3

stack.h #ifndef STACK_H #define STACK_H #include <iostream> //#define max 128 using namespace std; class Stack { private:int* stack;//数组指针int top;//栈顶元素int max;//栈容量 public://构造函数Stack();//析构函数~Stack();//定义拷贝构造函数Stack(cons…...

算法通过村第六关-树青铜笔记|中序后序

文章目录 前言1. 树的常见概念2. 树的性质3. 树的定义与存储方式4. 树的遍历方式5. 通过序列构建二叉树5.1 前中序列恢复二叉树5.2 中后序列恢复二叉树 总结 前言 提示&#xff1a;瑞秋是个小甜心&#xff0c;她只喜欢被爱&#xff0c;不懂的去爱人。 --几米《你们 我们 他们》…...

C++动态内存管理+模板

&#x1f493;博主个人主页:不是笨小孩&#x1f440; ⏩专栏分类:数据结构与算法&#x1f440; C&#x1f440; 刷题专栏&#x1f440; C语言&#x1f440; &#x1f69a;代码仓库:笨小孩的代码库&#x1f440; ⏩社区&#xff1a;不是笨小孩&#x1f440; &#x1f339;欢迎大…...

SQL 注入漏洞攻击

文章目录 1. 介绍2. 无密码登录3. 无用户名无密码登录4. 合并表获取用户名密码 1. 介绍 假设你用自己的用户名和密码登录了一个付费网站&#xff0c;网站服务器就会查询一下你是不是 VIP 用户&#xff0c;而用户数据都是放在数据库中的&#xff0c;服务器通常都会向数据库进行查…...

一篇五分生信临床模型预测文章代码复现——Figure 10.机制及肿瘤免疫浸润(四)

之前讲过临床模型预测的专栏,但那只是基础版本,下面我们以自噬相关基因为例子,模仿一篇五分文章,将图和代码复现出来,学会本专栏课程,可以具备发一篇五分左右文章的水平: 本专栏目录如下: Figure 1:差异表达基因及预后基因筛选(图片仅供参考) Figure 2. 生存分析,…...

Transformer 模型中常见的特殊符号

Transformer 模型中常见的特殊符号 通过代码一起理解一下 Transformer 模型中常见的特殊符号&#xff0c; 示例代码&#xff0c; special_tokens{unk_token: [UNK], sep_token: [SEP], pad_token: [PAD], cls_token: [CLS], mask_token: [MASK]}这段代码是定义了一个字典spec…...

C# halcon SubImage的使用

SubImage(HObject imageMinuend, HObject imageSubtrahend, out HObject imageSub, HTuple mult, HTuple add) 公式 x1imageMinuend此行此列的灰度 x2imageSubtrahend此行此列的灰度 则imageSub此行此列的灰度为;(x1-x2)*multadd 溢出裁剪 以byte图为例&#xff0c;小于0&a…...

每天几道Java面试题:异常机制(第三天)

目录 第三幕、第一场&#xff09;异常机制面试题 友情提醒 背面试题很枯燥&#xff0c;加入一些戏剧场景故事人物来加深记忆。PS:点击文章目录可直接跳转到文章指定位置。 第三幕、 第一场&#xff09;异常机制面试题 【面试官老吉&#xff0c;面试官潘安&#xff0c;面试者…...

基于RAG架构的私有知识库问答系统:从原理到部署实战

1. 项目概述&#xff1a;一个为LLM应用量身定制的开源知识库 如果你正在尝试构建一个基于大语言模型&#xff08;LLM&#xff09;的问答机器人、智能客服或者文档分析工具&#xff0c;那么你大概率会遇到一个核心难题&#xff1a;如何高效、稳定地将你自己的知识库&#xff08;…...

【湖南师范大学主办 | ACM出版,检索快且稳定 | 往届均已见刊并完成EI、Scopus检索】第三届智慧教育与计算机技术国际学术会议 (IECT 2026)暨十三届第四期“麓峰”交叉科学论坛

已通过ACM出版&#xff0c;ISBN号&#xff1a;979-8-4007-2365-0 教育方向结合&#xff1a;计算机、信息技术、人工智能、多媒体技术、大数据等主题均可投递 第三届智慧教育与计算机技术国际学术会议 (IECT 2026)暨十三届第四期“麓峰”交叉科学论坛 2026 3rd International…...

从理论到仿真:深入解读Walker星座设计,用STK验证你的卫星通信作业

从理论到仿真&#xff1a;深入解读Walker星座设计&#xff0c;用STK验证你的卫星通信作业 卫星通信系统的设计从来不是纸上谈兵。当你在教科书上看到那些优美的轨道方程和覆盖计算公式时&#xff0c;是否想过如何将它们转化为真实的系统性能验证&#xff1f;这正是STK&#xff…...

2026健康一体机生产厂家选型与厂商能力全景分析

2026健康一体机生产厂家选型与厂商能力全景分析健康一体机是一种集多项健康检测与管理功能于一体的智能终端设备&#xff0c;可快速完成身高、体重、血压、血糖、血氧、心率、心电、体温、BMI、脂肪含量、基础代谢率等基础体征测量。设备支持数据自动记录、建档、上传与智能分析…...

WARPED框架:单目RGB驱动的机器人视觉运动策略学习

1. WARPED框架&#xff1a;单目RGB驱动的机器人视觉运动策略学习新范式在机器人模仿学习领域&#xff0c;如何高效获取高质量的示范数据一直是个核心挑战。传统方法通常需要昂贵的多视角相机阵列、深度传感器或专用硬件设备&#xff0c;这不仅增加了部署成本&#xff0c;更限制…...

5分钟Git指南

Git——一个版本控制系统 了解Git当你建立了一个Git版本库&#xff0c;那么存放.git&#xff08;也就是版本库&#xff09;的文件夹就被称为工作区&#xff0c;.git内部有一个暂存区&#xff0c;一个叫做master的分支&#xff0c;一个HEAD指针能够指向分支中不同版本的文件&…...

从手动导入到自动溯源:Perplexity提问→Mendeley定位原文→高亮引用段落→一键生成BibTeX(全流程图解)

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;从手动导入到自动溯源&#xff1a;Perplexity提问→Mendeley定位原文→高亮引用段落→一键生成BibTeX&#xff08;全流程图解&#xff09; 科研写作中&#xff0c;文献溯源与引用管理长期面临“知其然不…...

Claude Code环境变量配置全解析:从入门到精通

1. 项目概述&#xff1a;Claude Code 环境变量配置生成器如果你和我一样&#xff0c;是 Claude Code 的深度用户&#xff0c;那你一定经历过这样的时刻&#xff1a;面对一个复杂的开发任务&#xff0c;想调整一下模型的思考深度&#xff08;Effort Level&#xff09;来平衡成本…...

5V/7.4V/12V三个升压档位!智能门锁供电选它

在智能门锁硬件设计与实操过程中&#xff0c;常见的痛点是锂电池的常见电压&#xff08;3.7V、3.2V&#xff09;与门锁电机的工作电压需求&#xff08;5V、7.4V、甚至12V&#xff09;不匹配&#xff0c;电压不足直接导致电机无法正常驱动&#xff0c;进而影响门锁开关功能的实现…...

12-分布式系统测试-缓存-注册中心与链路追踪验证

分布式系统测试&#xff1a;缓存、注册中心与链路追踪验证上篇咱们搞定了消息队列测试&#xff0c;今天继续深入分布式系统的其他组件——Redis缓存、服务注册中心、分布式链路追踪。这些"基础设施"的测试往往被忽略&#xff0c;但出了问题定位起来最头疼。一、Redis…...