k8s入门基础之如何在mac上搭建单机k8s学习环境

前言

  目前k8s的流行程度和关注度可以说是不断地在提高,笔者之前也一直在关注k8s的发展趋势,但遗憾一直忙于其它事情,未能专心地进行全方位的学习和写出一些心得。在经历了几家公司的技术架构后,目前大家都是认为k8s的应用是较为相对“终极”的形态,这边便开始对k8s的基础搭建到项目部署以及在其中遇到的一系列问题都会在这个系列里面会有一个较为系统的记录。(这边涉及的内容希望读者都能有docker的相关应用知识,docker的一些基础知识不会在这系列文章内进行阐述)

   

正文

  对于mac/windows,为了方便可以使用docker desktop for mac/windows 的集成环境进行搭建k8s的学习环境(当然虚拟机各个linux的版本也行,但是较为繁杂,后面会有专门的一篇文章来写k8s在生产环境的环境搭建),本系列的k8s环境就基于docker desktop for mac的集成环境进行讲解。
  
  在使用docker desktop for mac/windows之前,我们需要知道由于国内网络环境的原因,即使docker desktop 里面集成了k8s的基础环境,但是还是需要一些依赖镜像的支持的,由于官方源是谷歌的原因,所以国内基本上很难down下来,即使挂了代理(目前我测试的情况是依赖镜像会down很久,有些还down不下来,setting里面可以看到k8s一直都是启动中的状态)
 
  国内目前用的最广的方案是由阿里的大神提供的k8s-for-docker-desktop,具体原理不在此赘述,详见https://github.com/AliyunContainerService/k8s-for-docker-desktop
 
  可以选择最新的master分支的镜像版本进行拉取,也可以根据各分支的docker-desktop 版本号对应的分支下载
 
    1.下载docker desktop for mac/windows
    https://docs.docker.com/docker-for-mac/edge-release-notes/ 此为官方各版本的edge release (此处需要注意下载获得k8s-for-docker-desktop支持的版本)
 
    2.设置好docker-desktop的国内加速源,可以选择阿里云的镜像加速服务或者中科大的镜像加速https://docker.mirrors.ustc.edu.cn
 
    3.clone 好我们的k8s-for-docker-desktop,然后cmd进入到该目录,执行 ./load_images.sh 获取到k8s的依赖镜像(images.properties 内的依赖镜像版本可以根据自己当前的k8s版本进行变更,如果你知道对应依赖版本号的话)
 
    4.在docker-desktop内勾选k8s的支持,请勿勾选Deploy Docker Stacks to Kubernetes by default ,不然会导致又卡在starting
 
    5.restart一次docker即可看到k8s处于running状态
 
    6. kubectl cluster-info 验证k8s的集群状态 kubectl get nodes 查看集群节点信息
 
  tips:
    如果无法成功启动,可以执行
      pred='process matches ".*(ocker|vpnkit).*" || (process in {"taskgated-helper", "launchservicesd", "kernel"} && eventMessage contains[c] "docker")' /usr/bin/log stream --style syslog --level=debug
      --color=always --predicate "$pred"    进行查看docker的日志
 
      
    7.配置k8s的控制台
 
    --追加
 
    --构建
    kubectl create -f kubernetes-dashboard.yaml   (追加更新和自有文件任选其一,如果没有自有构建文件,请是由追加的link)
 
    开启api访问代理
    kubectl proxy
 
    本地浏览器访问 http://localhost:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/#!/overview?namespace=default
    即可看到dashboard了
 
    8.配置控制台访问令牌
 
    # 获取登陆 token
    TOKEN=$(kubectl -n kube-system describe secret default| awk '$1=="token:"{print $2}') kubectl config set-credentials docker-for-desktop --token="${TOKEN}" echo $TOKEN
 
 
 
     

 

  

 

   

posted @ 2020-01-22 15:50  SeanLau  阅读(2407)  评论(0编辑  收藏  举报