前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >minikube与kubectl版本不一致问题

minikube与kubectl版本不一致问题

原创
作者头像
王清培
修改2021-05-31 10:28:16
9150
修改2021-05-31 10:28:16
举报
文章被收录于专栏:腾讯云TVP腾讯云TVP

在使用minikube学习的时候,会出现你在mac上安装的minikube默认是最新版本,但是实际情况是需要安装低一些版本。可以按照k8s官方文档安装的时候指定不同安装版本,如果很慢或者无法访问直接走github安装也行。

代码语言:javascript
复制
curl -LO https://github.com/kubernetes/minikube/releases/download/v1.16.0/minikube-linux-amd64sudo install minikube-linux-amd64 /usr/local/bin/minikube

比较尴尬的是安装kubectl工具,默认使用brew安装的一定是最新的版本,最新的版本一些命令已经移除了,比较常见的就是

代码语言:javascript
复制
kubectl run kubia --image=wangqingpei/kubia --port=8080 --generator=run/v1Error: unknown flag: --generatorSee 'kubectl run --help' for usage.

由于一些原因,还尴尬的就是k8s官方安装路径是访问不了的。如:https://storage.googleapis.com.cnpmjs.org/release

github上kubectl的release也都是一些源文件,安装起来也很麻烦。

通过国内一些镜像站点也没有mac上的kubectl版本,只有linux类的。如:https://mirrors.ustc.edu.cn/kubernetes/apt/pool/

如果非要在mac上使用有个办法就是在docker里跑kubectl指定版本,然后设置~.kube/config。

如果minikube不经常重启,端口是固定的就不需要每次设置,基础镜像的时候就设置进去。

  • step1:容器里安装kubectl 直接 wget下载,我是使用的deb文件,需要安装下dpkg,然后复制到/usr/local/bin,再试下版本是否正确。
代码语言:javascript
复制
wget https://mirrors.ustc.edu.cn/kubernetes/apt/pool/kubectl_1.10.0-00_amd64_e391c19fa377b84587676c5577222ceb5d8fcbde442c79a9cd55d1f344293834.debdpkg -X 解压deb文件
  • step2:将容器导出镜像,便于随时使用
代码语言:javascript
复制
d commit -a "@plen" -m"kubectlv1.10.7" kubectl  kubectlv1.10.7
  • step3:设置kubectl客户端证书和配置
代码语言:javascript
复制
vim ~.kube/config

通过mac宿主机器的 k config view 直接复制粘贴

代码语言:javascript
复制
apiVersion: v1clusters:- cluster:    certificate-authority: /Users/wangqingpei/.minikube/ca.crt    server: https://host.docker.internal:57219  name: minikubecontexts:- context:    cluster: minikube    user: minikube  name: minikubecurrent-context: minikubekind: Configpreferences: {}users:- name: minikube  user:    client-certificate: /Users/wangqingpei/.minikube/profiles/minikube/client.crt    client-key: /Users/wangqingpei/.minikube/profiles/minikube/client.key

地址 host.docker.internal 是为了在容器里访问宿主端口。

  • step 4:启动镜像&设置volume卷映射 这一步只要将config原路径完整映射即可。
代码语言:javascript
复制
d run -it --rm --name kubectl2  \-v /Users/wangqingpei/.minikube/profiles/minikube/client.crt:/Users/wangqingpei/.minikube/profiles/minikube/client.crt \-v /Users/wangqingpei/.minikube/ca.crt:/Users/wangqingpei/.minikube/ca.crt \-v /Users/wangqingpei/.minikube/profiles/minikube/client.key:/Users/wangqingpei/.minikube/profiles/minikube/client.key \kubectlv1.10.7
  • step 5:如果觉得麻烦,将上述过程做成Dockerfile
代码语言:javascript
复制
FROM debian:latestMAINTAINER "kubectl@plen"RUN apt-get -y update && \    apt-get -y  install wget && \    apt-get -y install vim && \    wget https://mirrors.ustc.edu.cn/kubernetes/apt/pool/kubectl_1.10.7-00_amd64_52542710044cb4ad30def799dc4392d18a56cd6f2dc0d675825a085d0b2882f1.deb && \    dpkg -X ./kubectl_1.10.7-00_amd64_52542710044cb4ad30def799dc4392d18a56cd6f2dc0d675825a085d0b2882f1.deb extract && \    mv ./extract/usr/bin/kubectl /usr/local/binENTRYPOINT ["bash"]

如果在容器里使用kubectl出现认证问题加上 --insecure-skip-tls-verify 参数。

额外提下,如果在mac里跑k8s service 不通的话记得使用 minikube tunnel 隧道 。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器镜像服务
容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档