本文学习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. vs2015+opencv3.3.1 实现 c++ 灰度高斯滤波器

    #include <opencv2\highgui\highgui.hpp> #include <iostream> #include<vector> using ...

  2. day08.2-ssh远程连接服务

    在Linux环境中,部署一个服务的一般步骤: a). 准备环境,包括 关闭防火墙:service   iptables   stop(或chkconfig   iptables   off) 关闭se ...

  3. C#/ASP.NET对URL中的中文乱码处理

    前言:UTF-8中,一个汉字对应三个字节,GB2312中一个汉字占用两个字节. 不论何种编码,字母数字都不编码,特殊符号编码后占用一个字节. 1.直接在C#后台编码URL参数 引用类库:System. ...

  4. 【BZOJ3417】[POI2013]MOR-Tales of seafaring (最短路SPFA)

    [POI2013]MOR-Tales of seafaring 题目描述 一个n点m边无向图,边权均为1,有k个询问 每次询问给出(s,t,d),要求回答是否存在一条从s到t的路径,长度为d 路径不必 ...

  5. 实现bootstrap的dropdown-menu(下拉菜单)点击后不关闭的方法 (转)

    实现bootstrap的dropdown-menu(下拉菜单)点击后不关闭的方法 问题描述,在下拉菜单中,添加其他元素,例如,原文作者所述的<a>和我自己实际用到的<input> ...

  6. CoreML的学习

    在苹果官网下载模型model 链接: https://developer.apple.com/machine-learning/

  7. 解析图书 XML

    Java代码: package com.thinkgem.jeesite.test; import org.dom4j.Attribute; import org.dom4j.Document; im ...

  8. Android 线程+Handler的使用

    1.介绍 2.线程的使用 (1)启动 (2)执行 3.xml布局 <?xml version="1.0" encoding="utf-8"?> &l ...

  9. C++_函数4-函数重载与函数模板

    函数重载 多个函数,函数名相同,但是调用的时候,参数不同. 函数多态是C++在C语言的基础上新增的功能.多态指的是有多种形式,因此函数多态允许函数可以有多种形式.术语“函数重载”指的是可以有多个同名的 ...

  10. 基于中间件的RBAC权限控制

    RBAC 是什么 RBAC(Role-Based Access Control,基于角色的访问控制),就是用户通过角色与权限进行关联. 在 Django 中,权限就是用户对一个包含正则表达式 url ...