前言

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环境的更多相关文章

  1. 使用 kind 快速搭建 kubernetes 环境

    使用 kind 快速搭建 Kubernetes 环境 Intro kind(Kubernetes IN Docker) 是一个基于 docker 构建 Kubernetes 集群的工具,非常适合用来在 ...

  2. mac上利用minikube搭建kubernetes(k8s)环境

    友情提示:对于初次接触k8s的同学,强烈建议先看看本文最后的参考文章. 环境: mac os(Mojave) 前提:先安装好kubectl (brew install kubectl) .docker ...

  3. Mac本地搭建kubernetes环境

    前言:之前在windows上面的虚拟机上面手工搭建了kubernetes集群,但是环境被破坏了,最近想要继续学习k8s,手工搭建太费事,所以选择了minikube,完全能够满足个人的需求,其实在Win ...

  4. K8S 使用Minikube搭建Kubernetes(K8S)~单机运行Kubernetes~适用于快速学习

    在一台主机上运行起来的Kubernetes,仅适用于学习!~~~ 系统版本:CentOS Linux release 7.6.1810 (Core) 软件版本:Docker-ce-18.06.0.Ku ...

  5. Kubernetes【K8S】(二):搭建Kubernetes环境

    系统初始化 设置系统时区 # 设置系统时区为 亚洲/上海 [root@k8s-master01 ~]# timedatectl set-timezone Asia/Shanghai # 设置当前得UT ...

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

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

  7. 15分钟在笔记本上搭建 Kubernetes + Istio开发环境

    11月13~15日,KubeCon 上海大会召开,云原生是这个秋天最火热的技术.很多同学来问如何上手 Kubernetes和Istio 服务网格开发.本文将帮助你利用Docker CE桌面版,15分钟 ...

  8. Docker Kubernetes 环境搭建

    Docker Kubernetes 环境搭建 节点规划 版本 系统:Centos 7.4 x64 Docker版本:18.09.0 Kubernetes版本:v1.8 etcd存储版本:etcd-3. ...

  9. 本地k8s环境minikube搭建过程

    首先要安装docker这个环境是需要自己安装的.相关步骤如下: 1 2 3 4 5 6 7 8 9 10 11 yum install -y yum-utils device-mapper-persi ...

  10. 二进制搭建kubernetes多master集群【开篇、集群环境和功能介绍】

    本文主要说明kubernetes集群使用组建的版本和功能介绍.. 一.组件版本 Kubernetes 1.12.3 Docker 18.06.1-ce Etcd 3.3.10 Flanneld 0.1 ...

随机推荐

  1. 使用MathNet.Numerics库构造矩阵并初始化时,编译器报错“this方法没有任何重载采用"1"个参数”

    最近在使用MathNet.Numerics库作一些数据处理工作,构造一个矩阵并初始化时,编译器报错"this方法没有任何重载采用"1"个参数". 问题分析: 构 ...

  2. 关于存入sessionStorage中boolean值拿出来为字符串

    上面是html部分,然后定义了变量 定义方法 在mounted中获取,然后刷新页面,打印类型为字符串 解决办法

  3. CDS标准视图:功能位置 I_FunctionalLocation

    视图名称:I_FunctionalLocation 视图类型:基础 视图代码: 点击查看代码 @EndUserText.label: 'Functional Location' @Analytics: ...

  4. w3cschool-Flink 入门

    Flink 入门   Apache Flink是一个框架和分布式处理引擎,用于在无界和有界数据流上进行有状态的计算.Flink被设计为在所有常见的集群环境中运行,以内存中的速度和任何规模执行计算. A ...

  5. 【Docker】---Docker入门篇(1)

    Docker入门篇 简单一句话: Docker 是一个便携的应用容器. 一.Docker的作用 网上铺天盖地的是这么说的: (1) Docker 容器的启动可以在秒级实现,这相比传统的虚拟机方式要快得 ...

  6. MYSQL查询7天内、7月内的所有日期

    select DATE_SUB(CURDATE(), INTERVAL 6 DAY) ; SELECT date_add( date_sub( ( SELECT DATE_SUB( curdate( ...

  7. colab 使用技巧

    无法进入目录 import os path = "/content/TaBERT/" os.chdir(path) print(os.getcwd()) 无法执行conda !pi ...

  8. 解密prompt系列47. O1 Long Thought的一些特征分析

    之前我们花很多章讨论过思维链,包括思维链的 组织结构,例如Self-Consistency,TOT,TOMT, GOT,AOT,POT 编排方式,例如Plan-and-Slove,Least-to-m ...

  9. Lucas 定理证明与扩展

    Lucas 定理及其证明.扩展 \[\binom{n}{m}\equiv\binom{n/p}{m/p}\binom{n\bmod p}{m\bmod p}\pmod p,\text{where}\ ...

  10. linux mint安装远程连接工具,类似于xshell的PAC

    从指定的URL下载文件 wget http://sourceforge.net/projects/pacmanager/files/pac-4.0/pac-4.5.5.7-all.deb   安装依赖 ...