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

curl -LO https://github.com/kubernetes/minikube/releases/download/v1.16.0/minikube-linux-amd64
sudo install minikube-linux-amd64 /usr/local/bin/minikube

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

kubectl run kubia --image=wangqingpei/kubia --port=8080 --generator=run/v1
Error: unknown flag: --generator
See '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,再试下版本是否正确。
wget https://mirrors.ustc.edu.cn/kubernetes/apt/pool/kubectl_1.10.0-00_amd64_e391c19fa377b84587676c5577222ceb5d8fcbde442c79a9cd55d1f344293834.deb

dpkg -X 解压deb文件
  • step2:将容器导出镜像,便于随时使用
d commit -a "@plen" -m"kubectlv1.10.7" kubectl  kubectlv1.10.7
  • step3:设置kubectl客户端证书和配置
vim ~.kube/config

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

apiVersion: v1
clusters:
- cluster:
certificate-authority: /Users/wangqingpei/.minikube/ca.crt
server: https://host.docker.internal:57219
name: minikube
contexts:
- context:
cluster: minikube
user: minikube
name: minikube
current-context: minikube
kind: Config
preferences: {}
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原路径完整映射即可。
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
FROM debian:latest
MAINTAINER "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/bin
ENTRYPOINT ["bash"]

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

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

minikube与kubectl版本不一致问题的更多相关文章

  1. linux显示git commit id,同时解决insmod模块时版本不一致导致无法加载问题

    linux内核默认会包含git的commit ID. 而linux的内核在insmod模块时,会对模块和内核本身的版本做严格的校验.在开发产品时,改动内核后,由于commit ID变更,会导致linu ...

  2. 关于 C# 调用 JavaWebservice服务,版本不一致的问题

    1. A SOAP 1.2 message is not valid when sent to a SOAP 1.1 only endpoint.   问题原因: 客户端和服务端的SOAP协议版本不一 ...

  3. Exception in thread "main" java.lang.UnsupportedClassVersionError: org/apache/ma ven/cli/Maven/java与javac版本不一致问题

    编译的时候 中出现如下异常: Exception in thread "main" Java.lang.UnsupportedClassVersionError: org/apac ...

  4. 安装多JDK后,java编译环境和运行环境版本(JDK版本) 不一致解决:

    由于之前安装过JDK1.7 ,现在一个项目是JDK1.5的,那么需要更改了环境变量了,此处不再赘述如何设置JDK 的环境变量了.然后网上找来方法: 在安装多个jdk后,出现了java -version ...

  5. Unsupported major.minor version 51.0 在配置/运行Maven工程时,JDK与Maven所引用的jdk版本不一致

    在配置Maven工程,部署到tomcat服务器运行的过程中,遇到如下错误: "Unsupported major.minor version 51.0 " 错误原因是由于maven ...

  6. ORA-00214: control file 控制文件版本不一致

    故障现象:今日学习oracle控制文件移动和修改,发现本机安装oracle数据库启动时只使用了一个控制文件.如下:SQL> select * from V$controlfile; STATUS ...

  7. Java环境变量配置&解决版本不一致问题

    之前用Myeclipse编译运行Java没有问题 但是突然想用简单点的NotePad++以及cmd直接编译运行Java 这就让我倒腾了一晚上 先说下问题的解决,再总结下查阅的一些知识. 1.进行win ...

  8. opencv和javacv版本不一致

    Exception in thread "main" java.lang.UnsatisfiedLinkError: no jniopencv_highgui in java.li ...

  9. Maven版本不一致的时候,使用指定版本进行编译

    最近用Maven打包项目(本地jdk11)后放到服务器(jdk8)后,报[java.lang.UnsupportedClassVersionError]版本不一致错误. 网上资料说是修改Intelli ...

随机推荐

  1. redhat7.6 安装 Python 3

    redhat7.6 默认安装了python2.7. 查看已安装python情况 cd / # 定位到根目录 whereis python # 查看python所在目录 /usr/bin cd /usr ...

  2. Mysql通配符的使用

    通配符的分类:%百分号通配符: 匹配任意字符,包括0个到多个_下划线通配符:表示只能匹配单个字符,不能多也不能少,就是一个字符.    escape:用来转义特定字符 [字符列]  :字符列中任何一个 ...

  3. ArrayList扩容机制以及底层实现

    简介 来源:博客园    作者:吾王彦 博客链接:https://www.cnblogs.com/qinjunlin/p/13724987.html ArrayList动态数组,是 java 中比较常 ...

  4. VScode+Sublime安装与汉化

    两大常用编辑器安装与汉化 想敲代码?工欲善其事,必先利其器,先安装编写代码所需要的工具吧.本期的主角是VScode与Sublime,这是两款比较热门的代码编辑器. 目录: VScode安装与汉化 Su ...

  5. poj2987最大权闭包(输出最少建塔个数)

    题意:      公司要裁员,每个员工被裁掉之后都会有一定的收益(正或者负),有一些员工之间有限制关系,就是裁掉谁之前必须要先裁掉另一个人,问公司的最大收益和最大收益前提下的最小裁员人数? 思路:   ...

  6. html个人笔记

    HTML 1.1常用编辑器 dreamweaver.sublime.webstorm.Hbuilder.vscode 1.2 浏览器内核 分为渲染引擎和JS引擎 渲染引擎:它负责取得网页的内容(HTM ...

  7. 【python】Leetcode每日一题-笨阶乘

    [python]Leetcode每日一题-笨阶乘 [题目描述] 通常,正整数 n 的阶乘是所有小于或等于 n 的正整数的乘积.例如,factorial(10) = 10 * 9 * 8 * 7 * 6 ...

  8. 解决@Autowired警告

    在使用spring框架中的依赖注入注解@Autowired时,idea报了一个警告 被警告的代码如下: @Autowired UserDao userDao; 警告提示信息:Field injecti ...

  9. Python JWT 介绍

    Python JWT 介绍 目录 Python JWT 介绍 1. JWT 介绍 2. JWT 创建 token 2.1 JWT 生成原理 2.2 JWT 校验 token 原理 3. 代码实现 4. ...

  10. mysql注入getshell

    0x00 利用条件 root权限 secure_file_priv=为空或者在网站根目录下(网站根目录为d:\www,secure_file_priv=d:\也可以) 知道绝对路径 gpc关闭,这个应 ...