minikube搭建Kubernetes环境
前言
Kubernetes 一般都运行在大规模的计算集群上,管理很严格,Kubernetes 充分考虑到了这方面的需求,提供了一些快速搭建 Kubernetes 环境的工具。
minikube 它是一个“迷你”版本的 Kubernetes,自从 2016 年发布以来一直在积极地开发维护,紧跟 Kubernetes 的版本更新,同时也兼容较旧的版本(最多只到之前的 6 个小版本)。
minikube 最大特点就是“小而美”,可执行文件仅有不到 100MB,运行镜像也不过 1GB,但就在这么小的空间里却集成了 Kubernetes 的绝大多数功能特性,不仅有核心的容器编排功能,还有丰富的插件,例如 Dashboard、GPU、Ingress、Istio、Kong、Registry 等等,综合来看非常完善。
minikube 官网:https://minikube.sigs.k8s.io/docs/
minikube 安装
minikube 的官网上提供了各种系统的安装命令,通常就是下载、拷贝这两步,不过你需要注意一下本机电脑的硬件架构,Intel 芯片要选择带“amd64”后缀,Apple M1 芯片要选择“arm64”后缀,选错了就会因为 CPU 指令集不同而无法运行。
minikube 它是用 Go 语言开发的,整体就是一个二进制文件,没有多余的依赖,所以安装过程也非常简单。
安装完成之后,你可以执行命令 minikube version,看看它的版本号,验证是否安装成功:
minikube version
kubectl安装
不过 minikube 只能够搭建 Kubernetes 环境,要操作 Kubernetes,还需要另一个专门的客户端工具“kubectl”。
kubectl 的作用有点类似之前我们学习容器技术时候的工具“docker”,它也是一个命令行工具,作用也比较类似,同样是与 Kubernetes 后台服务通信,把我们的命令转发给 Kubernetes,实现容器和集群的管理功能。
kubectl 是一个与 Kubernetes、minikube 彼此独立的项目,可以单独进行安装,所以不包含在 minikube 里,但 minikube 提供了安装它的简化方式,你只需执行下面的这条命令:
minikube kubectl
它就会把与当前 Kubernetes 版本匹配的 kubectl 下载下来,存放在内部目录,然后我们就可以使用它来对 Kubernetes“发号施令”了。
在 minikube 环境里,我们会用到两个客户端:minikube 管理 Kubernetes 集群环境,kubectl 操作实际的 Kubernetes 功能。
kubectl version
查看版本信息,还不能直接用,因为使用 minikube 自带的 kubectl 有一点形式上的限制,要在前面加上 minikube 的前缀,后面再有个 --,像这样:
minikube kubectl -- version
为了避免这个不大不小的麻烦,我建议你使用 Linux 的“alias”功能,为它创建一个别名,写到当前用户目录下的 .bashrc 里,也就是这样:
alias kubectl="minikube kubectl --"
另外,kubectl 还提供了命令自动补全的功能,你还应该再加上“kubectl completion”:
source <(kubectl completion bash)
现在,我们就可以愉快地使用 kubectl 了:
kubectl version --short
运行 minikube
使用命令 minikube start 会从 Docker Hub 上拉取镜像,以当前最新版本的 Kubernetes 启动集群。Kubernetes version to v1.24+ 以上的版本是一个分水岭,我们可以在后面再加上一个参数 --kubernetes-version,明确指定要使用 Kubernetes 版本。
minikube start --kubernetes-version=v1.23.3
如果安装失败,请先删除后再重新安装
minikube delete --all --purge
如果出现拉取镜像失败的情况,可以先尝试安装好对应的镜像文件:
docker pull anjone/kicbase
然后 minikube 在启动的时候使用本地的镜像,这样可以减少 minikube start 过程的耗时。
minikube start --vm-driver=docker --base-image="anjone/kicbase"
如果启动失败可以更换指定的镜像仓库
minikube start \
--kubernetes-version=v1.23.3
--registry-mirror=https://bmtb464.mirror.aliyuncs.com \
--vm-driver=docker \
--base-image="anjone/kicbase" \
--image-repository-registry.cn-hangzhou.aliyuncs.com/google_containers \
--force
- --kubernetes-version 指定 kubernetes 版本
- --registry-mirror 这里的地址会和启动的 minikube 内部的 docker.daemon 文件中所指向的镜像仓库地址一致
- --vm-driver 虚拟机引擎 这里是指 minikube 的内部通过 docker 来作为核心
- --base-image 声明好基础镜像,如果宿主机内部有对应镜像,就不需要额外拉取
- --image-repository 拉取镜像的仓库
- --force 如果使用 root 账号,需要加上此参数
启动成功
Darwin 13.2.1 上的 minikube v1.29.0
Kubernetes 1.26.1 is now available. If you would like to upgrade, specify: --kubernetes-version=v1.26.1
根据现有的配置文件使用 docker 驱动程序
Starting control plane node minikube in cluster minikube
Pulling base image ...
Restarting existing docker container for "minikube" ...
This container is having trouble accessing https://k8s.gcr.io
To pull new external images, you may need to configure a proxy: https://minikube.sigs.k8s.io/docs/reference/networking/proxy/
正在 Docker 20.10.23 中准备 Kubernetes v1.23.3…
Verifying Kubernetes components...
Using image docker.io/kubernetesui/metrics-scraper:v1.0.8
Using image gcr.io/k8s-minikube/storage-provisioner:v5
Using image docker.io/kubernetesui/dashboard:v2.7.0
Some dashboard features require the metrics-server addon. To enable all features please run:
minikube addons enable metrics-server
Enabled addons: storage-provisioner, default-storageclass, dashboard
Done! kubectl is now configured to use "minikube" cluster and "default" namespace by default
v1.31.2 版本
minikube v1.31.2
包含了 kubectl
,不需要单独配置
Darwin 13.5.1 上的 minikube v1.31.2
根据现有的配置文件使用 docker 驱动程序
正在集群 minikube 中启动控制平面节点 minikube
正在拉取基础镜像 ...
E0914 15:06:10.984847 22646 cache.go:190] Error downloading kic artifacts: failed to download kic base image or any fallback image
docker "minikube" 缺失 container,将重新创建。
正在创建 docker container(CPUs=2,内存=4000MB)...
正在 Docker 24.0.4 中准备 Kubernetes v1.27.4…
正在生成证书和密钥...
正在启动控制平面...
配置 RBAC 规则 ...
配置 bridge CNI (Container Networking Interface) ...
正在验证 Kubernetes 组件...
正在使用镜像 gcr.io/k8s-minikube/storage-provisioner:v5
启用插件: storage-provisioner, default-storageclass
完成!kubectl 现在已配置,默认使用"minikube"集群和"default"命名空间
minikube搭建Kubernetes环境的更多相关文章
- 使用 kind 快速搭建 kubernetes 环境
使用 kind 快速搭建 Kubernetes 环境 Intro kind(Kubernetes IN Docker) 是一个基于 docker 构建 Kubernetes 集群的工具,非常适合用来在 ...
- mac上利用minikube搭建kubernetes(k8s)环境
友情提示:对于初次接触k8s的同学,强烈建议先看看本文最后的参考文章. 环境: mac os(Mojave) 前提:先安装好kubectl (brew install kubectl) .docker ...
- Mac本地搭建kubernetes环境
前言:之前在windows上面的虚拟机上面手工搭建了kubernetes集群,但是环境被破坏了,最近想要继续学习k8s,手工搭建太费事,所以选择了minikube,完全能够满足个人的需求,其实在Win ...
- K8S 使用Minikube搭建Kubernetes(K8S)~单机运行Kubernetes~适用于快速学习
在一台主机上运行起来的Kubernetes,仅适用于学习!~~~ 系统版本:CentOS Linux release 7.6.1810 (Core) 软件版本:Docker-ce-18.06.0.Ku ...
- Kubernetes【K8S】(二):搭建Kubernetes环境
系统初始化 设置系统时区 # 设置系统时区为 亚洲/上海 [root@k8s-master01 ~]# timedatectl set-timezone Asia/Shanghai # 设置当前得UT ...
- 基于minikube快速搭建kubernetes单节点环境
一.说明 本文主要介绍在 Centos7 环境下基于 Minikube 来快速部署 Kubernetes 单节点集群环境,并在浏览器上访问部署在 k8s 上的 dashboard 服务. 二.Mini ...
- 15分钟在笔记本上搭建 Kubernetes + Istio开发环境
11月13~15日,KubeCon 上海大会召开,云原生是这个秋天最火热的技术.很多同学来问如何上手 Kubernetes和Istio 服务网格开发.本文将帮助你利用Docker CE桌面版,15分钟 ...
- Docker Kubernetes 环境搭建
Docker Kubernetes 环境搭建 节点规划 版本 系统:Centos 7.4 x64 Docker版本:18.09.0 Kubernetes版本:v1.8 etcd存储版本:etcd-3. ...
- 本地k8s环境minikube搭建过程
首先要安装docker这个环境是需要自己安装的.相关步骤如下: 1 2 3 4 5 6 7 8 9 10 11 yum install -y yum-utils device-mapper-persi ...
- 二进制搭建kubernetes多master集群【开篇、集群环境和功能介绍】
本文主要说明kubernetes集群使用组建的版本和功能介绍.. 一.组件版本 Kubernetes 1.12.3 Docker 18.06.1-ce Etcd 3.3.10 Flanneld 0.1 ...
随机推荐
- Python+Selenium模拟人工抓取数据
Selenium 是一个用于Web应用程序测试的工具.Selenium测试直接运行在浏览器中,就像真正的用户在操作一样.支持的浏览器包括IE(7, 8, 9, 10, 11),Mozilla Fire ...
- Qt编写安防视频监控系统66-子模块10网页浏览
一.前言 网页浏览模块,用于传入一个网页地址,打开对应的网页进行浏览,可用于网页展示信息,支持多个,可以自行增加,代码中演示了一个.此模块的用途属于添砖加瓦润色用的,比如有一个牛逼的3D网页,机器人. ...
- Qt编写安防视频监控系统36-onvif连续移动
一.前言 时隔一年多,重新对视频监控系统的onvif内核重写,一方面为了兼容Qt6,一方面按功能分类提高效率.整体逻辑思路是一样的,主要的改动是由于Qt6不再支持QtXmlPatterns模块(其实这 ...
- 基于NVIDIA NGC容器安装使用PaddlePaddle
基于NVIDIA NGC容器安装使用PaddlePaddle PaddlePaddle PaddlePaddle作为国内首个自主研发的深度学习平台,自2016年正式向专业社区开源,是一个技术先进.功能 ...
- 零门槛的向量数据库「GitHub 热点速览」
上周,DeepSeek-V3 将训练大模型的成本给打下来了,但训练大模型对普通开发者来说仍然门槛很高.所以,本期的热门开源项目聚焦于降低 LLM 应用开发的入门门槛. 极易上手的向量数据库 chrom ...
- 【事件分析】20250112-Usual 赎回机制调整事件
背景信息 https://docs.usual.money/ Usual 是一个聚合 RWA 的稳定币发行协议,经济模型中存在三种代币: USD0:Usual 发行的稳定币. USD0++:USD0+ ...
- SpringBoot实现人脸识别功能
一.人脸注册 step1:人像采集.在注册页面上用html中video组件和js调用笔记本摄像头,并抓取人像图片.没有摄像头的笔记本.台式机的童鞋告辞吧,走好不送... step2:人像上传至项目文件 ...
- Fo-dicom通过C-store方式发送图片
1 using Dicom.Network; 2 using System; 3 using System.Collections.Generic; 4 using System.Linq; 5 us ...
- 常用的MySQL备份/还原 的方法
mysql备份数据库 mysql备份单个数据库 #mysql备份某个库格式: mysqldump -h主机名 -P端口 -u用户名 -p"密码" --database 数据库名 & ...
- fopen在VS中不安全的问题
问题 fopen函数哎VS中使用,报错: error C4996: 'fopen': This function or variable may be unsafe. Consider using f ...