minikube从入门到精通系列之一:部署minikube详细步骤

news2024/9/21 22:42:36

minikube从入门到精通系列之一:部署minikube详细步骤

  • 一、认识Minikube
  • 二、Minikube核心知识点
  • 三、minikube官方地址
  • 四、minikube 启动
  • 五、minikube的配置需求
  • 六、Mac安装minikube
  • 七、CenotOS7上安装minikube
  • 八、启动集群
  • 九、与集群交互
  • 十、部署应用程序
    • 1.Service
    • 2.LoadBalancer
    • 3.Ingress
  • 十一、管理集群

K8s相关知识可以阅读博主以下几篇技术博客:

  • K8s系列之:搭建高可用K8s v1.23.5集群详细步骤,3个master节点,3个Node节点
  • K8s系列之:Pod的基本用法
  • k8s系列之:kubectl子命令详解一
  • k8s系列之:kubectl子命令详解二
  • 更多K8s知识点详见博主K8s系列文章

一、认识Minikube

  • Minikube是一个开源工具,用于在本地开发环境中快速搭建一个单节点的Kubernetes集群。
  • 它支持多种虚拟化技术,在不同平台上都可以运行,如VirtualBox、Hyper-V、KVM等。
  • 通过Minikube,开发人员可以方便地在本地环境中测试、构建和部署应用程序,并尝试不同的Kubernetes功能和配置。
  • Minikube提供了一些命令行工具,如kubectl,用于与Kubernetes集群进行交互,可以在本地开发中提高效率和便捷性。

二、Minikube核心知识点

  1. Kubernetes集群的搭建和管理:Minikube帮助用户在本地环境中快速搭建和管理一个Kubernetes集群,从而提供了一个容器化应用程序的运行环境。

  2. 容器和镜像的管理:Minikube可以运行和管理多个容器,用户可以使用Docker Hub等资源库来查找和下载不同的镜像。

  3. kubectl命令行工具的使用:Minikube内置了kubectl命令行工具,用户可以使用该工具与Kubernetes集群进行交互,比如创建和管理应用程序、服务、节点等。

  4. 资源配额和限制的配置:Minikube允许用户配置集群中的资源配额和限制,以确保应用程序的稳定性和可伸缩性。

  5. Kubernetes对象的管理:Minikube支持管理Kubernetes中的不同对象,如Pod、Service、Deployment等,以帮助用户更好地理解和使用Kubernetes。

  6. 网络配置和服务发现:Minikube提供了网络配置和服务发现的功能,以便应用程序可以在Kubernetes集群中互相通信和发现彼此的服务。

  7. 日志和监控:Minikube支持应用程序的日志和监控,以帮助用户追踪和分析应用程序的运行状况。

三、minikube官方地址

minikube官方地址:

  • 添加链接描述

四、minikube 启动

minikube 是本地 Kubernetes,专注于让 Kubernetes 易于学习和开发。

您所需要的只是 Docker(或类似兼容的)容器或虚拟机环境,并且只需一个命令即可使用 Kubernetes:minikube start

五、minikube的配置需求

minikube的配置需求:

  • 2 个或更多 CPU
  • 2GB 可用内存
  • 20GB 可用磁盘空间
  • 网络连接
  • 容器或虚拟机管理器,例如:Docker、QEMU、Hyperkit、Hyper-V、KVM、Parallels、Podman、VirtualBox 或 VMware Fusion/Workstation

六、Mac安装minikube

要使用二进制下载在 x86-64 macOS 上安装最新的 minikube 稳定版本:
在这里插入图片描述

curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-darwin-amd64
sudo install minikube-darwin-amd64 /usr/local/bin/minikube

七、CenotOS7上安装minikube

在这里插入图片描述

curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-latest.x86_64.rpm
sudo rpm -Uvh minikube-latest.x86_64.rpm

在这里插入图片描述

curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
sudo install minikube-linux-amd64 /usr/local/bin/minikube

八、启动集群

从具有管理员访问权限的终端(但未以 root 身份登录),运行:

minikube start

如果 minikube 无法启动,请参阅驱动程序页面以获取设置兼容容器或虚拟机管理器的帮助。

九、与集群交互

如果您已经安装了 kubectl,现在可以使用它来访问闪亮的新集群:

kubectl get po -A

或者,minikube 可以下载适当版本的 kubectl,您应该能够像这样使用它:

minikube kubectl -- get po -A

您还可以通过将以下内容添加到 shell 配置中来让您的生活更轻松:

alias kubectl="minikube kubectl --"

最初,某些服务(例如存储配置程序)可能尚未处于“运行”状态。这是集群启动期间的正常情况,很快就会自行解决。为了进一步了解集群状态,minikube 捆绑了 Kubernetes 仪表板,让您可以轻松适应新环境:

minikube dashboard

十、部署应用程序

1.Service

创建示例部署并将其公开在端口 8080 上:

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

这可能需要一些时间,但是当您运行时,您的部署很快就会显示:

kubectl get services hello-minikube

访问此服务的最简单方法是让 minikube 为您启动 Web 浏览器:

minikube service hello-minikube

或者,使用 kubectl 转发端口:

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

您的应用程序现已在 http://localhost:7080/ 上提供。

您应该能够在应用程序输出中看到请求元数据。尝试更改请求的路径并观察变化。同样,您可以执行 POST 请求并观察输出中显示的正文。

2.LoadBalancer

要访问 LoadBalancer 部署,请使用“minikubetunnel”命令。这是一个部署示例:

kubectl create deployment balanced --image=kicbase/echo-server:1.0
kubectl expose deployment balanced --type=LoadBalancer --port=8080

在另一个窗口中,启动隧道以为“平衡”部署创建可路由 IP:

minikube tunnel

要查找可路由的 IP,请运行以下命令并检查 EXTERNAL-IP 列:

kubectl get services balanced

您的部署现已在 :8080 上可用

3.Ingress

启用入口插件:

minikube addons enable ingress

以下示例创建简单的 echo-server 服务和一个用于路由到这些服务的 Ingress 对象。

kind: Pod
apiVersion: v1
metadata:
  name: foo-app
  labels:
    app: foo
spec:
  containers:
    - name: foo-app
      image: 'kicbase/echo-server:1.0'
---
kind: Service
apiVersion: v1
metadata:
  name: foo-service
spec:
  selector:
    app: foo
  ports:
    - port: 8080
---
kind: Pod
apiVersion: v1
metadata:
  name: bar-app
  labels:
    app: bar
spec:
  containers:
    - name: bar-app
      image: 'kicbase/echo-server:1.0'
---
kind: Service
apiVersion: v1
metadata:
  name: bar-service
spec:
  selector:
    app: bar
  ports:
    - port: 8080
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: example-ingress
spec:
  rules:
    - http:
        paths:
          - pathType: Prefix
            path: /foo
            backend:
              service:
                name: foo-service
                port:
                  number: 8080
          - pathType: Prefix
            path: /bar
            backend:
              service:
                name: bar-service
                port:
                  number: 8080
---

应用内容

kubectl apply -f https://storage.googleapis.com/minikube-site-examples/ingress-example.yaml

等待ingress address

kubectl get ingress
NAME              CLASS   HOSTS   ADDRESS          PORTS   AGE
example-ingress   nginx   *       <your_ip_here>   80      5m45s

Docker 桌面用户注意事项:
要使 Ingress 正常工作,您需要打开一个新的终端窗口并运行 minikube 隧道,并在以下步骤中使用 127.0.0.1 代替 <ip_from_above>。

现在验证入口是否正常工作

$ curl <ip_from_above>/foo
Request served by foo-app
...

$ curl <ip_from_above>/bar
Request served by bar-app
...

十一、管理集群

暂停 Kubernetes,而不影响已部署的应用程序:

minikube pause

取消暂停已暂停的实例:

minikube unpause

停止集群:

minikube stop

更改默认内存限制(需要重新启动):

minikube config set memory 9001

浏览易于安装的 Kubernetes 服务目录:

minikube addons list

创建运行旧版 Kubernetes 的第二个集群:

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

删除所有 minikube 集群:

minikube delete --all

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

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

相关文章

方向元件软件原理

三段方向电流保护的方向元件&#xff0c;可以由软压板选择正方向、反方向动作方式。这里仅以正方向为例来说明方向元件原理。 为了保证在各种相间短路故障时&#xff0c;方向元件能可靠而灵敏动作&#xff0c;微机保护的方向元件的“接线方式”&#xff08;指软件的接线方式&am…

深度学习(25)——YOLO系列(4)

深度学习&#xff08;25&#xff09;——YOLO系列&#xff08;4&#xff09; 文章目录 深度学习&#xff08;25&#xff09;——YOLO系列&#xff08;4&#xff09;1. dataset准备&#xff08;1&#xff09;数据详解&#xff08;2&#xff09;dataset&#xff08;3&#xff09;…

Navicat连接Oracle报错:Oracle library is not loaded

Navicat连接Oracle报错&#xff1a;Oracle library is not loaded 用Navicat连接Oracle数据库时报错&#xff1a;Oracle library is not loaded 解决办法&#xff1a;&#xff1a;&#xff1a;&#xff01;&#xff01; 这是oci.dll版本不对。因为Navicat是通过Oracle客户端…

11. requests.post()函数访问网页(小白入门)

11. requests.post()函数访问网页(小白入门) 文章目录 11. requests.post()函数访问网页(小白入门)1. 常用的http请求方法2. requests.post()语法3. 确定请求网址和请求方法4. 开发者工具中的Fetch/XHR表示什么5. requests.post()访问网页实操5.1 导入库&#xff0c;随机生成一…

Linux磁盘不足,解决办法

解决 一 查看 Linux大于1G的文件 命令 sudo find / -type f -size 1G -exec ls -lh {} \; 解决 二 清理docker的日志 Docker日志可能会占用大量的磁盘空间。可以使用以下命令清理Docker日志&#xff1a; sudo truncate -s 0 /var/lib/docker/containers/*/*json.log 解决…

5G无线帧结构与空口资源

时域资源分配< Time Domain Resource Allocation > 下表指示了传送SS/PBCH的第一个OFDM符号号码&#xff0c;基于TS38.213-4.1 cell search。 1. 子载波间隔 Numerology - Subcarrier Spacing 在载波间隔subcarrier spacing和时域的符号长度symbol length方面&#xff…

Kafka可视化平台EFAK搭建及使用

文章目录 1.EFAK可视化平台介绍2.搭建EFAK可视化平台2.1.安装JDK环境2.2.安装MySQL数据库2.3.下载EAK二进制安装包并部署2.4.配置EFAK连接Zookeeper集群2.5.调整Eagle启动文件中的变量信息2.6.启动EFAK可视化平台 3.使用EFAK可视化平台3.1.登陆EFAK可视化平台3.2.EFAK仪表盘展示…

智云通CRM:识破客户在谈判中的十大谎言

智云通CRM系统是一款专为企业打造的客户管理系统&#xff0c;可以有效帮助企业进行客户关系管理、数据分析和数字化转型。在销售过程中&#xff0c;客户谈判是不可避免的环节。然而&#xff0c;客户在谈判中经常会说一些谎言&#xff0c;以获取更有利的交易条件。对于销售人员来…

【Docker】Docker Desktop更换非C盘符(减轻占用率)

Win10中的Docker Desktop调整到其他盘符&#xff0c;由于新版本已经不让修改软连接了&#xff0c;只好另谋策略&#xff0c;最终还是改成功了。 出现问题 使用软连接修改 上面代码我们可以科幻的理解一下 幻想破灭 //TODO 用户点击执行安装 if(检查文件夹是否软连接){有则&a…

ThinkPHP6基础使用

ThinkPHP6基础使用 前言1.基础1.1 开启调试模式1.2测试运行1.3单应用模式和多应用模式区别1.4安装视图1.5模板渲染1.6模板赋值 总结 前言 这里的操作可能有点难懂&#xff0c;没关系的&#xff0c;只需要了解大致的框架构造就可以了 1.基础 1.1 开启调试模式 通过create-proje…

springboot+vue在线外卖点餐系统,附源码,数据库

今天要和大家聊的是基于springbootvue在线外卖点餐系统 源码下载地址&#xff1a; https://download.csdn.net/download/gdutxiaoxu/87651066 开发环境&#xff1a; 后端&#xff1a; 开发语言&#xff1a;Java 框架&#xff1a;springboot JDK版本&#xff1a;JDK1.8 …

酷开科技携手京东深入布局投影赛道

沉浸式观影&#xff0c;需要氛围感。大屏幕&#xff0c;大空间&#xff0c;才能让人有身临其境之感&#xff0c;居家生活想要更大的屏幕&#xff0c;除了大屏电视&#xff0c;就要数投影仪了。一部投影仪&#xff0c;再加上充足的空间&#xff0c; 就能够投满整面墙&#xff0c…

第44步 深度学习图像识别:ResNet50建模(Tensorflow)

基于WIN10的64位系统演示 一、写在前面 &#xff08;1&#xff09;ResNet50 ResNet50是一种深度学习模型&#xff0c;由微软研究院的研究人员在2015年提出。"ResNet"的全称是"Residual Network"&#xff0c;意为"残差网络"&#xff0c;"…

WPS 智能办公体验官公测-附申请链接

&#x1f951; Welcome to Aedream同学 s blog! &#x1f951; 文章目录 WPS 智能办公体验官官网步骤1:填写申请表单&#xff1a;步骤2:获取兑换码&#xff1a; AI办公时代 WPS大家都了解就不再多介绍了&#xff0c;个人还是很期待的&#xff0c;可以申请体验一波。 WPS 智能…

“京津冀现代商贸物流金融创新实践基地”揭牌成立

来源 | 廊坊银行 在6月17日举办的京津冀现代商贸物流金融创新发展论坛上&#xff0c;“京津冀现代商贸物流金融创新实践基地”正式授牌。据介绍&#xff0c;这是目前京津冀区域内首个商贸物流金融创新实践基地。中国物流与采购联合会会长何黎明、廊坊市现代商贸物流领导小组办…

G2. Teleporters (Hard Version)(二分)

Problem - 1791G2 - Codeforces 这道题给定一个数轴上的点 0,1,...,n1&#xff0c;其中每个点 i (1 ≤ i ≤ n) 都有一个传送门。在第 i 个点&#xff0c;你可以进行以下操作&#xff1a; 向左移动一格&#xff1a;花费 1 个金币。 向右移动一格&#xff1a;花费 1 个金币。 使…

同时配置cuda11.0和11.1环境

同时配置cuda11.0和11.1环境 背景思路流程电脑环境确认确认位置安装新CUDA环境1、执行cuda.exe2. 配置环境变量 安装cudnn 背景 【在电脑上安装多个版本的cuda】&#xff1a;电脑已经安装好了cuda11.0&#xff0c;由于mmdetection版本不匹配&#xff0c;所以想要再安装cuda11.…

【Java】 Java 中函数式接口的使用

本文仅供学习参考&#xff01; 相关教程地址&#xff1a; https://www.runoob.com/java/java8-functional-interfaces.html https://www.cnblogs.com/dgwblog/p/11739500.html https://www.developer.com/java/java-functional-interfaces/ 接口是定义一组方法及其签名的契约。…

自学黑客(网络安全),一般人我劝你还是算了吧(自学网络安全学习路线--第五章 密码学基础上)【建议收藏】

文章目录 一、自学网络安全学习的误区和陷阱二、学习网络安全的一些前期准备三、自学网络安全学习路线一、密码学概述1、密码学的历史2、密码学的基本术语 二、密码学基本概念1、基本概念2、密码系统的安全性3、密码体制的分类4、密码体制的攻击 三、古典密码学四、对称密码算法…

Debezium系列之:监控 Debezium 实例

Debezium系列之&#xff1a;监控 Debezium 实例 一、概述二、实现步骤三、执行四、打开Grafana UI五、关闭集群 Debezium JMX相关的技术博客&#xff1a; Debezium系列之&#xff1a;安装jmx导出器监控debezium指标Debezium系列之&#xff1a;为Debezium集群JMX页面增加监控&a…