• 如何创建service的时候使用template模板?


    什么模板

     

    模板?什么鬼,其实非常的简单!

     

    就是在创建service的时候,直接引用变量,获取变量的值,然后将这些值变成具体的参数值。

     

    可以设置的参数

     

    • --hostname
    • --mount
    • --env

     

    可以使用的变量(占位符),有

     

    变量

    描述

    .Service.ID

    Service ID

    .Service.Name

    Service name

    .Service.Labels

    Service labels

    .Node.ID

    Node ID

    .Node.Hostname

    Node hostname

    .Task.Name

    Task name

    .Task.Slot

    Task slot

     

    示例

     

    来看下面的示例

     

    使用{{占位符}}的方式,来获取对应的变量

     

    docker service create \
    
    --with-registry-auth \
    
    --name=nginx \
    
    --hostname="{{.Node.ID}}-{{.Service.Name}}" \
    
    --env nodename={{.Node.Hostname}} \
    
    172.20.58.152/middleware/nginx:1.21.4

     

    服务部署的详细过程

     

    [root@nccztsjb-node-01 ~]# docker service create \
    >   --with-registry-auth \
    >   --name=nginx \
    >   --hostname="{{.Node.ID}}-{{.Service.Name}}" \
    >   --env nodename={{.Node.Hostname}} \
    >   172.20.58.152/middleware/nginx:1.21.4
    q9jl2qafhr1u6t381zrhqhbgg
    overall progress: 1 out of 1 tasks 
    1/1: running   [==================================================>] 
    verify: Service converged 
    [root@nccztsjb-node-01 ~]# 

     

    查看service的状态,在节点nccztsjb-node-04上运行,NodeID: 7d59usghrgq05k0yh4lbykw5v

    # task在nccztsjb-node-04节点运行
    
    [root@nccztsjb-node-01 ~]# docker service ps nginx
    ID             NAME      IMAGE                                   NODE               DESIRED STATE   CURRENT STATE            ERROR     PORTS
    qtavsnl9567i   nginx.1   172.20.58.152/middleware/nginx:1.21.4   nccztsjb-node-04   Running         Running 52 seconds ago             
    [root@nccztsjb-node-01 ~]# 
    
    # 查看nodeId,是:7d59usghrgq05k0yh4lbykw5v
    
    [root@nccztsjb-node-01 ~]# docker node ls
    ID                            HOSTNAME           STATUS    AVAILABILITY   MANAGER STATUS   ENGINE VERSION
    gxfkhuc95br6ltkhorpw1q4tq *   nccztsjb-node-01   Ready     Active         Reachable        20.10.17
    8zjicf39fk28jn106symk1g5e     nccztsjb-node-02   Ready     Active                          20.10.17
    7d59usghrgq05k0yh4lbykw5v     nccztsjb-node-04   Ready     Active         Reachable        20.10.17
    wnd24l698iruhhp1xw0y3iyig     nccztsjb-node-05   Ready     Active         Leader           20.10.17
    [root@nccztsjb-node-01 ~]# 

     

    看下具体的容器的主机名和变量

     

    环境变量已经成功的获取到主机的名字,nodename=nccztsjb-node-04

    [root@nccztsjb-node-04 ~]# docker exec -it e27cfe0a0986 env
    PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
    HOSTNAME=7d59usghrgq05k0yh4lbykw5v-nginx
    TERM=xterm
    nodename=nccztsjb-node-04  #环境变量已经成功的获取到主机的名字
    NGINX_VERSION=1.21.4
    NJS_VERSION=0.7.0
    PKG_RELEASE=1~bullseye
    HOME=/root
    [root@nccztsjb-node-04 ~]# 

     

    查看容器的主机名,确实是NODEID 7d59usghrgq05k0yh4lbykw5v和service的名字nginx的组合

    [root@nccztsjb-node-04 ~]# docker exec -it dc410cd29482 hostname
    7d59usghrgq05k0yh4lbykw5v-nginx
    [root@nccztsjb-node-04 ~]# 

     

    总结

     

    这个有啥作用,就是在创建service的时候,把一些已经预置的动态的变量值,动态获取的过程,更具有灵活性!

  • 相关阅读:
    Rightmost Digit(快速幂+数学知识OR位运算) 分类: 数学 2015-07-03 14:56 4人阅读 评论(0) 收藏
    Can you find it? 分类: 二分查找 2015-06-10 19:55 5人阅读 评论(0) 收藏
    PIE(二分) 分类: 二分查找 2015-06-07 15:46 9人阅读 评论(0) 收藏
    HDU 1796 Howmany integers can you find (容斥原理)
    Monthly Expense(二分) 分类: 二分查找 2015-06-06 00:31 10人阅读 评论(0) 收藏
    POJ-1088 Skiing(记忆化搜索)
    悼念512汶川大地震遇难同胞――珍惜现在,感恩生活 分类: dp 2015-05-21 10:50 14人阅读 评论(0) 收藏
    hdu 1010 Tempter of the Bone 深搜+剪枝
    索引原理与慢查询优化
    多表查询
  • 原文地址:https://www.cnblogs.com/chuanzhang053/p/16718781.html
Copyright © 2020-2023  润新知