基于Docker、Minikube在PC端构建K8S试验环境

news2024/11/17 13:38:14

在桌面电脑上使用Docker和Minikube构建Kubernetes(K8S)试验环境,为学习和测试提供了一个理想的平台。Docker的容器化技术允许在隔离的环境中运行应用,而Minikube则简化了在单节点上部署和管理Kubernetes集群的过程。这种组合使得个人用户能够在本地机器上轻松搭建和操作一个K8S环境,无需复杂的硬件设施。

通过安装Docker和Minikube,我们可以快速启动一个基本的Kubernetes集群,进行应用部署、性能监控和功能实践等操作。这种方法特别适合初学者和开发者,可以在这个环境中实验不同的配置和应用,而无需担心高成本或影响到生产环境。

尽管这种在PC端构建的K8S试验环境在性能和规模上有所限制,但它提供了一个低成本、高效的学习和测试平台。对于希望深入了解Kubernetes工作原理和应用的个人来说,是一个极好的起点。

下面是安装部署过程供大家参考:

1. 安装Docker Desktop

  1. 下载Docker Desktop:
    • 访问 Docker官网安装链接并下载适用于Windows的Docker Desktop安装程序。
  2. 安装Docker Desktop:
    • 双击下载的安装文件并遵循安装向导的指示完成安装。
    • 安装完成后,启动Docker Desktop,示例如下:
  3. 配置Docker Desktop:
    • 右击系统托盘中的Docker图标,选择“Settings”。
    • 确保在“General”选项中启用了“Use WSL 2 based engine”(如果你的系统支持)。
    • 在“Resources”中,根据需要配置CPU和内存分配。

2. 安装Minikube

  1. 安装Hyper-V和Windows Subsystem for Linux (WSL):

    • 打开“控制面板” -> “程序” -> “启用或关闭Windows功能”。
    • 勾选“Hyper-V”和“适用于Linux的Windows子系统”,然后按照提示重启电脑。
  2. windows 10下载并安装Minikube:

    • 访问 Minikube官网 并下载Windows版的Minikube安装程序,或者直接从这个已经下载好的CSDN链接来下载:【免费】K8S集群的windows单机学习环境minikube-installer.exe资源-CSDN文库
    • 将下载的文件移动到一个你可以访问的目录(例如 C:\minikube),并将该目录添加到系统的环境变量PATH中。
    • 或者采用PowerShell脚本直接来下载,并设置到系统中路径:
New-Item -Path 'c:\' -Name 'minikube' -ItemType Directory -Force
Invoke-WebRequest -OutFile 'c:\minikube\minikube.exe' -Uri 'https://github.com/kubernetes/minikube/releases/latest/download/minikube-windows-amd64.exe' -UseBasicParsing
$oldPath = [Environment]::GetEnvironmentVariable('Path', [EnvironmentVariableTarget]::Machine)
if ($oldPath.Split(';') -inotcontains 'C:\minikube'){
  [Environment]::SetEnvironmentVariable('Path', $('{0};C:\minikube' -f $oldPath), [EnvironmentVariableTarget]::Machine)
}

    MAC OS 下载和安装

 amd64版:【免费】用于在MAC本地学习K8S的minikube-darwin-amd64资源-CSDN文库

sudo install minikube-darwin-amd64 /usr/local/bin/minikube

 arm64版:【免费】用于在MAC本地学习K8S的集群安装minikube-darwin-arm64资源-CSDN文库

sudo install minikube-darwin-arm64 /usr/local/bin/minikube

3.启动Minikube

打开命令提示符或PowerShell,运行 minikube start

minikube start

命令执行之后如下图:

 4、和Minikube集群进行交互

安装kubectl

在Windows上,你可以下载kubelctl.exe文件,将其放在minikube.exe相同的文件夹下。

链接:https://pan.quark.cn/s/3494d8c859fb
提取码:MU8B

在macOS或Linux上,通常可以使用包管理器,如brew install kubectl。
验证安装:运行kubectl version --client来验证安装。

测试获取集群上的pod

kubectl get pod -A

执行结果:

5、在minikube上部署应用

创建一个示例deployment并在端口 8080 上公开它:

kubectl create deployment hello-minikube --image=kicbase/echo-server:1.0
kubectl expose deployment hello-minikube --type=NodePort --port=8080

 执行结果如下:

查看Service,执行如下语句:

kubectl get services hello-minikube

执行结果如下: 

 

将服务端口转发,执行如下语句: 

kubectl port-forward service/hello-minikube 7080:8080

执行结果如下: 

 

然后在浏览器栏中输入: http://localhost:7080/.

返回sample service 返回的结果

6、管理minikube集群

 

停止minikube

minikube stop

改变缺省的内存限制(需要重启)

minikube config set memory 9001

浏览易于安装的minikube插件

minikube addons list

 

创建第二个集群(可以指定版本)

minikube start -p aged --kubernetes-version=v1.16.1

启动第二个节点 

minikube start --nodes 2 -p multinode-demo

执行结果示例:

 

查看node情况:

kubectl get node

看到,系统返回两个节点信息 ,Minikube也可以模拟K8S的多node的场景。

 

 查看node状态信息

minikube status -p multinode-demo

返回结果如下: 

 

删除所有的集群

minikube delete --all

7、Minikube Dashboard

 启动Dashboard,执行如下语句:

minikube dashboard

系统自动启动浏览器Dashboard界面,如下:

后面大家可以充分的利用这个本地化的K8S学习和试验云原生相关的内容啦。

8、附录常见的Kubectl 命令

  1. 获取资源信息:

    • kubectl get pods:列出所有 pods。
    • kubectl get services:列出所有服务。
    • kubectl get deployments:列出所有部署。
    • kubectl get nodes:列出所有节点。
  2. 创建和删除资源:

    • kubectl create -f <file.yaml>:根据 YAML 文件创建资源。
    • kubectl delete -f <file.yaml>:根据 YAML 文件删除资源。
    • kubectl delete pod <pod-name>:删除指定的 pod。
  3. 描述和查看资源详情:

    • kubectl describe pod <pod-name>:显示 pod 的详细信息。
    • kubectl logs <pod-name>:查看 pod 的日志。
    • kubectl exec -it <pod-name> -- /bin/bash:进入 pod 的交互式 shell。
  4. 资源的编辑和更新:

    • kubectl edit pod <pod-name>:编辑 pod 的定义。
    • kubectl apply -f <file.yaml>:应用 YAML 文件中的更改。
  5. 命名空间操作:

    • kubectl get namespaces:列出所有命名空间。
    • kubectl create namespace <namespace-name>:创建新的命名空间。
    • kubectl config set-context --current --namespace=<namespace-name>:切换到指定的命名空间。
  6. 调试和诊断:

    • kubectl top pod:显示 pods 的资源使用情况。
    • kubectl rollout status deployment/<deployment-name>:查看部署的状态。
    • kubectl rollout undo deployment/<deployment-name>:回滚到上一个部署版本。
  7. 配置和安全:

    • kubectl config view:查看 kubectl 配置。
    • kubectl get secrets:列出所有的密钥。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Apache 辅助系统工具

一丶Apache Sqoop 1.Sqoop的介绍&#xff1a; Sqoop的工作机制是将导入或者导出的命令翻译成MapReduce实现&#xff0c;Sqoop可以理解为&#xff1a;SQL到Hadoop或者Hadoop到SQL 2.Sqoop的安装 配置文件修改&#xff1a; cd $SQOOP_HOME/conf mv sqoop-env-template.sh sqo…

C语言第八弹---一维数组

✨个人主页&#xff1a; 熬夜学编程的小林 &#x1f497;系列专栏&#xff1a; 【C语言详解】 【数据结构详解】 一维数组 1、数组的概念 2、⼀维数组的创建和初始化 2.1、数组创建 2.2、数组的初始化 2.3、数组的类型 3、⼀维数组的使用 3.1、数组下标 3.2、数组元素…

从c到c++——4:引用

前言 在《水浒传》中&#xff0c;梁山一百零八好汉&#xff0c;每个人都有一个响亮的外号&#xff0c;比如&#xff0c;当我们提到李逵和提到黑旋风提到铁牛时&#xff0c;本质上我们指的是同一个人。黑旋风江州劫法场&#xff0c;那李逵,铁牛也有江州劫法场的经历。引用也是…

【3.6数据库系统】数据库备份与恢复技术

目录 1.数据备份1.1备份方式1.2备份类型 2.数据库故障与恢复 1.数据备份 1.1备份方式 △冷备份也称为静态备份&#xff0c;别是将数据库正常关闭&#xff0c;在停止状态下&#xff0c;将数据库的文件全部备份(复制)下来。 △热备份也称为动态备份&#xff0c;是利用备份软件&a…

E7数据库备份和恢复

E7数据库备份和恢复 一、实验目的 在Mysql上&#xff0c;学习如何备份数据库和恢复的各种方法。 二、实验要求: 1、基本硬件配置:英特尔Pentium III 以上,大于4G内存&#xff1b; 2、软件要求:Mysql&#xff1b; 3、时间:1小时&#xff1b; 4、撰写实验报告并按时提交。 三、…

常用MQ产品的对比

常用MQ产品的对比 本文整理了常用MQ之间的对比&#xff0c;旨在帮助大家在实际项目中选择MQ产品。 消息队列对比参照表 注&#xff1a; 对照表来自&#xff1a;消息队列对比参照表 &#xff0c;对比维度比较全面&#xff0c;结果个人比较认同&#xff0c;强烈建议参考。 Rock…

【OCC学习23】使用Draw探索OCC API 【完结】

对于OCC应用开发者来说&#xff0c;OCC的文档虽然不错&#xff0c;但针对具体的需求找到合适的API还是得不断摸索。我发现看Draw的代码是探索OCC API使用的最佳路径。掌握根据Draw命令查找对应代码就能高效找到解决方案。所以这是本系列的最后一篇分享了&#xff0c;个人感觉OC…

TarGAN:多模态医学图像转换GAN

TarGAN 核心思想网络结构 核心思想 论文&#xff1a;https://arxiv.org/abs/2105.08993 代码&#xff1a;https://github.com/2165998/TarGAN 解决的问题&#xff1a;传统多模态医学图像转换通常&#xff0c;在生成高质量图像方面存在问题&#xff0c;特别是在关键目标区域或…

nginx安装ssl模块http_ssl_module

查看nginx安装的模块 /usr/local/nginx/sbin/nginx -V若出现“–with-http_ssl_module”说明已经安装过&#xff0c;否则继续执行下列步骤 进入nginx源文件目录 cd /usr/local/nginx/nginx-1.20.2重新编译nginx ./configure --with-http_ssl_module如果组件linux缺少&…

利用Burp Suite观察https通联

对使用 HTTPS 协议的应用程序进行测试时&#xff0c;常使用 bp 观察流量&#xff0c;为能成功建立HTTPS联接&#xff0c;在将bp设置居代理的同时&#xff0c;还必须导入bp伪证书&#xff0c;这样才能修改请求和响应&#xff0c;加密和解密流量&#xff0c;成功模拟浏览的各种动…

Web3创业:去中心化初创公司的崛起

随着Web3时代的到来&#xff0c;去中心化技术的崛起不仅令人瞩目&#xff0c;也为创业者带来了前所未有的机遇。在这个新的时代&#xff0c;一批去中心化初创公司正崭露头角&#xff0c;重新定义着商业和创新的边界。本文将深入探讨Web3创业的趋势&#xff0c;以及去中心化初创…

Your lDE is missing natures to properly support your projects

错误提示 Your lDE is missing natures to properly support your projects. Some extensions on the Eclipse Marketplace can be installed to support those natures.解决方案 打开项目文件&#xff0c;找到.project 文件&#xff0c;用编辑器打开 找到 把下图效果图中相关…

自然语言处理-文本标注

文本标注 现在让我们考虑词元级任务&#xff0c;比如文本标注&#xff08;text tagging&#xff09;&#xff0c;其中每个词元都被分配了一个标签。在文本标注任务中&#xff0c;词性标注为每个单词分配词性标记&#xff08;例如&#xff0c;形容词和限定词&#xff09;。 根据…

【iOS ARKit】人脸追踪之挂载虚拟元素

人脸跟踪&#xff08;Face Tracking&#xff09;是指将人脸检测扩展到视频序列&#xff0c;跟踪同一张人脸在视频序列中的位置。是论上讲&#xff0c;任何出现在视频中的人险都可以被跟踪&#xff0c;也即是说&#xff0c;在连续视频帧中检测到的人脸可以被识别为同一个人。人脸…

单片机面向对象思维的架构:时间轮片法

今天分享一篇单片机程序框架的文章。 程序架构重要性 很多人尤其是初学者在写代码的时候往往都是想一点写一点&#xff0c;最开始没有一个整体的规划&#xff0c;导致后面代码越写越乱&#xff0c;bug不断。 最终代码跑起来看似没有问题(有可能也真的没有问题)&#xff0c;但…

vue3创建多种遥感底图的网页教程

创建一个能调用多种遥感底图的网页教程 简介 大家好&#xff0c;我是锐多宝。 最近我正在使用vue3&#xff0c;这里记录一下我是如何使用vue3调用多种遥感底图。当然&#xff0c;如果你觉得安装vue麻烦&#xff0c;也可以直接使用原生的JavaScript&#xff0c;方法大同小异。…

机器学习:多元线性回归闭式解(Python)

import numpy as np import matplotlib.pyplot as pltclass LRClosedFormSol:def __init__(self, fit_interceptTrue, normalizeTrue):""":param fit_intercept: 是否训练bias:param normalize: 是否标准化数据"""self.theta None # 训练权重系…

【Chrome】浏览器怎么清除缓存并强制刷新

文章目录 1、正常刷新&#xff1a;正常刷新网页&#xff0c;网页有缓存则采用缓存。 F5 或 刷新键2、强制刷新&#xff1a;忽略缓存刷新&#xff0c;重新下载资源不用缓存。 CtrlF5 或 ShiftF5 或 CtrlShiftR3、在浏览器的设置里面清除所有数据

哪些 3D 建模软件值得推荐?

云端地球是一款免费的在线实景三维建模软件&#xff0c;不需要复杂的技巧&#xff0c;只要需要手机&#xff0c;多拍几张照片&#xff0c;就可以得到完整的三维模型&#xff01; 无论是大场景倾斜摄影测量还是小场景、小物体建模&#xff0c;都可以通过云端地球将二维数据向三…

MTP与管理壳(AAS)有异曲同工之妙

在过去的几年中&#xff0c;流程工业中的不同部门&#xff08;例如制药、精细化学品以及食品和饮料部门&#xff09;遇到了一系列共同且可比较的新兴挑战。这些挑战包括&#xff1a; 新产品的需求迅速接连不断&#xff0c;更快交货和更低价格的压力&#xff0c;更多定制产品&a…