0、最近发现,docker for windows stable在enable kubernetes这个问题上是有bug的,建议切换到edge版本,并且采用下文aliyuncontainerservice来解决中国区网络问题。

1、为docker for windows配置加速镜像服务。

{
  "registry-mirrors": [
    "https://registry.docker-cn.com"
  ],
  "insecure-registries": [],
  "debug": true,
  "experimental": false
}

2、为了更快的完成一些安装,我们先通过一个阿里云的批处理,提前把kubernetes需要的images拉取下来。

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

.\load_images.ps1

docker images

3、如果你已经安装好docker for windows,切换settings到kubernetes,勾选开启项进行安装。

4、关键概念

pod
kubernetes 中的最小单元,一个 pod 里面可以放很多个应用,支持多容器在一个 pod 中通过进程进行通信

service 服务
pod 的对外入口,需要这个才能在外部访问 pod

deployment 部署
表示用户对 kubernetes 的一次更新操作,通过部署模板将 pod 跟 service 绑定

粗暴理解,用deployment可以部署pod,然后通过service来暴露对pod的访问。

service的三种类型

clusterip
一个集群内部服务,默认情况外部无法访问,需要通过 kubectl 的代理命令转发访问。

nodeport
在所有节点上开放一个特定端口,将该端口的流量转发到对应的服务,是开发时经常使用的暴露 pod 的方法,没有代理那么麻烦。

loadbalancer
kubernetes 的负载均衡,需要把你的负载均衡器(你集群的负载均衡器或云服务商的)与它关联起来,就可以帮你转发流量了。