# Kubernetes Cheatsheet
cek versi minikube
```
$ minikube version
```
menjalankan minikube
```
$ minikube start
```
Kubectl adalah alat baris perintah (command line tool) Kubernetes yang digunakan untuk menjalankan berbagai perintah untuk klaster Kubernetes.
cek versi kubectl
```
$ kubectl version
```
cek info cluster
```
$ kubectl cluster-info
```
cek kondisi nodes
```
$ kubectl get nodes
```
membuat pod yang berisi container image nginx
```
$ kubectl create deployment nginx --image nginx
```
untuk menjalankan object denga yaml file
```
kubectl apply -f namafile.yml
```
untuk menghapus object dengan yaml file
```
kubectl delete -f namafile.yml
```
cek kondisi pod
```
$ kubectl get pods -A
atau
$ kubectl get pods -o wide
```
note:
* -A = semua pods yang tersedia
membuka akses port
```
$ kubectl expose deployment nginx --port 80 --target-port 80
```
cek service yang sudah berhasil terekspose
```
$ kubectl get svc
```
cek container yang ada di dalam pod dan image yang digunakan
```
$ kubectl describe pods
```
untuk mendebug dan beinteraksi dengan pod
```
$ kubectl proxy
```
untuk mendaftarkan variabel containernya
```
$ kubectl exec $POD_NAME -- env
```
untuk mengakses kontainer dengan bash
```
$ kubectl exec -ti $POD_NAME -- bash
```
untuk membuat service kubernetes baru dari pod (po), service (svc), replicationcontroller (rc), deployment (deploy), replicaset (rs)
```
$ kubectl expose deployment/kubernetes-bootcamp --type="NodePort" --port 8080
```
cek detail dari service yang kita punya
```
$ kubectl describe services/kubernetes-bootcamp
```
menghapus service dengan label
```
kubectl delete service -l app=kubernetes-bootcamp
```
menghapus namespace
```
kubectl delete ns production
```
cek pod deployment
```
kubectl get deployments
```
cek replica set yang sudah di buat
```
kubectl get rs
```
untuk scale pod dengan tipe deployment
**note:** untuk mengurangi scale jalankan lagi perintahnya
```
kubectl scale deployments/kubernetes-bootcamp --replicas=4
```
untuk mengecekslogs pods
```
kubectl -n staging logs wordpress-6fb56975cd-th8fp
```
### Menggunakan kops untuk manage cluster
untuk membuat cluster baru
```
$ kops create cluster --node-count=1 --node-size=t3.small --master-size=t3.medium --zones=us-east-1a --name=${KOPS_CLUSTER_NAME} --ssh-public-key=d:/ssh_key/id_rsa.pub --cloud=aws --cloud-labels="Cost=cilsy"
```
**note:**
- untuk mengedit cluster yang sudah berjalan gunakan perintah dibawah
- ketika sebelumnya terminal di close, setup environment cluster dan s3 nya lagi
setup name cluster
```
$ export KOPS_CLUSTER_NAME=farid-k8s.retiarno.my.id
```
setup name s3
```
$ export KOPS_STATE_STORE=s3://cluster-faridm-k8s-retiarno.my.id
```
edit cluster node
```
$ kops edit ig --name=${KOPS_CLUSTER_NAME} nodes-us-east-1a
```
edit cluster master
```
$ kops edit ig --name=${KOPS_CLUSTER_NAME} master-us-east-1a
```
untuk update cluster
```
$ kops update cluster --name farid-k8s.retiarno.my.id --yes --admin
```