Cara Memasang gVisor Pada Kubernetes (Containerd)

Lingkungan Sistem Operasi: Ubuntu 20.04 LTS Cloud Image Kubernetes: 1.22.1 Containerd: 1.6.6 Panduan Pasang repository gVisor curl -fsSL https://gvisor.dev/archive.key | gpg --dearmor -o /usr/share/keyrings/gvisor-archive-keyring.gpg echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/gvisor-archive-keyring.gpg] https://storage.googleapis.com/gvisor/releases release main" | tee /etc/apt/sources.list.d/gvisor.list > /dev/null Install runsc (gVisor) apt update -y apt install -y runsc Definisikan runsc pada konfigurasi containerd vim /etc/containerd/config.toml Tambahkan baris berikut pada bagian [plugins] ---konten dari file dipotong--- [plugins] ---konten dari file dipotong--- # Tambahkan baris berikut [plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runsc] runtime_type = "io.containerd.runsc.v1" # Akhir dari baris yang perlu ditambahkan [proxy_plugins] ---konten dari file dipotong--- Restart containerd systemctl restart containerd Tambahkan objek runtimeclass pada Kubernetes cat<<EOF > gvisor-runtime.yaml apiVersion: node.k8s.io/v1 kind: RuntimeClass metadata: name: gvisor handler: runsc EOF kubectl apply -f gvisor-runtime.yaml Membuat pod dengan runtime gVisor cat <<EOF | kubectl apply -f - apiVersion: v1 kind: Pod metadata: name: nginx-gvisor spec: runtimeClassName: gvisor containers: - name: nginx image: nginx EOF Periksa Kernel host uname -a Linux aa-kubernetes-master01 5.4.0-120-generic #136-Ubuntu SMP Fri Jun 10 13:40:48 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux runc - containerd kubectl exec -it web -- uname -a Linux web 5.4.0-120-generic #136-Ubuntu SMP Fri Jun 10 13:40:48 UTC 2022 x86_64 GNU/Linux runsc - gVisor kubectl exec -it nginx-gvisor -- uname -a Linux nginx-gvisor 4.4.0 #1 SMP Sun Jan 10 15:06:54 PST 2016 x86_64 GNU/Linux Terlihat containerd menggunakan kernel yang sama dengan host sedangkan gVisor menggunakan kernel berbeda, ini dikarenakan gVisor melakukan isolasi sehingga kernel yang digunakan oleh container bersifat independen dengan maksud untuk meningkatkan keamanan terhadap eksploitasi Kernel Host atau serangan seperti container escape. ...

June 24, 2022 · 2 min · Aji Arya

Cara Import Container Image Containerd Kubernetes

Panduan # Contoh: # ctr -n=k8s.io images import <nama_file> ctr -n=k8s.io images import nginx.tar Referensi Scott’s Blog

October 24, 2021 · 1 min · Aji Arya

Cara Menyiapkan High Availability Kubernetes Klaster Menggunakan Kubeadm

Topologi Versi Sistem Operasi Ubuntu 20.04 (Focal) Aplikasi HAProxy 2.0.13-2ubuntu0.3 KeepAlived 1:2.0.19-2 Containerd 1.4.9-1 Kubernetes 1.22.1-00 (kubeadm, kubelet, kubectl) Panduan Semua perintah dibawah dijalankan menggunakan user root Persiapan Sunting file /etc/hosts cat<<EOF >> /etc/hosts ### Lab Kubernetes ### 192.168.30.10 kubernetes-vip 192.168.30.11 kubernetes-lb1 192.168.30.12 kubernetes-lb2 192.168.30.13 kubernetes-master01 192.168.30.14 kubernetes-master02 192.168.30.15 kubernetes-master03 192.168.30.16 kubernetes-worker01 EOF update dan upgrade package-package apt update -y; apt upgrade -y Pasang HAproxy & Keepalived pada Load Balancer Node Pasang haproxy dan keepalived apt install -y haproxy keepalived Konfigurasi HAProxy ...

September 10, 2021 · 4 min · Aji Arya

Cara Menyiapkan High Availability Kubernetes Klaster Menggunakan Kubeone

September 10, 2021 · 0 min · Aji Arya

Cara Memasang Minikube Pada WSL [Docker Driver]

Prasyarat Windows 10 WSL 2 Docker Desktop WSL 2 Backend Panduan Unduh dan install binary file minikube curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 sudo install minikube-linux-amd64 /usr/local/bin/minikube Jalankan minikube menggunakan driver docker minikube start --driver=docker Unduh dan install kubectl curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl" sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl Verifikasi status minikube minikube status kubectl get pods -n kube-system Referensi Docker Desktop WSL 2 backend Minikube Docker Driver Install Kubectl

August 29, 2021 · 1 min · Aji Arya

Cara Memasang Nginx Ingress Controller Pada Kubernetes Cluster [External IP]

Pembaharuan Halaman 2022 Juni 08: Versi ingress-nginx controller v1.2.0 Menambahkan langkah membuat ingress class Prasyarat Kubernetes Cluster Panduan Terapkan manifest yang disediakan pada website nginx kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.2.0/deploy/static/provider/baremetal/deploy.yaml Sunting service ingress-nginx-controller pada namespace ingress-nginx Isikan dengan IP Node kubernetes yang akan melayani request kubectl -n ingress-nginx edit svc ingress-nginx-controller Tambahkan baris berikut spec: externalIPs: - <IP_NODE_1> - <IP_NODE_2> - <IP_NODE_N> Buat ingress class cat<<EOF > ingressclass.yaml apiVersion: networking.k8s.io/v1 kind: IngressClass metadata: labels: app.kubernetes.io/component: controller name: nginx annotations: ingressclass.kubernetes.io/is-default-class: "true" spec: controller: k8s.io/ingress-nginx EOF kubectl apply -f ingressclass.yaml Jalankan aplikasi contoh # Buat deployment kubectl create deployment web --image=gcr.io/google-samples/hello-app:1.0 # Buat service kubectl expose deployment web --port=8080 # Buat ingress cat<<EOF > web-ingress.yaml apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: example-ingress annotations: nginx.ingress.kubernetes.io/rewrite-target: /$1 spec: rules: - host: example.id http: paths: - path: / pathType: Prefix backend: service: name: web port: number: 8080 EOF kubectl apply -f web-ingress.yaml # Uji coba # Contoh: curl --resolve 'example.id:80:192.168.1.21' http://example.id curl --resolve 'example.id:80:<Ingress_Controller_externalIPs>' http://example.id ...

August 29, 2021 · 1 min · Aji Arya

Cara Memasang OpenShift CodeReady Pada Fedora 34

Prasyarat Mesin Fedora 34 (Baremetal atau VM) Akun Red Hat Versi Sistem Operasi: Fedora 34 Cloud Image CodeReady: 1.31.2+19538dab OpenShift: 4.8.4 Panduan Update dan Upgrade package sudo dnf update -y; sudo dnf upgrade -y Install package NetworkManager dan wget sudo dnf install -y NetworkManager wget Unduh CodeReady dan salin pull secret Tautan Disini wget https://developers.redhat.com/content-gateway/file/pub/openshift-v4/clients/crc/1.31.2/crc-linux-amd64.tar.xz tar xf crc-linux-amd64.tar.xz cd crc-linux-1.31.2-amd64/ sudo mv crc /usr/local/bin # Verifikasi crc version Setup dan jalankan CodeReady (Tempel pull secret pada proses crc start) crc setup crc start ...

August 29, 2021 · 1 min · Aji Arya