kubernetes学习笔记 (一):搭建本地k8s开发环境

k8s是什么

Kubernets是继大数据、云计算和Docker后的一种热门的容器编排技术,是Google在2014年发布的开源项目。同类的技术有Docker官方的Swarm。git

k8s与swarm相比较更加成熟、完善,但学习成本也更高。github

为何学习k8s

  1. 本人从事游戏行业,服务端开发,使用过Node、Go语言。最先一直用开源框架进行开发,最终都没有找到一个很是满意的开发框架。后来和同事使用Docker和消息队列作了本身的简单开发框架(本身公司用),服务发现、持续集成、简单自动化、灰度发布等等。直到我看到了K8s才发现,我作的那些都已经被k8s作了,并且作的比咱们好一万倍。
  2. 新技术意味着新的市场和新的需求,初期掌握这种技术的人不是不少,物以稀为贵,对本身来讲是个可贵的提高机会。
  3. k8s比较万金油或者说编程思想是同样的?无论是游戏行业仍是其余,大多数系统均可以使用k8s轻松构建和管理一个很复杂的系统

个人目标

  1. 彻底掌握k8s的各类用法,并利用空闲时间对我负责的游戏项目进行重构。
  2. 完成1过程当中的学习笔记。
  3. 找到兼容团队多语言开发的办法。
  4. 完成一个面向中小型游戏的快速开发框架,让开发者轻松开发、轻松运维,轻松发版本。

先跑起来

官网的文档写的很好,按照指示一步一步作就行了 官方文档docker

若是你只是打算搭建本地k8s环境实验一下,我推荐下面的作法:编程

  1. 从Docker官方网站下载并安装edge版本,必定是edge版本哦,我使用的是18.05api

  2. Docker -> Preferences ... 中,配置 registry mirror 为 https://registry.docker-cn.com,点击apply 等待docker从新启动浏览器

  3. 讲道理,你这时候能够直接经过Docker -> Preferences -> Kubernetes -> Enable Kubernetes 安装并启动k8s locally。可是因为网络缘由,很难成功。若是你成功了,就不用往下看了。网络

  4. git clone https://github.com/denverdino/k8s-for-docker-desktop 下载阿里云提供的国内版本app

  5. cd k8s-for-docker-desktop 若是你下载的docker是18.03版本 git checkout 18.03框架

  6. ./load_images.sh 执行脚本加载镜像运维

  7. 在Docker中开启 Kubernetes,等待以下消息 Kubernetes is running

  8. kubectl config use-context docker-for-desktop 切换Kubernetes context 配置

  9. kubectl cluster-info 验证安装

  10. kubectl create -f https://raw.githubusercontent.com/kubernetes/dashboard/master/src/deploy/recommended/kubernetes-dashboard.yaml 部署 Kubernetes 控制台

  11. kubectl proxy Api Server开启本地监听, 在浏览器中输入http://localhost:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/#!/overview?namespace=default 就能够看到k8s控制面板啦!