Docker社区版中Kubernetes开发

Docker社区版中Kubernetes开发

Docker社区版从17.12版本开始已经提供了对Kubernetes的支持。但是由于其安装过程依赖的镜像服务在国内访问很不稳定,很多朋友都无法配置成功。我们提供了一个简单的工具帮助大家开启Docker社区版的Kubernetes功能

开启 Kubernetes

Docker官方站点下载并安装Docker for Mac或Docker for Windows

在 Docker -> Preferences ... 中,配置 registry mirror 为 https://registry.docker-cn.com

Docker社区版中Kubernetes开发

运行下列脚本可以从阿里云镜像服务下载Kubernetes安装所需Docker镜像,您也可以通过修改 images.properties 文件定义自己安装所需的Docker镜像

git clone https://github.com/AliyunContainerService/k8s-for-docker-desktop
cd k8s-for-docker-desktop

如果您安装版本为18.09/18.06版本可以直接使用master分支;如果是18.03稳定版请使用对应的代码分支 git checkout 18.03

加载镜像(注:如果在Windows中请在Bash下执行)

./load_images.sh

在Docker for Mac中开启 Kubernetes,等待如下消息 Kubernetes is running

Docker社区版中Kubernetes开发

这时候 Kubernetes 已经可以用了,我们可以看到docker 版本信息中,编排器已经成为了kubernetes

$ docker version
Client:
 Version:    18.03.0-ce-rc1
 API version:    1.37
 Go version:    go1.9.4
 Git commit:    c160c73
 Built:    Thu Feb 22 02:34:03 2018
 OS/Arch:    darwin/amd64
 Experimental:    true
 Orchestrator:    kubernetes

Server:
 Engine:
  Version:    18.03.0-ce-rc1
  API version:    1.37 (minimum version 1.12)
  Go version:    go1.9.4
  Git commit:    c160c73
  Built:    Thu Feb 22 02:42:37 2018
  OS/Arch:    linux/amd64
  Experimental:    true

由于您可能已经包含若干不同的 Kubernetes context 配置,可以通过如下命令切换到 docker-for-desktop

kubectl config use-context docker-for-desktop

验证 Kubernetes 安装

kubectl cluster-info
kubectl get nodes

部署 Kubernetes 控制台

kubectl create -f https://raw.githubusercontent.com/kubernetes/dashboard/master/src/deploy/recommended/kubernetes-dashboard.yaml

or

kubectl create -f kubernetes-dashboard.yaml

开启API Server的本地监听端口

kubectl proxy

之后就可以打开控制台

http://localhost:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/#!/overview?namespace=default

Docker CE与Minikube

Kubernetes社区也提供过本地开发环境Minikube,我们也提供了基于阿里云的安装配置方法

这两个都是优秀的开发工具可以进行本地Kubernetes的开发。相对而言 Minikube 提供了较为丰富的Kubernetes能力,比如对addons的支持。而Docker CE提供了更加简单的开发者体验。


阿里云Kubernetes服务 全球首批通过Kubernetes一致性认证,简化了Kubernetes集群生命周期管理,内置了与阿里云产品集成,也将进一步简化Kubernetes的开发者体验,帮助用户关注云端应用价值创新。

上一篇:raspbian 怎么才能有声音?


下一篇:Node.js中内存泄漏分析