阅读 2048

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

k8s是什么

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

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

为什么学习k8s

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

我的目标

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

先跑起来

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

如果你只是打算搭建本地k8s环境实验一下,我推荐下面的做法:

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

  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 下载阿里云提供的国内版本

  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控制面板啦!