在使用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. Go-25-文件管理

    FileInfo接口 package main import ( "fmt" "os" ) // FileInfo 接口文件的信息包括文件名.文件大小.修改权限 ...

  2. day18.进程2

    1 进程调度算法(了解) -先来先服务调度算法 -短作业优先调度算法 -时间片轮转法 -多级反馈队列 2 同步异步,阻塞非阻塞(了解) 1 同步调用:提交了以后,一直等待结果返回 2 异步调用:提交了 ...

  3. Day11_52_将Set集合转换为List集合

    Set集合转换为List集合 ``` import java.util.*; public class SetReverseLsit { public static void main(String[ ...

  4. kubernetes的Deployment, DaemonSet, Job 和 CronJob事例

    k8s kubernetes给node节点添加标签和删除node节点标签 Deployment配置文件exampledeploymentv1.yaml apiVersion: apps/v1 kind ...

  5. 1.人工智能解读与Python简介

    人工智能解读 Python解读 Python 简介 1.程序员: 程序设计人员. 2.程序: 一组计算机能识别和执行的指令,是实现某种需求的软件. 3.操作系统: 管理和控制计算机软件与硬件资源的程序 ...

  6. Windows中的权限设置、文件压缩、文件加密、磁盘配额和卷影副本

      目录 权限设置 文件夹的NTFS权限 文件的NTFS权限 NTFS权限的应用规则 文件压缩 文件加密 磁盘配额 卷影副本 权限设置的应用 遇到的一个权限问题的小bug 权限问题的实际应用 权限设置 ...

  7. DVWA之Brute Force(暴力破解)

    目录 Low Medium High Impossible 暴力破解是指使用穷举法,举出所有的可能的结果,然后逐一验证是否正确! Low 源代码: <?php if( isset( $_GET[ ...

  8. C#-web Post/Get

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.N ...

  9. jupyter中那些神奇的第三方拓展魔术命令

    1 简介 无论是jupyter notebook还是jupyter lab,都可以使用ipython中的众多自带魔术命令来实现丰富的辅助功能,诸如%time之类的. 这些都已经是老生常谈的知识没什么好 ...

  10. chemfig化学式转换为pdf

    SMILES 与 chemfig 针对化学分子结构,可以用SMILES (用ASCII字符串明确描述分子结构的规范)来定义. SMILES(Simplified molecular input lin ...