Pada kesempatan kali ini saya akan mencoba sharing sesuai judul diaatas, jika teman teman ingin mencoba secara sendiri teman teman harus menyiapkan beberapa perlengkan dan persyaratan wajib :
- Account AWS yang sudah terverifikasi dan siap untuk dapat tagihan cc (kalau pakai jenius sih nggak ya) dan bukan AWS educate ya
- Domain Public terserah mau beli dimana, ini yang nantinya kita akan “ganti” nameservernya ke aws kita
- Install AWS-CLI version 2 on macOS, On Linux
- Install kops version minimal 1.17.x
- Install kubectl
Pada tulisan ini saya menngunakan Envoirment Cloud bukan On-Premis, cloud servicenya menggunakan AWS, kenapa saya menggunakan aws jawabnya simple karena dapat credits dari aws :D
Setelah kalian sudah mempersiapkan apa saja yang dibutuhkan sekarang kita akan mulai dari langkah yang pertama.
Create IAM User
Pertama kita akan membuat IAM user yang akan dijalankan oleh kops.
- Login ke AWS sebagai root
- Pilih Service IAM
- Pilih User dan add user
- Isi Nama user nya
- Untuk Access type Checklist Programmatic access
- Pilih Create Group dan beri nama untuk groupnya
- Pilih 7 Policy seperti gambar dibawah ini
- Pilih Next Sampai di halaman seperti dibawah ini kemudian download .csvnya
Akun IAM kalian sudah dibuat, tapi kalian tidak bisa login ke console management AWS karena yang kalian buat hanya Programmatic access.
Config AWS-CLI
Tahap ini kita akan menghubungkan antara laptop kita dengan aws menggunkan aws-cli
- Bukan File .csv yang kalian downlaod pada tahap sebelumnya
- Jalankan perintah
aws configure
- Masukan Access Key ID kemudian Secret Access Key yang ada di file .csv
- Masukan Region yang kalian inginkan, kode regionya ada sebelah kanan
- Untuk Output formatnya pilih json
Kita lanjut untuk dns management
DNS Management
pada tahap ini kita akan mengkonfigurasi DNS Management di-aws
- Login dan masuk ke Dashboard tempat kalian membeli domain.
- Cari Menu nameserver pada dashboard tempat kalian memberli domain
- Masuk aws-management console dan cari service route 53
- Create Hosted Zone
- Masukan domain kalian kemudian Create
- Checklist Domain utama dan copy-paste name server nya dari AWS ke web dashboard domain kalian
- Kalau di dashboard domain kalian ada pilihan serperti ini
- Pilih Yang menggunakan Nameserver lain dan masukan nameserver dari aws tadi
- Proses ini mungkin cukup lama jadi sabar saja, bisa diatas 1 jam sih
Jika kalian ingin mengecek Domain nya bisa kalian jalankan perintah berikut di terminal host kalian
dig ns <nama domain>
jika sudah muncul seperti ini berarti domain kalian sudah berhasil di “pindahkan” ke aws
Jika masih belum sama dengan NS (Nameserver) dari AWS berarti DNS kalian masih berada dalam waktu menunggu TTL ( Time To Life )
Create Cluster
Tahap ini adalah tahap yang membuat saya sangat gembir pada saat belajar kubernetes untuk pertama kali, tahap ini kita akan membuat cluster Kubernetes pertama kita, oke langsung aja balik ke terminal
- Edit dan tambahkan perintah berikut pada file ~/.bashrc (pada LINUX)
sudo nano ~/.bashrc
export KOPS_STATE_STORE=s3://<nama bucket>.<nama domain>
export NAME=<domain kalian>
- kemudian restart file nya sesuai
source ~/.bashrc
- Jalan kan perintah ini untuk create cluster
kops create cluster --cloud=aws --zones=ap-southeast-1a --name=<domain> --dns-zone=<domain> --node-size=t2.small --master-size=t2.small
Hasil dari perintah tersebut secara default kalian memiliki master server berjumlah 1 buah dengan spek t2.small serta node server berjumlah 2 buah dengan spek t2.small yang berada pada region Singapore.
- Kemudian execute perintah
kops update cluster --name <domain> --yes
perintah diatas akan memakan waktu yang cukup lama karena perintah tersebut membuatkan server berserta configuration dan lain lainnya, serta akan membuatkan dns untuk API server kubernetesnya.
- Untuk cek cluster kalian sudah Ready dengan perintah berikut
kops validate cluster
jika sudah ready maka akan muncul seperti berikut
- Jika kalian cek pada aws EC2 dashboard, server master dan node kalian sudah running
Sampai di tahap ini kalian sudah memiliki cluster kubernetes akan tetapi cluster kalian belum memiliki service apapun alias kosong.
Tambahan
- Jika kalian ingin masuk kedalam master server nya kubernetes kalian bisa menggunakan perintah berikut
ssh -i ~/.ssh/id_rsa admin@api.<domain>
- Jika kalian ingin melihat info cluster kalian bisa menggunakan perintah berikut
kubectl cluster-info
Untuk Tahap deployment dan lainnya saya akan coba bahas pada tulisan selanjutnya.
Mohon maaf jika banyak kekurang, semoga bermanfaat.
Wasalam