Running CoreOS on Cloud, Learn About Cloud-Config

  • Posted on: 17 September 2014
  • By: oon
Running CoreOS on DigitalOcean

Udah nyobain install dan running CoreOS di local computer dengan bantuan vagrant.

Nah sekarang saatnya mencoba langsung di internet, ya, dengan bantuan cloud semuanya jadi mudah. Salah satu provider dari CoreOS adalah DigitalOcean [1], dengan kemudahan instance menggunakan control panel maupun melalui API.

Di cloud, proses instance CoreOS dibantu konfigurasi dengan sistem cloud-config, bisa dipelajari lebih lanjut pada [2]. Secara sederhana konfigurasi yang dibutuhkan antara lain:

#cloud-config

coreos:
  etcd:
    # generate a new token for each unique cluster from https://discovery.etcd.io/new
    discovery: https://discovery.etcd.io/<token>
    # multi-region deployments, multi-cloud deployments, and droplets without
    # private networking need to use $public_ipv4
    addr: $private_ipv4:4001
    peer-addr: $private_ipv4:7001
  units:
    - name: etcd.service
      command: start
    - name: fleet.service
      command: start

Konfigurasi ini bisa digunakan sebagai user_data pada control panel maupun melalui disimpan sebagai file konfigurasi berformat yaml untuk digunakan saat instance menggunakan API. Jangan lupa untuk menggunakan discovery token yang sama jika ingin membuat satu cluster yang sama.

Oya setelah instance berhasil dibuat, proses remote ke server menggunakan SSH KEY dengan user core (bukan menggunakan user root).

ssh core@<ip address>

Setelah berhasil login ke salah satu mesin dalam cluster, bisa mengecek daftar seluruh mesin menggunakan fleetctl sebagai berikut:

CoreOS (alpha)
core@cx03 ~ $ fleetctl list-machines
MACHINE		IP		METADATA
83a88718...	10.10.184.88	-
b42e01c7...	10.10.184.87	-
dbaaae56...	10.10.184.85	-
core@cx03 ~ $ 

Nah gitu deh kurang lebih cerita soal memulai running CoreOS di cloud, nantikan update berikutnya tentang apa yang akan penulis install sebagai Docker process-nya :)

Kalo ternyata berikutnya lupa discovery token dari cluster yang sudah dibuat, bisa dicari kembali menggunakan command:

$ grep DISCOVERY /run/systemd/system/etcd.service.d/20-cloudinit.conf
Environment="ETCD_DISCOVERY=https://discovery.etcd.io/<token>"

Untuk mencoba konfigurasi cloud-config yang lebih lengkap bisa didapatkan di [2], misalnya sebagai contoh:

#cloud-config

coreos:
  etcd:
    # generate a new token for each unique cluster
    # from https://discovery.etcd.io/new
    discovery: https://discovery.etcd.io/<token>
    # multi-region deployments, multi-cloud deployments, and droplets without
    # private networking need to use $public_ipv4
    addr: $private_ipv4:4001
    peer-addr: $private_ipv4:7001
  fleet:
    public-ip: $private_ipv4
    metadata: hostname=%H,region=sg,public_ip=$public_ipv4
  update:
    reboot-strategy: best-effort
  units:
    - name: etcd.service
      command: start
    - name: fleet.service
      command: start

Informasi metadata akan menampilkan hostname sehingga memudahkan jika kita mau mengacu instance yang mana, contohnya:

core@cx3 ~ $ fleetctl list-machines
MACHINE		IP		METADATA
501b28c1...	10.10.84.88	hostname=cx3,public_ip=128.199.1.2,region=sg

Pada bagian update, itu adalah konfigurasi strategi yang digunakan pada autoupdate dari CoreOS [3], default pilihannya adalah best-effort, mengecek konfigurasi etcd pada cluster terlebih dahulu.

[1]https://coreos.com/docs/running-coreos/cloud-providers/digitalocean/
[2]https://coreos.com/docs/cluster-management/setup/cloudinit-cloud-config/
[3]https://coreos.com/docs/cluster-management/setup/update-strategies/

image courtesy of https://www.digitalocean.com/company/logos-and-badges/

Add new comment

Filtered HTML

  • Web page addresses and e-mail addresses turn into links automatically.
  • Allowed HTML tags: <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Lines and paragraphs break automatically.

Plain text

  • No HTML tags allowed.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Lines and paragraphs break automatically.
By submitting this form, you accept the Mollom privacy policy.