특정 mesos 에만 동작하도록 하는 방법이다.



$ sudo vi /etc/default/mesos-slave

export MESOS_ATTRIBUTES="ip:11.11.11.11;os:Ubuntu;os-version:16;server-type:user;service:google-api"


$ sudo vi /etc/default/mesos-slave

$ sudo service mesos-slave stop


MESOS_ATTRIBUTES를 수정할 때마다 MESOS_WORK_DIR의 모든 메타 파일을 삭제해야 합니다

$ sudo rm -rf $MESOS_WORK_DIR/*


$ sudo service mesos-slave start



확인하는 방법.



curl 'http://슬레이브_ip:5051/slave(1)/state' | jq


...


  "attributes": {

    "ip": "10.61.106.159",

    "os": "Ubuntu",

    "os-version": 16,

    "server-type": "user",

    "service": "google-api"

  },

  "master_hostname": "11.11.11.11",

  "log_dir": "/var/log/mesos",

  "flags": {

    "appc_simple_discovery_uri_prefix": "http://",

    "appc_store_dir": "/tmp/mesos/store/appc",

    "attributes": "ip:11.11.11.11;os:Ubuntu;os-version:16;server-type:user;service:google-api",


...





마라톤 앱에 다음 constraints를 추가한다.



"constraints": [

    [

      "service",

      "CLUSTER",

      "google-api"

    ]

  ],






kubernetes로 가면 저 labeling을 환경 설정(env)로 쉽게 진행할 수 있다. mesos 약간 불편한 점이 있다.


Posted by '김용환'
,