Core-os: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
 
(8 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
 +
*[[etcd]]
 +
 +
 +
 
*https://coreos.com/docs/running-coreos/platforms/libvirt/
 
*https://coreos.com/docs/running-coreos/platforms/libvirt/
 
=docker cluster=
 
=docker cluster=
*docker run -d -p 80:80 --name own-httpd httpd
+
*user-data
 +
<pre>
 +
 
 +
#cloud-config
 +
 
 +
---
 +
coreos:
 +
  etcd:
 +
    addr: $public_ipv4:4001
 +
    peer-addr: $public_ipv4:7001
 +
    discovery: https://discovery.etcd.io/122baeb3e193ecb09023ce27a508860b
 +
  etcd2:
 +
    advertise-client-urls: http://$public_ipv4:2379
 +
    initial-advertise-peer-urls: http://$private_ipv4:2380
 +
    listen-client-urls: http://0.0.0.0:2379,http://0.0.0.0:4001
 +
    listen-peer-urls: http://$private_ipv4:2380,http://$private_ipv4:7001
 +
    discovery: https://discovery.etcd.io/122baeb3e193ecb09023ce27a508860b
 +
  fleet:
 +
    public-ip: $public_ipv4
 +
  flannel:
 +
    interface: $public_ipv4
 +
  units:
 +
  - name: etcd.service
 +
    command: start
 +
  - name: fleet.service
 +
    command: start
 +
  - name: docker-tcp.socket
 +
    command: start
 +
    enable: true
 +
    content: |
 +
      [Unit]
 +
      Description=Docker Socket for the API
 +
 
 +
      [Socket]
 +
      ListenStream=2375
 +
      Service=docker.service
 +
      BindIPv6Only=both
 +
 
 +
      [Install]
 +
      WantedBy=sockets.target
 +
  - name: httpd.service
 +
    command: start
 +
    enable: true
 +
    content: |
 +
      [Unit]
 +
      Description=httpd
 +
      Requires=docker.service
 +
      After=docker.service
 +
 
 +
      [Service]
 +
      ExecStart=/usr/bin/docker run -d -p 80:80 --name own-httpd httpd
 +
 
 +
      [Install]
 +
      WantedBy=multi-user.target
 +
</pre>
 +
 
 +
<pre>
 +
$num_instances=3
 +
$new_discovery_url="https://discovery.etcd.io/new?size=#{$num_instances}"
 +
if File.exists?('user-data') && ARGV[0].eql?('up')
 +
  require 'open-uri'
 +
  require 'yaml'
 +
 
 +
  token = open($new_discovery_url).read
 +
 
 +
  data = YAML.load(IO.readlines('user-data')[1..-1].join)
 +
  if data['coreos'].key? 'etcd'
 +
    data['coreos']['etcd']['discovery'] = token
 +
  end
 +
  if data['coreos'].key? 'etcd2'
 +
    data['coreos']['etcd2']['discovery'] = token
 +
  end
 +
 
 +
  yaml = YAML.dump(data)
 +
  File.open('user-data', 'w') { |file| file.write("#cloud-config\n\n#{yaml}") }
 +
end
 +
$update_channel='stable'
 +
#$vm_gui = true
 +
$vm_memory = 1024
 +
$vm_cpus = 1
 +
 
 +
 
 +
</pre>
 +
 
 +
*core@core-01 ~ $ cat CoreGi.service
 +
<pre>
 +
[Unit]
 +
Description=CoreGI
 +
After=docker.service
 +
Requires=docker.service
 +
 
 +
[Service]
 +
EnvironmentFile=/etc/environment
 +
User=core
 +
 
 +
TimeoutStartSec=0
 +
ExecStartPre=-/usr/bin/docker kill coregi
 +
ExecStartPre=-/usr/bin/docker rm coregi
 +
ExecStartPre=/usr/bin/docker pull yodlr/coregi:latest
 +
ExecStart=/usr/bin/docker run --name coregi \
 +
      -p 3000:3000 \
 +
      -v /usr/bin/fleetctl:/usr/bin/fleetctl \
 +
      yodlr/coregi:latest
 +
ExecStop=/usr/bin/docker stop coregi
 +
 
 +
[X-Fleet]
 +
Global=True
 +
</pre>
 +
*fleetctl stop CoreGi.service
 +
*fleetctl start CoreGi.service
 +
*fleetctl destroy CoreGi.service
 +
*fleetctl start CoreGi.service
 +
*fleetctl list-units

Aktuelle Version vom 22. November 2015, 17:29 Uhr


docker cluster

  • user-data

#cloud-config

---
coreos:
  etcd:
    addr: $public_ipv4:4001
    peer-addr: $public_ipv4:7001
    discovery: https://discovery.etcd.io/122baeb3e193ecb09023ce27a508860b
  etcd2:
    advertise-client-urls: http://$public_ipv4:2379
    initial-advertise-peer-urls: http://$private_ipv4:2380
    listen-client-urls: http://0.0.0.0:2379,http://0.0.0.0:4001
    listen-peer-urls: http://$private_ipv4:2380,http://$private_ipv4:7001
    discovery: https://discovery.etcd.io/122baeb3e193ecb09023ce27a508860b
  fleet:
    public-ip: $public_ipv4
  flannel:
    interface: $public_ipv4
  units:
  - name: etcd.service
    command: start
  - name: fleet.service
    command: start
  - name: docker-tcp.socket
    command: start
    enable: true
    content: |
      [Unit]
      Description=Docker Socket for the API

      [Socket]
      ListenStream=2375
      Service=docker.service
      BindIPv6Only=both

      [Install]
      WantedBy=sockets.target
  - name: httpd.service
    command: start
    enable: true
    content: |
      [Unit]
      Description=httpd
      Requires=docker.service
      After=docker.service

      [Service]
      ExecStart=/usr/bin/docker run -d -p 80:80 --name  own-httpd httpd

      [Install]
      WantedBy=multi-user.target
$num_instances=3
$new_discovery_url="https://discovery.etcd.io/new?size=#{$num_instances}"
if File.exists?('user-data') && ARGV[0].eql?('up')
  require 'open-uri'
  require 'yaml'

  token = open($new_discovery_url).read

  data = YAML.load(IO.readlines('user-data')[1..-1].join)
  if data['coreos'].key? 'etcd'
    data['coreos']['etcd']['discovery'] = token
  end
  if data['coreos'].key? 'etcd2'
    data['coreos']['etcd2']['discovery'] = token
  end

  yaml = YAML.dump(data)
  File.open('user-data', 'w') { |file| file.write("#cloud-config\n\n#{yaml}") }
end
$update_channel='stable'
#$vm_gui = true
$vm_memory = 1024
$vm_cpus = 1


  • core@core-01 ~ $ cat CoreGi.service
[Unit]
Description=CoreGI
After=docker.service
Requires=docker.service

[Service]
EnvironmentFile=/etc/environment
User=core

TimeoutStartSec=0
ExecStartPre=-/usr/bin/docker kill coregi
ExecStartPre=-/usr/bin/docker rm coregi
ExecStartPre=/usr/bin/docker pull yodlr/coregi:latest
ExecStart=/usr/bin/docker run --name coregi \
      -p 3000:3000 \
      -v /usr/bin/fleetctl:/usr/bin/fleetctl \
      yodlr/coregi:latest
ExecStop=/usr/bin/docker stop coregi

[X-Fleet]
Global=True
  • fleetctl stop CoreGi.service
  • fleetctl start CoreGi.service
  • fleetctl destroy CoreGi.service
  • fleetctl start CoreGi.service
  • fleetctl list-units