3. 服务¶
3.1. 需要的环境¶
docker>=1.13
docker compose
已经完成前面2个章节
3.2. 安装docker compose¶
# 配置k8s 仓库
[root@iZ2ze3vsekthy9vqtndzefZ yum.repos.d]# cat kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=http://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
http://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
# 开始安装
yum install docker-compose
备注
默认k8s的仓库是google的,没法访问的。
3.3. docker-compose.yml文件¶
编辑一个docker-compose.yml文件,内容如下:
version: "3"
services:
web:
# replace username/repo:tag with your name and image details
image: zhaojiedi1992/helloworld:v1.0
deploy:
replicas: 5
resources:
limits:
cpus: "0.1"
memory: 50M
restart_policy:
condition: on-failure
ports:
- "4000:80"
networks:
- webnet
networks:
webnet:
3.4. 运行一个负载均衡的app¶
[root@iZ2ze3vsekthy9vqtndzefZ docker]# docker swarm init –advertise-addr 10.80.89.19
[root@iZ2ze3vsekthy9vqtndzefZ docker]# docker stack deploy -c docker-compose.yml getstartedlab Creating network getstartedlab_webnet Creating service getstartedlab_web
[root@iZ2ze3vsekthy9vqtndzefZ docker]# docker service ls ID NAME MODE REPLICAS IMAGE hf9hawqrchfq getstartedlab_web replicated 5/5 zhaojiedi1992/helloworld:v1.0
[root@iZ2ze3vsekthy9vqtndzefZ docker]# docker service ps getstartedlab_web ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR PORTS pv5j41ap4btg getstartedlab_web.1 zhaojiedi1992/helloworld:v1.0 iZ2ze3vsekthy9vqtndzefZ Running Running about a minute ago rsvlvfa48sk6 getstartedlab_web.2 zhaojiedi1992/helloworld:v1.0 iZ2ze3vsekthy9vqtndzefZ Running Running about a minute ago od33frib2yxs getstartedlab_web.3 zhaojiedi1992/helloworld:v1.0 iZ2ze3vsekthy9vqtndzefZ Running Running about a minute ago z2til8qa79k0 getstartedlab_web.4 zhaojiedi1992/helloworld:v1.0 iZ2ze3vsekthy9vqtndzefZ Running Running about a minute ago 29tnd4g7p8kj getstartedlab_web.5 zhaojiedi1992/helloworld:v1.0 iZ2ze3vsekthy9vqtndzefZ Running Running about a minute ago
3.5. 扩展应用程序¶
修改docker-compose的集群数值,然后运行如下命令:
docker stack deploy -c docker-compose.yml getstartedlab
3.6. 关闭app和swarm¶
docker stack rm getstartedlab
docker swarm leave --force