首页 > 其他分享 >如何创建service的时候使用template模板?

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

时间:2022-09-22 12:12:02浏览次数:62  
标签:node 04 service -- Service nccztsjb template root 模板

什么模板

 

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

 

就是在创建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的时候,把一些已经预置的动态的变量值,动态获取的过程,更具有灵活性!

标签:node,04,service,--,Service,nccztsjb,template,root,模板
From: https://www.cnblogs.com/chuanzhang053/p/16718781.html

相关文章

  • sbatch命令在集群递交任务模板
     001、脚本模板#!/bin/bash#SBATCH-JTEST_NAME#本次作业的名称#SBATCH-pxhacnormala#指定作业队列名#SBATCH-o......
  • 30套各行业可视化模板,比Excel好看千倍!
    可视化大屏的目的是通过将数据在屏幕上可视化,帮助用户熟悉业务数据,以便于高效地处理信息、快速做出应答。 以下行业案例模板均来源于:山海鲸可视化  1. 医疗行业进......
  • C++ 模板类继承
    template<classT>classA{protected:voidTest(){printf("%f",0.1f);}};template<classT>classB:publicA<T>{public:voidTest2()......
  • redis基础系列~监控模板
    {"annotations":{"list":[{"builtIn":1,"datasource":"--Grafana--","enable":true,"hide":true,......
  • UEC++ 资源加载(四)模板资源拾取类
    TSoftObjectPtr和TSoftClassPtr模板类帮助我们在进行资源操作时增加了类型安全检查,我们可以在细节面板中根据给定的模版类型拾取对应的资源,以获得更加高效的操作!同样的,TS......
  • 2022年vue3 10大开源后台管理系统模板
    当你写项目的时候,如何快速的完成一个项目的搭建,这个时候就需要借助到一些模板了,前端开发的一个好处就是,各类UI模板都是相当的齐全的,直接拿来用就可以了,脱离了一行又一行垒......
  • 如何为swarm中的service设置需要cpu和内存?
    想象一下这个场景,你有一个服务,想要最好的运行状态,必须需要一定的CPU和内存的数量,这样的场景,如何在service中进行设置? 也就是说,为service设置一个cpu和内存的值,swarm集......
  • 使用easypoi导出word模板
    官方文档: http://easypoi.mydoc.io/pom.xml<dependency><groupId>cn.afterturn</groupId><artifactId>easypoi-spring-boot-starter</artifactId><versio......
  • JAVA线段树模板
    publicclassLineTree{int[]tree,nums;intn;publicLineTree(int[]nums){this.nums=nums;n=nums.length;tree=newi......
  • Java【Mybatis】——创建Mybatis Mapper模板
    目的在编码过程中,我们常常需要写一些配置文件。而这些配置文件的格式都是固定的——关键是我通常记不住,也是找地方复制。这种方法可以,但没有必要。因为一种方式,更简便—......