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