Minikube安装成功Kubernetes,一次过!

2024-01-14 18:59

本文主要是介绍Minikube安装成功Kubernetes,一次过!,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

介绍

16c19bbdaba1b047?w=3600&h=3493&f=png&s=326187

Minikube 是 K8S 官方为了开发者能在个人电脑上运行 K8S 而提供的一套工具。实现上是通过 Go 语言编写,通过调用虚拟化管理程序,创建出一个运行在虚拟机内的单节点集群。

注:从这里也可以看出,对于 K8S 集群的基本功能而言,节点数并没有什么限制。只有一个节点同样可以创建集群。

大家在实际开发和体验 Kubernetes时,可能会遇到网络访问的原因或者其他的坑导致很多朋友无法使用minikube进行实验。因此我通过撰写这篇博客,让大家少走一点弯路。阿里云提供了一个修改版的Minikube,可以从阿里云的镜像地址来获取Docker镜像和配置。

坑位盘点

  1. unable to cache ISO: connection failed because connected host has failed to respond.

    终端报错信息:

    minikube starto   minikube v0.35.0 on windows (amd64)
    >   Creating virtualbox VM (CPUs=2, Memory=2048MB, Disk=20000MB) ...
    @   Downloading Minikube ISO ...
    !   Unable to start VM: unable to cache ISO: https://storage.googleapis.com/minikube/iso/minikube-v0.35.0.iso: failed to download: failed to download to temp file: download failed: 5 error(s) occurred
    :* Temporary download error: Get https://storage.googleapis.com/minikube/iso/minikube-v0.35.0.iso: dial tcp 216.58.207.144:443: connectex: A connection attempt failed because the connected party did no
    t properly respond after a period of time, or established connection failed because connected host has failed to respond.
    * Temporary download error: Get https://storage.googleapis.com/minikube/iso/minikube-v0.35.0.iso: dial tcp 216.58.207.144:443: connectex: A connection attempt failed because the connected party did no
    t properly respond after a period of time, or established connection failed because connected host has failed to respond.
    * Temporary download error: Get https://storage.googleapis.com/minikube/iso/minikube-v0.35.0.iso: dial tcp 216.58.207.144:443: connectex: A connection attempt failed because the connected party did no
    t properly respond after a period of time, or established connection failed because connected host has failed to respond.
    * Temporary download error: Get https://storage.googleapis.com/minikube/iso/minikube-v0.35.0.iso: dial tcp 216.58.207.144:443: connectex: A connection attempt failed because the connected party did no
    t properly respond after a period of time, or established connection failed because connected host has failed to respond.
    * Temporary download error: Get https://storage.googleapis.com/minikube/iso/minikube-v0.35.0.iso: dial tcp 216.58.207.144:443: connectex: A connection attempt failed because the connected party did no
    t properly respond after a period of time, or established connection failed because connected host has failed to respond.

    报错原因: 由于无法从外网下载Minikube ISO出现如上报错。

    解决办法: 修改镜像地址为国内资源,解决网络错误。

  2. Minikube doesn't run on VirtualBox

    终端报错信息:

    minikube start? minikube v1.0.1 on linux (amd64) ? Downloading Kubernetes v1.14.1 images in the background ... ? Creating virtualbox VM (CPUs=2, Memory=2048MB, Disk=20000MB) ...? Unable to start VM: create: creating: Unable to start the VM: /usr/bin/VBoxManage startvm minikube --type headless failed: VBoxManage: error: The virtual machine 'minikube' has terminated unexpectedly during startup with exit code 1 (0x1) VBoxManage: error: Details: code NS_ERROR_FAILURE (0x80004005), component MachineWrap, interface IMachine? Sorry that minikube crashed. If this was unexpected, we would love to hear from you: ? https://github.com/kubernetes/minikube/issues/new

    报错原因: VT-x/AMD-v虚拟化在所有CPU中被禁用。

    解决方法: VT-x/AMD-v虚拟化必须在BIOS中开启。

    参考文档: https://jingyan.baidu.com/article/fc07f98976710e12ffe519de.html

  3. [MACHINE_DOES_NOT_EXST] Error getting state for host: machine does not exist

    终端报错信息

    [sudo] james 的密码: 
    ?  minikube v1.2.0 on linux (amd64)
    ⚠️  Please don't run minikube as root or with 'sudo' privileges. It isn't necessary.
    ✅  using image repository registry.cn-hangzhou.aliyuncs.com/google_containers
    ?  Tip: Use 'minikube start -p <name>' to create a new cluster, or 'minikube delete' to delete this one.
    E0722 14:57:51.637843    5215 start.go:559] StartHost: Error getting state for host: machine does not exist?  Unable to start VM
    ❌  Error:         [MACHINE_DOES_NOT_EXST] Error getting state for host: machine does not exist
    ?  Advice:        Run 'minikube delete' to delete the stale VM
    ⁉️   Related issues:▪ https://github.com/kubernetes/minikube/issues/3864?  If the above advice does not help, please let us know: 
    ?  https://github.com/kubernetes/minikube/issues/new
    

    报错原因: 已经被使用过VM

    解决办法: minikute delete

注:

  • 本文已更新到 Minikube v1.2.0/Kubernetes v1.15+

  • 如需更新minikube,需要更新 minikube 安装包

    • minikube delete 删除现有虚机,删除 ~/.minikube 目录缓存的文件
    • 重新创建 minikube 环境
  • Docker社区版也为Mac/Windows用户提供了Kubernetes开发环境的支持 https://yq.aliyun.com/articles/508460,大家也可以试用

配置

先决条件

  • 安装 kubectl

Minikube在不同操作系统上支持不同的驱动

  • macOS
    • xhyve driver, VirtualBox 或 VMware Fusion
  • Linux
    • VirtualBox 或 KVM
    • NOTE: Minikube 也支持 --vm-driver=none 选项来在本机运行 Kubernetes 组件,这时候需要本机安装了 Docker。在使用 0.27版本之前的 none 驱动时,在执行 minikube delete 命令时,会移除 /data 目录,请注意,问题说明;另外 none 驱动会运行一个不安全的API Server,会导致安全隐患,不建议在个人工作环境安装。
  • Windows
    • VirtualBox 或 Hyper-V - 请参考下文

注:

  • 由于minikube复用了docker-machine,在其软件包中已经支持了相应的VirtualBox, VMware Fusion驱动
  • VT-x/AMD-v 虚拟化必须在 BIOS 中开启
  • 在Windows环境下,如果开启了Hyper-V,不支持VirtualBox方式

Kubernetes 1.14+ release

我们提供了最新的Minikube修改版的文件,可以直接下载使用

Mac OSX

curl -Lo minikube http://kubernetes.oss-cn-hangzhou.aliyuncs.com/minikube/releases/v1.2.0/minikube-darwin-amd64 && chmod +x minikube && sudo mv minikube /usr/local/bin/

Linux

curl -Lo minikube http://kubernetes.oss-cn-hangzhou.aliyuncs.com/minikube/releases/v1.2.0/minikube-linux-amd64 && chmod +x minikube && sudo mv minikube /usr/local/bin/

Windows

下载 minikube-windows-amd64.exe 文件,并重命名为 minikube.exe

自己构建

也可以从Github上获取相应的项目自行构建。

注:需要本地已经安装配置好 Golang 开发环境和Docker引擎

git clone https://github.com/AliyunContainerService/minikube
cd minikube
git checkout aliyun-v1.2.0
make
sudo cp out/minikube /usr/local/bin/

启动

缺省Minikube使用VirtualBox驱动来创建Kubernetes本地环境

minikube start --registry-mirror=https://registry.docker-cn.com?  minikube v1.2.0 on linux (amd64)
⚠️  Please don't run minikube as root or with 'sudo' privileges. It isn't necessary.
✅  using image repository registry.cn-hangzhou.aliyuncs.com/google_containers
?  Creating virtualbox VM (CPUs=2, Memory=2048MB, Disk=20000MB) ...
?  Configuring environment for Kubernetes v1.15.0 on Docker 18.09.6
?  Pulling images ...
?  Launching Kubernetes ... 
⌛  Verifying: apiserver proxy etcd scheduler controller dns
?  Done! kubectl is now configured to use "minikube"

支持不同的Kubernetes版本

# 安装Kubernetes v1.12.1
minikube start --registry-mirror=https://registry.docker-cn.com --kubernetes-version v1.12.1

打开Kubernetes控制台

minikube dashboard

image

对于使用Hyper-V环境的用户,首先应该打开Hyper-V管理器创建一个外部虚拟交换机,

create

hyper_v

之后,我们可以用如下命令来创建基于Hyper-V的Kubernetes测试环境

.\minikube.exe start --registry-mirror=https://registry.docker-cn.com --vm-driver="hyperv" --memory=4096 --hyperv-virtual-switch="MinikubeSwitch"

注:需要管理员权限来创建Hyper-V虚拟机

Minikube基本操作

检测集群状态,运行:

 kubectl cluster-infoKubernetes master is running at https://192.168.99.100:8443
KubeDNS is running at https://192.168.99.100:8443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxyTo further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.

Ubuntu下,Minikube的配置文件在如下路径

~/.minikube/machines/minikube/config.json

查看配置文件内容:

kubectl config viewapiVersion: v1
clusters:
- cluster:certificate-authority: /home/james/.minikube/ca.crtserver: https://192.168.99.100:8443name: minikube
contexts:
- context:cluster: minikubeuser: minikubename: minikube
current-context: minikube
kind: Config
preferences: {}
users:
- name: minikubeuser:client-certificate: /home/james/.minikube/client.crtclient-key: /home/james/.minikube/client.key

检验Node状态:

kubectl get nodesNAME       STATUS   ROLES    AGE   VERSION
minikube   Ready    master   11m   v1.15.0

使用ssh进入Minikube虚机:

sudo minikube ssh
                         _             _            _         _ ( )           ( )           ___ ___  (_)  ___  (_)| |/')  _   _ | |_      __  
/' _ ` _ `\| |/' _ `\| || , <  ( ) ( )| '_`\  /'__`\
| ( ) ( ) || || ( ) || || |\`\ | (_) || |_) )(  ___/
(_) (_) (_)(_)(_) (_)(_)(_) (_)`\___/'(_,__/'`\____)$ 

停止运行中的kubernetes集群:

$ minikube stop

删除本地的kubernetes集群:

$ minikube delete

打开Kubernetes控制台

Kubernete附带一个web,允许您在不与命令行交互的情况下管理集群。在minikube上默认安装并启用仪表板插件

$ minikube addons list- addon-manager: enabled
- coredns: disabled
- dashboard: enabled
- default-storageclass: enabled
- efk: disabled
- freshpod: disabled
- heapster: disabled
- ingress: disabled
- kube-dns: enabled
- metrics-server: disabled
- registry: disabled
- registry-creds: disabled
- storage-provisioner: enabled

要直接在默认浏览器上打开,请使用:

$ minikube dashboard

获取仪表板的URL

$ minikube dashboard --url
http://192.168.39.117:30000

通过打开您最喜欢的浏览器上的URL访问Kubernetes Dashboard。进一步阅读,请查看:

  • 你好Minikube系列: https://kubernetes.io/docs/tutorials/stateless-application/hello-minikube/

  • minkube新手指南: https://kubernetes.io/docs/getting-started-guides/minikube/

使用Minikube

Minikube利用本地虚拟机环境部署Kubernetes,其基本架构如下图所示。
4

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

好了,开始探索Kubernetes的世界吧!:-)

参考连接:

  • https://computingforgeeks.com/how-to-install-minikube-on-ubuntu-18-04/
  • https://www.virtualbox.org/wiki/Linux_Downloads
  • https://github.com/kubernetes/minikube/issues/3922
  • https://stackoverflow.com/questions/55988282/minikube-doesnt-run-on-virtualbox
  • https://github.com/AliyunContainerService/minikube/releases
  • https://yq.aliyun.com/articles/221687
  • https://jingyan.baidu.com/article/fc07f98976710e12ffe519de.html
  • https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors
  • https://github.com/kubernetes/minikube/issues/3864

转载于:https://www.cnblogs.com/sanshengshui/p/11228985.html

这篇关于Minikube安装成功Kubernetes,一次过!的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/606189

相关文章

Zookeeper安装和配置说明

一、Zookeeper的搭建方式 Zookeeper安装方式有三种,单机模式和集群模式以及伪集群模式。 ■ 单机模式:Zookeeper只运行在一台服务器上,适合测试环境; ■ 伪集群模式:就是在一台物理机上运行多个Zookeeper 实例; ■ 集群模式:Zookeeper运行于一个集群上,适合生产环境,这个计算机集群被称为一个“集合体”(ensemble) Zookeeper通过复制来实现

CentOS7安装配置mysql5.7 tar免安装版

一、CentOS7.4系统自带mariadb # 查看系统自带的Mariadb[root@localhost~]# rpm -qa|grep mariadbmariadb-libs-5.5.44-2.el7.centos.x86_64# 卸载系统自带的Mariadb[root@localhost ~]# rpm -e --nodeps mariadb-libs-5.5.44-2.el7

Centos7安装Mongodb4

1、下载源码包 curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.2.1.tgz 2、解压 放到 /usr/local/ 目录下 tar -zxvf mongodb-linux-x86_64-rhel70-4.2.1.tgzmv mongodb-linux-x86_64-rhel70-4.2.1/

Centos7安装JDK1.8保姆版

工欲善其事,必先利其器。这句话同样适用于学习Java编程。在开始Java的学习旅程之前,我们必须首先配置好适合的开发环境。 通过事先准备好这些工具和配置,我们可以避免在学习过程中遇到因环境问题导致的代码异常或错误。一个稳定、高效的开发环境能够让我们更加专注于代码的学习和编写,提升学习效率,减少不必要的困扰和挫折感。因此,在学习Java之初,投入一些时间和精力来配置好开发环境是非常值得的。这将为我

安装nodejs环境

本文介绍了如何通过nvm(NodeVersionManager)安装和管理Node.js及npm的不同版本,包括下载安装脚本、检查版本并安装特定版本的方法。 1、安装nvm curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash 2、查看nvm版本 nvm --version 3、安装

Kubernetes PodSecurityPolicy:PSP能实现的5种主要安全策略

Kubernetes PodSecurityPolicy:PSP能实现的5种主要安全策略 1. 特权模式限制2. 宿主机资源隔离3. 用户和组管理4. 权限提升控制5. SELinux配置 💖The Begin💖点点关注,收藏不迷路💖 Kubernetes的PodSecurityPolicy(PSP)是一个关键的安全特性,它在Pod创建之前实施安全策略,确保P

计算机毕业设计 大学志愿填报系统 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点赞 👍 收藏 ⭐评论 📝 🍅 文末获取源码联系 👇🏻 精彩专栏推荐订阅 👇🏻 不然下次找不到哟~Java毕业设计项目~热门选题推荐《1000套》 目录 1.技术选型 2.开发工具 3.功能

SWAP作物生长模型安装教程、数据制备、敏感性分析、气候变化影响、R模型敏感性分析与贝叶斯优化、Fortran源代码分析、气候数据降尺度与变化影响分析

查看原文>>>全流程SWAP农业模型数据制备、敏感性分析及气候变化影响实践技术应用 SWAP模型是由荷兰瓦赫宁根大学开发的先进农作物模型,它综合考虑了土壤-水分-大气以及植被间的相互作用;是一种描述作物生长过程的一种机理性作物生长模型。它不但运用Richard方程,使其能够精确的模拟土壤中水分的运动,而且耦合了WOFOST作物模型使作物的生长描述更为科学。 本文让更多的科研人员和农业工作者

K8S(Kubernetes)开源的容器编排平台安装步骤详解

K8S(Kubernetes)是一个开源的容器编排平台,用于自动化部署、扩展和管理容器化应用程序。以下是K8S容器编排平台的安装步骤、使用方式及特点的概述: 安装步骤: 安装Docker:K8S需要基于Docker来运行容器化应用程序。首先要在所有节点上安装Docker引擎。 安装Kubernetes Master:在集群中选择一台主机作为Master节点,安装K8S的控制平面组件,如AP

什么是Kubernetes PodSecurityPolicy?

@TOC 💖The Begin💖点点关注,收藏不迷路💖 1、什么是PodSecurityPolicy? PodSecurityPolicy(PSP)是Kubernetes中的一个安全特性,用于在Pod创建前进行安全策略检查,限制Pod的资源使用、运行权限等,提升集群安全性。 2、为什么需要它? 默认情况下,Kubernetes允许用户自由创建Pod,可能带来安全风险。