Kartu Panduan Kubernetes
Beberapa perintah k8s yang sering digunakan dengan parameter
Berikut adalah lembar panduan k8s yang mencakup perintah-perintah paling penting di Kubernetes dan konsep dari pemasangan hingga menjalankan kontainer dan membersihkannya:
Pemasangan Kubernetes
Menggunakan Kubeadm
Untuk memasang Kubernetes menggunakan kubeadm
, ikuti langkah-langkah berikut:
-
Persiapkan Lingkungan:
- Pastikan modul kernel yang diperlukan telah diaktifkan:
sudo sysctl net/bridge/bridge-nf-call-ip6tables=1 sudo sysctl net/bridge/bridge-nf-call-iptables=1 sudo sysctl net/bridge/bridge-nf-call-arptables=1
- Restart sistem untuk menerapkan perubahan.
- Pastikan modul kernel yang diperlukan telah diaktifkan:
-
Pasang Docker dan Prasyarat Lainnya:
- Pasang Docker:
sudo apt-get update sudo apt-get install -y docker.io
- Pasang
ebtables
danethtool
:sudo apt-get install ebtables ethtool
- Pasang dukungan HTTPS dan
curl
jika diperlukan:sudo apt-get update sudo apt-get install -y apt-transport-https curl
- Tambahkan repositori Kubernetes dan pasang
kubeadm
,kubelet
, dankubectl
:curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add - sudo cat <<EOF >/etc/apt/sources.list.d/kubernetes.list deb http://apt.kubernetes.io/ kubernetes-xenial main EOF sudo apt-get update sudo apt-get install -y kubeadm kubelet kubectl
- Pasang Docker:
-
Inisialisasi Klaster Kubernetes:
- Inisialisasi node kontrol pertama:
sudo kubeadm init
- Bergabung dengan node kontrol tambahan dan node kerja:
kubeadm join <control-plane-node>:8443 --token <token> --discovery-token-ca-cert-hash <hash>
- Inisialisasi node kontrol pertama:
Menggunakan Minikube atau Kind
Untuk pengembangan lokal, Anda dapat menggunakan minikube
atau kind
:
-
Minikube:
minikube start
Ikuti panduan [Mulai! resmi].
-
Kind:
curl -sfL https://get.k3s.io | sh - kind create cluster
Ikuti [halaman Panduan Cepat Kind].
Perintah-perintah kubectl Umum
Perintah Dasar
-
Dapatkan Informasi tentang Sumber Daya:
kubectl get <resource> # Daftar sumber daya (misalnya, pods, services, deployments) kubectl get pods --all-namespaces # Daftar semua pods di semua namespace kubectl get pods -o wide # Daftar pods dengan detail lebih lanjut kubectl get pod my-pod -o yaml # Dapatkan konfigurasi YAML dari sebuah pod.
-
Deskripsikan Sumber Daya:
kubectl describe <resource> # Deskripsi rinci dari sebuah sumber daya (misalnya, nodes, pods) kubectl describe nodes my-node kubectl describe pods my-pod.
-
Buat Sumber Daya:
kubectl create -f <manifest-file> # Buat sumber daya dari file YAML atau JSON kubectl create configmap <configmap-name> --from-literal=<key>=<value> # Buat ConfigMap kubectl create secret generic <secret-name> --from-literal=<key>=<value> # Buat Secret.
-
Hapus Sumber Daya:
kubectl delete <resource> <name> # Hapus sumber daya (misalnya, pod, deployment) kubectl delete pod my-pod kubectl delete deployment my-deployment.
Manajemen Pod
-
Definisikan Perintah dan Argumen untuk Kontainer:
apiVersion: v1 kind: Pod metadata: name: command-demo spec: containers: - name: command-demo-container image: debian command: ["printenv"] args: ["HOSTNAME", "KUBERNETES_PORT"]
kubectl apply -f <manifest-file> kubectl get pods kubectl logs command-demo.
-
Jalankan Perintah dalam Shell:
apiVersion: v1 kind: Pod metadata: name: shell-demo spec: containers: - name: shell-demo-container image: debian command: ["/bin/sh"] args: ["-c", "while true; do echo hello; sleep 10;done"]
kubectl apply -f <manifest-file> kubectl get pods kubectl logs shell-demo.
Manajemen ConfigMap dan Secret
-
Buat ConfigMap:
kubectl create configmap <configmap-name> --from-literal=<key>=<value> kubectl create configmap app-config --from-literal=environment=production --from-literal=log_level=info.
-
Buat Secret:
kubectl create secret generic <secret-name> --from-literal=<key>=<value> kubectl create secret generic db-secret --from-literal=username=admin --from-literal=password=supersecret.
Manajemen Deployment dan Service
-
Buat Deployment:
kubectl create deployment <deployment-name> --image=<image-name> kubectl create deployment my-deployment --image=nginx:latest.
-
Ekspor Deployment sebagai Service:
kubectl expose deployment <deployment-name> --type=NodePort --port=<port> kubectl expose deployment my-deployment --type=NodePort --port=80.
Manajemen Namespace dan Node
-
Daftar Namespace:
kubectl get namespaces
-
Buat Namespace:
kubectl create namespace <namespace-name> kubectl create namespace my-namespace.
-
Daftar Node:
kubectl get nodes kubectl get nodes --selector='!node-role.kubernetes.io/control-plane'.
Pemantauan dan Debugging
-
Lihat Log:
kubectl logs <pod-name> kubectl logs -f <pod-name> # Ikuti log secara real-time.
-
Deskripsikan Event:
kubectl describe events
-
Periksa Informasi Klaster:
kubectl cluster-info kubectl version # Periksa versi Kubernetes.
Perintah Lanjutan
-
Urutkan Sumber Daya:
kubectl get pods --sort-by='.status.containerStatuses.restartCount' kubectl get services --sort-by=.metadata.name.
-
Filter Sumber Daya:
kubectl get pods --field-selector=status.phase=Running kubectl get nodes --selector='!node-role.kubernetes.io/control-plane'.
-
Dapatkan Data Spesifik:
kubectl get configmap myconfig -o jsonpath='{.data.ca\.crt}' kubectl get secret my-secret --template='{{index .data "key-name-with-dashes"}}'.