Setup Kubernetes Cluster On Production Mode

Ayi angio
4 min readJul 12, 2020

--

Source By learnk8s.io

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 :

  1. Account AWS yang sudah terverifikasi dan siap untuk dapat tagihan cc (kalau pakai jenius sih nggak ya) dan bukan AWS educate ya
  2. Domain Public terserah mau beli dimana, ini yang nantinya kita akan “ganti” nameservernya ke aws kita
  3. Install AWS-CLI version 2 on macOS, On Linux
  4. Install kops version minimal 1.17.x
  5. 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
Policy Name (AWS)
  • Pilih Next Sampai di halaman seperti dibawah ini kemudian download .csvnya
Add User IAM AWS

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
List Region AWS
  • 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
Name Server
  • Kalau di dashboard domain kalian ada pilihan serperti ini
Options Nameserver
  • 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

Dig DNS

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

Kops Validate cluster
  • Jika kalian cek pada aws EC2 dashboard, server master dan node kalian sudah running
EC2 Dashboard

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

--

--

Ayi angio
Ayi angio

Written by Ayi angio

DevOps Engineer | Github: Ayiangio | Email: moh.harisangio@gmail.com

No responses yet