专栏首页康怀帅的专栏国内使用 minikube

抱歉,你查看的文章已删除

国内使用 minikube

OS:macOS

GitHub:https://github.com/khs1994-docker/minikube

GitHub: https://github.com/kubernetes/minikube

修订记录

  • 2018-01-15:请在之前看过我文章的务必按照本文重新安装配置 minikube
  • 2018-01-15:由于阿里云的 localkube 出现问题(已反馈给相关人员),暂时只能使用我编译的 localkube。

镜像列表

gcr.io/google_containers/kubernetes-dashboard-amd64    v1.8.0              55dbc28356f2        6 weeks ago         119MB
gcr.io/k8s-minikube/storage-provisioner                v1.8.1              4689081edb10        2 months ago        80.8MB
gcr.io/google_containers/k8s-dns-sidecar-amd64         1.14.5              fed89e8b4248        3 months ago        41.8MB
gcr.io/google_containers/k8s-dns-kube-dns-amd64        1.14.5              512cd7425a73        3 months ago        49.4MB
gcr.io/google_containers/k8s-dns-dnsmasq-nanny-amd64   1.14.5              459944ce8cc4        3 months ago        41.4MB
gcr.io/google-containers/kube-addon-manager            v6.4-beta.2         0a951668696f        7 months ago        79.2MB
gcr.io/google_containers/pause-amd64                   3.0                 99e59f495ffa        20 months ago       747kB

本人也是初学 minikube,本文基于 minikube 0.24.1 版本。

如果我们直接使用从 https://github.com/kubernetes/minikube 下载的 minikube 你可能会发现根本不能运行成功。

这是因为它要从 gcr.io 拉取镜像,而国内网络问题导致镜像下载不了,当然也就不能启动了。

知道为什么成功不了,那我们就替换源码中的国外镜像为国内镜像源(阿里云)。

具体要变更哪些文件请看 GitHub

我已经把变更过的文件上传到了 GitHub,本文以这个 git 仓库为源码,重新编译 minikube

安装 kubectl

注意,由于网络问题,从官网下载极有可能下载失败。你可以使用浏览器在国内镜像下载之后移入 PATH https://github.com/khs1994-docker/kubectl-cn-mirror

使用 minikube 必须先安装好 k8s 命令行工具 kubectl

macOS

Docker for Mac 17.12+ 启用 k8s 之后会在 /usr/local/bin 放入 kubectl,所以你无需安装。

Docker for Mac 自带的 k8s 会与 minikube 冲突,请以下命令进行切换。

$ kubectl config get-contexts

CURRENT   NAME                 CLUSTER                      AUTHINFO             NAMESPACE
          docker-for-desktop   docker-for-desktop-cluster   docker-for-desktop
*         minikube             minikube                     minikube

# 切换到 docker 自带的 k8s

$ kubectl config use-context docker-for-desktop


# 切换到 minikube

$ kubectl config use-context minikube

如果你没启用 k8s 那么请使用下面的方法。

$ brew install kubectl

curl

或者使用 curl 下载。

bash

# OS X
$ curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/darwin/amd64/kubectl

# Linux
$ curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl

# Windows
$ curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/windows/amd64/kubectl.exe

fish

# OS X
$ curl -LO https://storage.googleapis.com/kubernetes-release/release/(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/darwin/amd64/kubectl

# Linux
$ curl -LO https://storage.googleapis.com/kubernetes-release/release/(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl

# Windows
$ curl -LO https://storage.googleapis.com/kubernetes-release/release/(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/windows/amd64/kubectl.exe

重新安装 minikube 国内版

注意:国内从 GitHub 下载文件可能较慢,你可以在国内镜像下载之后移入 PATH https://code.aliyun.com/khs1994-docker/minikube/tree/v1.8.0

你可以选择 编译安装 或者 下载安装。为了避免混乱,编译安装的方法,放到了文章最后。

直接下载安装

你可以根据你的操作系统,下载对应的二进制文件。你也可以在命令行使用 curl 下载。

https://github.com/khs1994-docker/minikube/releases

bash

$ curl -LO https://github.com/khs1994-docker/minikube/releases/download/v0.24.1/minikube-`uname -s`-`uname -m`

$ chmod +x minikube-`uname -s`-`uname -m`

$ sudo cp minikube-`uname -s`-`uname -m` /usr/local/bin/minikube

fish

$ curl -LO https://github.com/khs1994-docker/minikube/releases/download/v0.24.1/minikube-(uname -s)-(uname -m)

$ chmod +x minikube-(uname -s)-(uname -m)

$ sudo cp minikube-(uname -s)-(uname -m) /usr/local/bin/minikube

虚拟机驱动

https://github.com/kubernetes/minikube/blob/master/docs/drivers.md

macOS 上默认的驱动是 VirtualBox,但是我们这里选择 hyperkit

注意,你可能看到一些旧教程使用了 xhyve,如果你使用这个驱动,启动时 minikube 会提示你该驱动已经废弃。

WARNING: The xhyve driver is now deprecated and support for it will be removed in a future release.
Please consider switching to the hyperkit driver, which is intended to replace the xhyve driver.
$ curl -LO https://github.com/kubernetes/minikube/releases/download/v0.24.1/docker-machine-driver-hyperkit

$ chmod +x docker-machine-driver-hyperkit

$ sudo mv docker-machine-driver-hyperkit /usr/local/bin/

$ sudo chown root:wheel /usr/local/bin/docker-machine-driver-hyperkit

$ sudo chmod u+s /usr/local/bin/docker-machine-driver-hyperkit

这样我们就安装好了驱动。

启动

$ minikube start --vm-driver=hyperkit --alsologtostderr --v 10

选择一种驱动之后,不要再改变,否则可能会启动失败。

错误排查

若启动时出现错误,请执行以下命令删除本地集群,再重新执行启动命令。

$ minikube delete

如果仍然出现错误请删除 ~/.minikube,再重新执行启动命令。

使用方法

打开控制面板

$ minikube dashboard

Opening kubernetes dashboard in default browser...

之后会自动打开浏览器页面。

查看 IP

$ minikube ip

192.168.64.12

查看状态

$ minikube status

minikube: Running
cluster: Running
kubectl: Correctly Configured: pointing to minikube-vm at 192.168.64.12

查看集群

$ kubectl cluster-info

Kubernetes master is running at https://192.168.64.12:8443

To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.

更多方法请查看后续文章。

关闭

$ minikube stop

附录

Windows 启动 minikube

自行在上面提到的 GitHub国内镜像 下载好 kubectl.exe minikube.exe,并加入 PATH

配置 Hyper-V,具体图解请查看:https://yq.aliyun.com/articles/221687

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

编译安装 minikube

注意:编译安装适用于对 Go 有一定了解的人。

安装 Go

$ brew install go

设置 Go 相关环境变量,自行修改为你自己的路径。

GOROOT="/usr/local/opt/go/libexec"
GOPATH="/Users/khs1994/go"

编译安装

$ git clone -b 0.24.1 --depth=1 git@github.com:khs1994-docker/minikube.git $GOPATH/src/k8s.io/minikube

$ cd $GOPATH/src/k8s.io/minikube

$ make

$ sudo cp out/minikube /usr/local/bin

More Information

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

推荐阅读

  • AI视觉,视频云新挑战的解决之道

    大家好,首先非常荣幸有机会收到LiveVideoStack邀请来和大家分享腾讯视频云在AI视觉上的落地实践与应用,以及AI视觉泛化应用过程遇到的机遇和挑战。

    LiveVideoStack
  • DNSPod十问英迈思陈学丹:美业数字化困局的破壁人

    ? 问答时间:2020年11月19日 嘉宾简介: 陈学丹:国内知名的企业级数字化解决方案服务商--英迈思董事长、犀牛云董事长、首席产品家,SOP数字化中台理念发起人,率先在中国提出企业数字化转型升级的“业务流程化、流程标准化、标准规模化”的SOP数字化管理思想。 主持人简介: 吴洪声(人称:奶罩):腾讯云中小企业产品中心总经理,DNSPod创始人,洋葱令牌创始人,网络安全专家,域名及DNS技术专家,知名个人站长,中欧国际工商学院校友。 以下为对话原文整理: ? 吴洪声:据我了解,你在创业之前是一名老师,老

    腾讯云DNSPod团队
  • Springboot 之基于腾讯云 Serverless 的订单应用

    前言 这是一个 JAVA 开发的订单后台应用(没错!就是那个让无数大学生痛不欲生的订单后台系统),结合 Serverless 这一无服务器思想,尝试通过云函数 + API 网关 + 云数据库的组合来部署 Springboot 的成功之作。 该应用提供了完整的用户登录验证、接口数据验证、订单流 (CRUD) 等强大的功能,而且在本地开发调试时也能模拟 API 网关调用云函数(本地 Java 开发云端部署不是问题),还兼容了云消息队列 CMQ 的调用,以便后续开发引入云中间件。 同时,这种部署方式也能让其他的

    腾讯云serverless团队
  • 简单理解 Kafka 的消息可靠性策略

    ? 作者:hymanzhang,腾讯 IEG 运营开发工程师 背景 部门的开发同学最近在开发一个活动的过程中,需要关注大量的应用后台逻辑,捕捉各种事件的触发。在设计时打算采用 kafka 消息队列进行业务逻辑的解耦,这样活动开发和后台开发同学的工作就分离开了。但是使用的同学不是很熟悉其原理,担心以下几个问题: 我什么业务场景下使用消息队列 我发消息的时候,需要等 ack 嘛? 我发了消息之后,消费者一定会收到嘛? 申请腾讯云的 kafka 实例后,各种参数怎么设置呀? 遇到各种故障时,我的消息会不会丢?

    腾讯技术工程官方号
  • 压测利器:TarsBenchmark正确打开方式

    我们在服务后台的一些APP上线之前,通常会做一些性能的评估,然后会评测一下。例如开发的项目大概可以服务多少用户,以及能够承担多大的并发量?

    腾小云
  • 跨国合作:Serverless Components 在腾讯云的落地和实践

    Serverless是一个重开发和部署的产品应用,服务提供了弹性伸缩、自动运维的能力,开发者主要关心开发和部署。所以,开发和部署的体验对于serverless业务来说是非常重要的。

    腾小云
  • 【重大版本更新】腾讯蓝鲸社区版 V6.0 全新上线!!!

    2020年蓝鲸重磅推出社区版6.0 Beta 版,4款新产品的亮相 + 7款产品的重大更新,想知道还有什么新的变化吗?快来部署体验吧,更多精彩福利等你来拿。

    腾讯蓝鲸智云
  • 云+社区年度征文活动

    2020,注定是个不平凡的一年。疫情的蔓延打乱了大家所有的计划,却打不断广大程序员对技术的那颗炽热的心。时值年末,云+社区和你一起聊聊过去的 2020。

    云加社区
  • 如何用Prometheus监控十万container的Kubernetes集群

    作者黄雷,腾讯云工程师,曾负责构建腾讯云云监控新一代多维业务监控系统,擅长大规模分布式监控系统设计,对golang后台项目架构设计有较深理解,后加入TKE团队,致力于研究Kubernetes相关运维技术,拥有多年Kubernetes集群联邦运维管理经验,目前在团队主要负责大规模集群联邦可观测性提升,主导研发了腾讯云万级Kubernetes集群监控告警系统,智能巡检与风险探测系统。 概述 不久前,我们在文章《如何扩展单个Prometheus实现近万Kubernetes集群监控?》中详细介绍了腾讯云容器服务T

    腾讯云原生
  • 腾讯云容器服务TKE推出新一代零损耗容器网络

    随着容器技术的发展成熟,越来越多的组件迁移到容器,在技术迁移过程中,数据库,游戏,AI 这些组件对容器网络性能(时延,吞吐,稳定性)提出了更高的要求。为了得到更优的时延和吞吐表现,各大云厂商都在致力于缩短节点内容器的网络访问链路,让数据包能尽可能快地转发到容器网卡。 腾讯云容器服务TKE 借助智能网卡推出新一代容器网络方案,实现了一个 Pod 独占一张弹性网卡,不再经过节点网络协议栈(default namespace),极大缩短容器访问链路和访问时延,并使 PPS 可以达到整机上限。基于新一代容器网络方

    腾讯云原生

扫码关注云+社区

领取腾讯云代金券