
bretfisher/wordsmith-dbWordsmith是DockerCon EU 2017上展示的演示项目,当时Docker宣布Docker平台即将支持Kubernetes。
该演示应用运行在三个容器中:
!在Docker for Mac上的Kubernetes中运行的Wordsmith应用
从源代码构建和运行应用的唯一要求是Docker。克隆此仓库并使用Docker Compose构建所有镜像:
cd k8s-wordsmith-demo docker-compose build
或者你可以使用
docker-compose pull从Docker Hub拉取预构建的镜像。
最新版本的Docker for Mac内置了Kubernetes。
Docker允许你使用简单的Docker Compose文件格式将复杂应用部署到Kubernetes。你可以使用docker-compose.yml将wordsmith应用部署到本地Kubernetes集群。
首先使用docker version检查Docker是以Kubernetes还是Docker Swarm作为编排器运行 - Docker for Mac同时支持这两种编排器:
docker version -f '{{ .Client.Orchestrator }}'
你可以通过
DOCKER_ORCHESTRATOR环境变量切换编排器,将其设置为kubernetes或swarm。
使用compose文件将应用作为stack部署到Kubernetes:
export DOCKER_ORCHESTRATOR=kubernetes docker stack deploy wordsmith -c docker-compose.yml
Docker for Mac包含kubectl命令行工具,因此你可以直接操作Kubernetes集群。检查服务是否启动,你应该会看到类似以下的输出:
$ kubectl get svc NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE db ClusterIP None <none> 55555/TCP 2m kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 38d web Load*** 10.107.215.211 <pending> 8080:30220/TCP 2m words ClusterIP None <none> 55555/TCP 2m
检查pod是否运行,你应该会看到数据库和web组件各有一个pod,以及五个words API的pod - 这在compose文件中指定为副本数:
$ kubectl get pods NAME READY STATUS RESTARTS AGE db-8678676c79-h2d99 1/1 Running 0 1m web-5d6bfbbd8b-6zbl8 1/1 Running 0 1m words-858f6678-6c8kk 1/1 Running 0 1m words-858f6678-7bqbv 1/1 Running 0 1m words-858f6678-fjdws 1/1 Running 0 1m words-858f6678-rrr8c 1/1 Running 0 1m words-858f6678-x9zqh 1/1 Running 0 1m
然后浏览http://localhost:8080即可查看网站。每次刷新页面,你都会看到由API调用生成的不同句子。
你可以使用Kubernetes manifest将相同的应用部署到Kubernetes。该文件以Kubernetes的部署、服务和pod规范描述了相同的应用。
首先删除Kubernetes stack:
docker stack rm wordsmith
或者你可以保留Docker stack部署运行,并在新的Kubernetes命名空间中创建第二个部署。
现在使用kubectl应用manifest:
kubectl apply -f kube-deployment.yml






manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务