基于minikube快速搭建kubernetes单节点环境

news2024/11/13 9:27:08

file

一、说明

本文主要介绍在 Centos7 环境下基于 Minikube 来快速部署 Kubernetes 单节点集群环境,并在浏览器上访问部署在 k8s 上的 dashboard 服务。

 

二、Minikube 介绍

Minikube 是一个基于go语言开发,易于在本地运行 Kubernetes 的工具,可在你的笔记本电脑上的虚拟机内轻松创建单机版 Kubernetes 集群,对硬件资源没有太高的要求,非常适合 测试本地开发

官方文档:https://minikube.sigs.k8s.io/docs/

架构图:

运作原理:

从 Minikube 的架构中可以看出 master 节点与其它节点合为一体,而整体则通过宿主机上的 kubectl 进行管理,这样可以更加 节省资源

简单来说就是,用户使用 Minikube CLI 管理虚拟机上的 Kubernetes 环境,比如:启动,停止,删除,获取状态等。一旦 Minikube 虚拟机启动,用户就可以使用熟悉的 Kubectl CLI 在 Kubernetes 集群上执行操作。

 

三、Minikube安装

3.1. 系统要求

  • CUP:2核以上
  • 内存:2GB以上
  • 硬盘:需要20G
  • 网络:能连因特网(需要下载安装包),
  • 容器:需要先安装Docker或其他容器。

 

3.2. 安装前准备

3.2.1. 安装 Docker

安装步骤参考:https://www.runoob.com/docker/centos-docker-install.html

docker 的最低建议版本为 20.10.0 以上

配置阿里云加速器:https://cr.console.aliyun.com/cn-shenzhen

启动 docker:

systemctl start docker
systemctl enable docker.service

 

3.2.2. 创建新用户

  • 操作 minikube 需要一个具有 root 权限的用户(非root)

  • 需要将该用户添加进入 docker 用户组

    • 添加该用户至 docker 用户组:
      sudo gpasswd -a 用户名 docker
      
    • 更新 docker 用户组:
      newgrp docker
      

 

3.3. 部署

切换新创建的用户来操作 minikube,我这里创建的用户为 zlt

su zlt

安装步骤参考:https://minikube.sigs.k8s.io/docs/start/

3.3.1. 安装命令

执行以下2个命令,下载并安装 minikube 命令:

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

执行命令 minikube version 查看版本号:

 

3.3.2. 启动集群

执行以下命令:

minikube start --image-mirror-country='cn' --kubernetes-version=v1.23.8
  • image-mirror-country 为指定使用国内源

  • kubernetes-version 指定部署的版本(最新版兼容性坑比较多,所以选择低版本)

执行成功如下图所示:

 

3.3.3. 验证

执行命令 minikube status 查看状态,结果如下:

[zlt@zlt opt]$ minikube status
minikube
type: Control Plane
host: Running
kubelet: Running
apiserver: Running
kubeconfig: Configured

 

3.3.4. 查看集群状态

可直接使用 minikube 自带的 kubectl 命令。

获取集群所有节点(机器):

minikube kubectl get nodes

获取集群所有命名空间:

minikube kubectl get namespaces

查看集群所有 Pod:

minikube kubectl -- get pods -A

 

3.3.5. Minikube 常用命令

进入节点服务器:

minikube ssh

执行节点服务器命令,例如查看节点 docker info:

minikube ssh -- docker info

删除集群, 删除 ~/.minikube 目录缓存的文件:

minikube delete

关闭集群:

minikube stop

销毁集群:

minikube stop && minikube delete

 

四、安装 kubectl

由于 minikube 内置的 kubectl 命令功能不全,所以最好独立安装一个 kubectl

用以下命令下载最新发行版:

curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"

安装 kubectl:

sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl

查看版本的详细信息:

kubectl version --client --output=yaml

 

五、安装 dashboard

执行以下命令,启动 dashboard 插件:

minikube dashboard

集群外部想要直接访问 dashboard 还需要设置代理才能访问,执行以下命令:

kubectl proxy --port=8001 --address='192.168.28.138' --accept-hosts='^.*'

–port 需要暴露的端口号

–address 服务器外网IP(宿主机IP)

–accept-hosts 外部访问服务器的IP(白名单)

这样就可以在浏览器上通过以下地址访问 Kubernetes Dashboard:

http://192.168.28.138:8001/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/

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

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

相关文章

《mysql技术内幕:innodb存储引擎》笔记

任何时候Why都比What重要;不要相信任何的“神话”,学会自己思考;不要墨守成规,大部分人都知道的事情可能是错误的;不要相信网上的传言,去测试,根据自己的实践做出决定;花时间充分地思考,敢于提出质疑。1.MYSQL被设计为一个单进程多…

(三十七)vue 项目中常用的2个Ajax库

文章目录axios实现vue-resource实现上一篇:(三十六)Vue解决Ajax跨域问题 先看一个github搜索案例 有一个搜索框,输入相关用户名,就能模糊搜索出用户,展现到下方 第一步:我们用到了第三方样式库…

36、基于51单片机频率计 LCD 1602显示系统设计

摘要 数字频率计是一种基本的测量仪器。它被广泛应用于航天、电子、测控等领域,还被应用在计算机及各种数学仪表中。一般采用的是十进制数字,显示被测信号频率。基本功能是测量正弦信号,方波信号以及其他各种单位时间内变坏的物理量。由于其…

【沐风老师】为你推荐18个免费3dMAX插件和脚本

在所有 3D 软件中,3dMax的历史特别引人注目,有许多有趣的里程碑和突破点。自 1990 年推出以来,3dMax 一直是Autodesk公司的支柱产品之一。作为行业标准,它是高端项目和各种高级用途的首选 3D 软件之一。 如果你已经在使用3dMax&a…

一站式元数据治理平台——Datahub入门宝典

随着数字化转型的工作推进,数据治理的工作已经被越来越多的公司提上了日程。作为新一代的元数据管理平台,Datahub在近一年的时间里发展迅猛,大有取代老牌元数据管理工具Atlas之势。国内Datahub的资料非常少,大部分公司想使用Datah…

大数据开发-数据仓库介绍

目录标题1、数据仓库1.1 数仓为何而来?1.2 数据仓库的主要特性1.3 数据仓库与数据库的区别1.4 数据仓库三层架构1.5 实战-美团酒旅数仓建设1.6 ETL、ELT1.6.1 ETL1.6.2 ELT1、数据仓库 数据仓库Data Warehouse 简称DH,数据仓库的目的是构建面向分析的集…

Centos7.9源码编译安装dpdk

近日遇到一个需求,需要在Centos7.9上源码编译安装dpdk-21.11.2,并且dpdk的安装目录为/opt/。安装过程较为复杂,特此记录一下,方便日后查看。 相关配置参数编译环境虚拟机Centos7.9内核版本3.10.0-957dpdk版本21.11.2DPDK是INTEL公…

Java并发编程面试题——JUC专题

文章目录一、AQS高频问题1.1 AQS是什么?1.2 唤醒线程时,AQS为什么从后往前遍历?1.3 AQS为什么用双向链表,(为啥不用单向链表)?1.4 AQS为什么要有一个虚拟的head节点1.5 ReentrantLock的底层实现…

组合实现多类别分割(含实战代码)

来源:投稿 作者:AI浩 编辑:学姐 摘要 segmentation_models_pytorch是一款非常优秀的图像分割库,albumentations是一款非常优秀的图像增强库,这篇文章将这两款优秀结合起来实现多类别的图像分割算法。数据集选用CamVid…

Java实现JDBC工具类DbUtils的抽取及程序实现数据库的增删改操作

封装DbUtils 工具类 不知道我们发现没有,不管是对数据库进行查询,还是标准的JDBC 步骤,其开端都是先实现JDBC 的加载注册,接着是获取数据库的连接,最后都是实现关闭连接,释放资源的操作。那我们何不直接把…

起薪2万的爬虫工程师,Python需要学到什么程度才可以就业?

爬虫工程师的的薪资为20K起,当然,因为大数据,薪资也将一路上扬。那么,Python需要学到什么程度呢?今天我们来看看3位前辈的回答。 1、前段时间快要毕业,而我又不想找自己的老本行Java开发了,所以面了很多P…

【Python】用sympy判断函数的单调性和极值

文章目录单调性和奇异性连续性、极值、周期、不动点单调性和奇异性 sympy.calculus.singularities提供了4个关于单调性判定的函数,分别是 is_decreasing(expr, interval, symbolNone) is_increasing(expr, interval, symbolNone) is_strictly_decreasing(expr, in…

【期末复习】例题讲解Dijkstra算法

使用场景Dijkstra算法用于解决单源点最短路径问题,即给一个顶点作为源点,依次求它到图中其他n-1个顶点的最短距离。例题讲解Dijkstra算法将图中所有顶点分成两部分,第一部分是已知到源点最短距离的顶点Known(K),第二部分是不知道到…

教你如何搭建人事OA-考勤管理系统,demo可分享

1、简介1.1、案例简介本文将介绍,如何搭建人事OA-考勤管理。1.2、应用场景可查看员工考勤的数据统计,可进行考勤签到、补签、请假、加班、调休等流程。2、设置方法2.1、表单搭建1)新建表单【考勤签到】,字段设置如下:名…

VS Code Spring 全新功能来了!

大家好,欢迎来到我们 2023 年的第一篇博客!我们想与您分享几个与 Spring 插件、代码编辑和性能相关的激动人心的更新,让我们开始吧! Spring 插件包的新入门演练 演练(Walkthrough) 是一种多步骤、向导式的体…

跨境进口税费计算

以前搞跨境进口的时候,需要计算商品税费。税费计算比较复杂,把信息整理了一下,分享给大家。 一、基础知识 1.1税费类型 BBC/BC:跨境电商进口综合税 关税*0 (消费税进口环节增值税)*70%CC:行邮税,税额低…

Vue3电商项目实战-商品详情模块1【01-商品详情-基础布局、02-商品详情-渲染面包屑、03-商品详情-图片预览组件、04-商品详情-图片放大镜】

文章目录01-商品详情-基础布局02-商品详情-渲染面包屑03-商品详情-图片预览组件04-商品详情-图片放大镜01-商品详情-基础布局 目的:完成商品详情基础布局,路由配置,搭好页面架子。 大致步骤: 准备组件结构容器提取商品推荐组件且…

十二月券商金工精选

✦研报目录✦ ✦简述✦ 按发布时间排序 华宝证券 主动暴露的得与失—从Barra框架到私募指增因子分析方法 发布日期:2022-12-01 关键词:股票、Barra、风险暴露、指数增强 主要内容:本文针对私募指数增强产品的策略流程,设计…

<JVM上篇:内存与垃圾回收篇>11 - 垃圾回收相关算法

对象存活判断 在堆里存放着几乎所有的 Java 对象实例,在 GC 执行垃圾回收之前,首先需要区分出内存中哪些是存活对象,哪些是已经死亡的对象。只有被标记为己经死亡的对象,GC 才会在执行垃圾回收时,释放掉其所占用的内存…

vue项目开发(vue2与vue3对比)

vue中使用typescrip 初与typescrip的约定情愫:最近项目要用到vue3,所以打算使用typescrip语法! 安装: npx tyarn add typescript vue/cli-plugin-typescript -D npx tsc --init修改 tsconfig.json: {"compilerOptions&quo…