阿里云安装 minikube v1.9.2

阿里云安装 minikube v1.9.2

日期:2020年5月6日

一、环境

阿里云 centos8 2c4g

二、安装docker

  • centos官方安装教程 https://docs.docker.com/engine/install/centos/
  • 国内阿里云centos8安装参考资料 https://yq.aliyun.com/articles/748412
  • 安装完后可做的操作 https://docs.docker.com/engine/install/linux-postinstall/#manage-docker-as-a-non-root-user

问题1:yum/dnf error: Failed to download metadata for repo

dnf clean all && rm -r /var/cache/dnf  && dnf upgrade -y && dnf update -y

参考网址:
https://stackoverflow.com/questions/59993633/yum-dnf-error-failed-to-download-metadata-for-repo

问题2:containerd.io版本过低

wget https://download.docker.com/linux/centos/7/x86_64/stable/Packages/containerd.io-1.2.6-3.3.el7.x86_64.rpm  
yum install containerd.io-1.2.6-3.3.el7.x86_64.rpm #安装containerd.io
#再次重新安装docker
yum install docker-ce docker-ce-cli containerd.io

三、下载 minikube

  • 官方安装 https://minikube.sigs.k8s.io/docs/start/
  • 阿里云安装教程 https://github.com/AliyunContainerService/minikube/wiki
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-1.9.2-0.x86_64.rpm
sudo rpm -ivh minikube-1.9.2-0.x86_64.rpm

四、启动 minikube

  1. 启动时需要创建新用户,用户组可以加入到docker组,用户、用户组可以加入sudoers列表

例如:

sudo useradd k8s
sudo passwd k8s
sudo usermod -aG docker k8s

chmod u+w /etc/sudoers
vim /etc/sudoers
chmod u-w /etc/sudoers
  1. 国内启动镜像需要一些参数支持,启动命令如下
minikube start \
    --image-mirror-country=cn \
    --registry-mirror=https://xxx.mirror.aliyuncs.com \
    --image-repository=registry.cn-hangzhou.aliyuncs.com/google_containers \
    --iso-url=https://kubernetes.oss-cn-hangzhou.aliyuncs.com/minikube/iso/minikube-v1.9.0.iso
  • 可以使用 minikube start -h 查询参数说明
  • registry-mirror 设置为自己的阿里云镜像加速器
  • iso-url 指定阿里云做的国内iso镜像 官宣
  • image-repository 指定使用阿里云的镜像仓库
  • 参考网址 普大喜奔,官方Minikube提供了完整对国内用户支持 https://github.com/AliyunContainerService/minikube
  1. 成功命令行示例
😄  minikube v1.9.2 on Centos 8.1.1911
✨  Using the docker driver based on existing profile
✅  Using image repository registry.cn-hangzhou.aliyuncs.com/google_containers
👍  Starting control plane node m01 in cluster minikube
🚜  Pulling base image ...
💾  Downloading Kubernetes v1.18.0 preload ...
🤷  docker "minikube" container is missing, will recreate.
🔥  Creating Kubernetes in docker container with (CPUs=2) (2 available), Memory=2200MB (3637MB available) ...
🐳  Preparing Kubernetes v1.18.0 on Docker 19.03.2 ...
    ▪ kubeadm.pod-network-cidr=10.244.0.0/16
🏄  Done! kubectl is now configured to use "minikube"

问题1:Unable to find image ‘gcr.io/k8s-minikube/kicbase:v0.0.8@sha256:2f3380ebf1bb0c75b0b47160fd4e61b7b8fef0f1f32f9def108d3eada50a7a81’

  1. 找可以fq的服务器(例如自己电脑),下一个镜像,然后打包上传到服务器。或许直接下载我上传的资源也可
docker pull gcr.io/k8s-minikube/kicbase:v0.0.8
docker save gcr.io/k8s-minikube/kicbase:v0.0.8 | gzip > kicbase.tar.gz
scp kicbase.tar.gz root@xxx
docker load < kicbase.tar.gz
  1. 缺失RepoDigest时,修改该镜像RepoDigest

不修改无法拉取到,参考:https://github.com/kubernetes/minikube/blob/5ea20f5a06b6000428d26a7a80f0f852d5148696/pkg/minikube/image/image.go

vim /var/lib/docker/image/overlay2/repositories.json
{"Repositories":{"gcr.io/k8s-minikube/kicbase":{"gcr.io/k8s-minikube/kicbase:v0.0.8":"sha256:11589cdc9ef4b67a64cc243dd3cf013e81ad02bbed105fc37dc07aa272044680"},"java":{"java:latest":"sha256:d23bdf5b1b1b1afce5f1d0fd33e7ed8afbc084b594b9ccf742a5b27080d8a4a8","java@sha256:c1ff613e8ba25833d2e1940da0940c3824f03f802c449f3d1815a66b7f8c0e9d":"sha256:d23bdf5b1b1b1afce5f1d0fd33e7ed8afbc084b594b9ccf742a5b27080d8a4a8"}}}

# 改为下面

{"Repositories":{"gcr.io/k8s-minikube/kicbase":{"gcr.io/k8s-minikube/kicbase@sha256:2f3380ebf1bb0c75b0b47160fd4e61b7b8fef0f1f32f9def108d3eada50a7a81" : "sha256:11589cdc9ef4b67a64cc243dd3cf013e81ad02bbed105fc37dc07aa272044680","gcr.io/k8s-minikube/kicbase:v0.0.8":"sha256:11589cdc9ef4b67a64cc243dd3cf013e81ad02bbed105fc37dc07aa272044680"},"java":{"java:latest":"sha256:d23bdf5b1b1b1afce5f1d0fd33e7ed8afbc084b594b9ccf742a5b27080d8a4a8","java@sha256:c1ff613e8ba25833d2e1940da0940c3824f03f802c449f3d1815a66b7f8c0e9d":"sha256:d23bdf5b1b1b1afce5f1d0fd33e7ed8afbc084b594b9ccf742a5b27080d8a4a8"}}}
systemctl restart docker

五、启动 minikube dashboard

# 运行命令
minikube dashboard

如何简单外网访问

minikube 会绑定到指定ip上,并在其上暴露端口,可以通过命令查看

minikube ip

ps: 使用 nodeport 类型,会在绑定 ip 上暴露 node 端口哦,请注意。
https://stackoverflow.com/questions/40767164/expose-port-in-minikube

dashboard 使用 proxy 跑起来的,会绑定 ip 127.0.0.1 内网和外网都不可直接访问

  1. 利用nginx做反向代理
  2. 本地使用隧道,例如 core tunnel
  3. 其他代理及负载均衡

ps: 别忘记跨域问题

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值