本文学习k8s参考内容:http://docs.kubernetes.org.cn/126.html,学习过程中遇到一些坑,记录如下:
----------------------------------------------------------------------------------
  k8s目前最好是用linux进行部署,windows跟mac现在虽然有k8s的版本但用起来会有一些问题。最近在自己本地mbp上部署k8s的时候绕了一些弯路,特此记录。
mac上比较方便的一点是docker for mac上集成了k8s,所以直接利用docker for mac安装k8s即可,安装完成后启动,会自动启动一个只有1个节点的k8s集群。好处是不用配了,可以直接使用kubectl命令进行相关操作,坏处是无法自己配多节点集群(mac上的k8s功能是不全的)。
  另一种使用方式是minikube,这个借助于virtualBox或者VMware可以使用多节点伪集群,遗憾的是,经过测试发现minikube在mac上存在bug。
minikube介绍:
  minikube的github官方介绍:
  Minikube is a tool that makes it easy to run Kubernetes locally. Minikube runs a single-node Kubernetes cluster inside a VM on your laptop for users looking to try out Kubernetes or develop with it day-to-day.(Minikube是一种工具,可以在本地轻松运行Kubernetes。Minikube在笔记本电脑的VM中运行单节点Kubernetes集群,供希望尝试Kubernetes或日常开发的用户使用。)
  启动minikube,从控制台也可以看到,启动的时候下载了一个ISO镜像文件,具体运行使用的vm技术由--vm-driver指定。
minikube试过的坑:
  中文官方教程的minikube是在osx系统进行的,但实际按照教程,并不能完整走完整个流程。
第一个错误在minikube启动的时候,所给的命令是minikube start --vm-driver=xhyve,bhyve是FreeBSD下的虚拟技术,xhyve是在基于bhyve的osx版本,体积非常小,只有230k,可以当做virtualBox,VMware Function之外的虚拟机使用。这个命令是设置k8s集群使用虚拟技术为xhybe,它的值包括virtualbox、xhyve、vmwarefusion,默认是virtualbox。该命令最终不能正常
  1、网络不通
  官方原版minikube,本地蓝灯代理,会报错:minikube start --vm-driver=xhyve --docker-env HTTP_PROXY=http://代理ip:端口号 --docker-env HTTPS_PROXY=http://代理ip:端口号

  有一个warning,大意是说xhyve已经被废弃了,后续版本将删除,建议使用hyperkit。报错内容是下载kubelet失败,莫非我代理设置的不对?
  2、国内版本,按照社区的介绍进行启动,会报错
  采用阿里云版本:启动minikube,会停留在starting cluster components......很长时间,最终报异常:

  这个看上去是k8s的代理不能正常启动导致的。没找到解决办法。
  3、正常启动的,无法获取对外网络ip地址
  既然上边有warning提示,那就按照提示用hyperkit吧。安装docker-machine-driver-hyperkit后,minikube start --vm-driver=hyperkit启动,可以启动,但对外暴露的ip是无法获取的:

  minikube start --bootstrapper localkube也是可以启动minikube的,只是要安装virtualBox,最后对外暴露端口问题一样无法解决。
  如果不在外部访问应用,这个倒是也没啥影响,而且教程中所给示例也是这样的。有文章说显示为pending的时候,等一分钟就好,试过了等了好几分钟,仍然这样。
使用docker自带的k8s:
  为啥使用minikube呢,因为当时选的学习教程用的minikube,由于是官方教程,没有丝毫怀疑,结果撞的头破血流。使用minikube不就是为了一个集群环境么,docker for mac已经自带了k8s,而且启动自带一个单节点集群,直接使用岂不美哉?
  因为教程中先把执行环境设置为了minikube,需要先把环境切换为k8s,docker for mac 上右键即可:

  可以看到地址正常了:

  资源删除:
  kubectl delete service hello-node
  kubectl delete deployment hello-node

 
 
 
 

mac上k8s学习踩坑的更多相关文章

  1. 使用Windows下的git工具往github上传代码 踩坑记录

    使用Windows下的git工具往github上传代码 踩坑记录 背景 由于以前接触的项目都是通过svn进行版本控制,现在公司项目使用git,加上自己平时有一个练手小项目,趁着周末试着把项目上传到自己 ...

  2. iOS自动化打包上传的踩坑记

    http://www.cocoachina.com/ios/20160624/16811.html 很久以前就看了很多关于iOS自动打包ipa的文章, 看着感觉很简单, 但是因为一直没有AppleDe ...

  3. react学习 | 踩坑指南

    react样式模块化的"omit -loader"坑 众所周知 react样式的模块化(css modules) 是自己模块中写自己的css,与其他模块互补影响,解决了命名冲突和全 ...

  4. appium mac 下 安装及踩坑

    Appium Appium是一个开源.跨平台的测试框架,可以用来测试原生及混合的移动端应用.Appium支持IOS.Android及FirefoxOS平台.Appium使用WebDriver的json ...

  5. 在React中使用WebUploader实现大文件分片上传的踩坑日记!

    前段时间公司项目有个大文件分片上传的需求,项目是用React写的,大文件分片上传这个功能使用了WebUploader这个组件. 具体交互是: 1. 点击上传文件button后出现弹窗,弹窗内有选择文件 ...

  6. SpringBoot + SpringCloud学习踩坑实记

     踩的坑: 1).springcloud框架中,依赖一直报错,很可能是没有添加springcloud的依赖,或者是依赖的版本号过低.并且springboot也有一个父依赖. 2.springcloud ...

  7. 关于在Mac上安装模拟器的坑比~~~~~

    没有人比我更坑了~~就安装一个简单的模拟器花了我一天时间~~我去~~~ 但是最后还是安装好了~~真的是活久见~~好吧~~ 废话不多说先上安装好的图~炫耀一下~ ~ ok!要实现这样的效果~你需要下载虚 ...

  8. ROS机器人系统学习——踩坑之路

    推荐学习教程:深蓝学院 机器人操作系统ROS理论与实践学习 在学习到第2讲ROS基础的分布式通信时,一直卡在这里,主机开启小海龟后,从机虽然可以通过 rostopic list 列出当前的所有topi ...

  9. Mac上的学习神器:Marginnote

    https://marginnote.com/?lang=zh-hans 技巧1:合并 多选编辑 - 按顺序选择多个块 - 左下角菜单 - 合并 技巧2:管理顺序 双击图片并且按住不放,即可拖拽顺序 ...

随机推荐

  1. Mybatis中的连接池

    Mybatis中DataSource的存取 MyBatis是通过工厂模式来创建数据源DataSource对象的,MyBatis定义了抽象的工厂接口:org.apache.ibatis.datasour ...

  2. 871. Minimum Number of Refueling Stops

    A car travels from a starting position to a destination which is target miles east of the starting p ...

  3. 为什么不应该重写service方法?

      故事通常是这样开始的: 从前,有一个程序猿,他语重心长地对孙子说:“孩子,要是你以后写servlet,最好不要重写service方法啊” 孙子大为不解,程序猿又说:“听爷爷的,准没错,爷爷的爷爷就 ...

  4. PHP项目目录结构

    PHP项目目录结构 原创 2017年11月23日 16:02:18 标签: php / 结构 1226 一个完整的项目需要有三大部分构成,项目框架,业务实现,公共支持.为了便于开发维护,通常使三部分分 ...

  5. 通过get_FOO_display 查找模型中的choice值

    在django的models.py 中,我们定义了一些choices的元组,类似一些字典值,一般都是下拉框或者单多选框,例如 0对应男 1对应女等. class Area(models.Model): ...

  6. hadoop的maven地址

    https://mvnrepository.com/artifact/org.apache.hadoop

  7. iOS APP日志写入文件(日志收集)

    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launc ...

  8. sublime text3 添加新片段

    1.tools->developer->new snippet 要介绍一下snippet四个组成部分: content:其中必须包含<![CDATA[…]]>,否则无法工作, ...

  9. elementui 给 左侧功能栏 加上 el-scroll 时 , el-main 会 挤压 左侧导航栏..

    解决方法... el-main 给上 style='width:0'........... 并不会影响 el-main 布局...

  10. 网络寻路(思维+vector的应用)-----------蓝桥备战系列

    标题:网络寻路 X 国的一个网络使用若干条线路连接若干个节点.节点间的通信是双向的.某重要数据包,为了安全起见,必须恰好被转发两次到达目的地.该包可能在任意一个节点产生,我们需要知道该网络中一共有多少 ...