Podman, sebagai container engine yang populer, menawarkan fitur unggulan yang membuatnya istimewa di era Cloud Native, kompatibilitas native dengan Kubernetes.
Fitur ini dihadirkan melalui sub-perintah kube play dan kube generate. Kemampuan ini memungkinkan untuk menjalankan container menggunakan file K8s YAML Manifest secara langsung, tanpa memerlukan server Kubernetes yang sesungguhnya.
Membuat Pod dan Container
Buat sebuah pod geeks-golang-pod dan container dari image geeks-golang port 8080:8080
podman run -dt --pod new:geeks-golang-pod -p 8080:8080 geeks-golang
Pastikan muncul pod yang dibuat geeks-golang-pod.
podman pod ls
Output: POD ID NAME STATUS CREATED INFRA ID # OF CONTAINERS 03c9203012de geeks-golang-pod Running 29 seconds ago 4546b7f59ef4 2
Cek lebih lengkap pod dan container.
podman ps --pod
Output: CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES POD ID PODNAME 4546b7f59ef4 2 minutes ago Up 2 minutes 03c9203012de-infra 03c9203012de geeks-golang-pod e52c669446ec localhost/geeks-golang:latest /geeks-golang 2 minutes ago Up 2 minutes 8080/tcp wonderful_shirley 03c9203012de geeks-golang-pod
Generate Manifest YAML
Melihat manfiest yaml dari pod sebelumnya dibuat.
podman generate kube geeks-golang-pod
Output:
POD ID NAME STATUS CREATED INFRA ID # OF CONTAINERS
ce8f81ae34d1 geeks-golang-pod Running 5 seconds ago 8446102d2f26 2
[root@VM-10-247-rockylinux ~]# podman generate kube geeks-golang-pod
# Save the output of this file and use kubectl create -f to import
# it into Kubernetes.
#
# Created with podman-5.6.0
apiVersion: v1
kind: Pod
metadata:
annotations:
io.kubernetes.cri-o.SandboxID/xenodochialwilliams: 8446102d2f260e55b201ca01d7c6bf64225dfa5fc71d53a0c4ae1722d9b019e6
creationTimestamp: "2026-05-15T16:31:50Z"
labels:
app: geeks-golang-pod
name: geeks-golang-pod
spec:
containers:
- env:
- name: TERM
value: xterm
image: localhost/geeks-golang:latest
name: xenodochialwilliams
ports:
- containerPort: 8080
hostPort: 8080
tty: true
Generate manifest yaml menjadi sebuah file yaml
podman generate kube geeks-golang-pod >> geeks-golang.yaml
Sebelum membuat pod yang berisi container dengan file geeks-golang.yaml, hentikan pod dan hapus pod terlebih dahulu.
podman pod stop geeks-golang-pod podman pod rm geeks-golang-pod
Jalankan perintah dibawah untuk membuat pod dan container dari file manifest yaml geeks-golang.yaml
podman play kube geeks-golang.yaml
Cek pod, pastikan muncul dengan nama geeks-golang-pod.
podman pod ls
Output: POD ID NAME STATUS CREATED INFRA ID # OF CONTAINERS ea2654615319 geeks-golang-pod Running 18 seconds ago e4107b4794ea 2
Cek pod dan container
podman ps -a
Output: CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES e4107b4794ea 31 seconds ago Up 31 seconds 0.0.0.0:8080->8080/tcp ea2654615319-infra c08000b51ebe localhost/geeks-golang:latest /geeks-golang 31 seconds ago Up 31 seconds 0.0.0.0:8080->8080/tcp geeks-golang-pod-xenodochialwilliams
Kesimpulan
Podman memungkinkan kamu bekerja dengan file K8s YAML Manifest melalui perintah podman play kube dan podman generate kube.
Manfaat utamanya:
- Standarisasi – File YAML yang sama bisa digunakan untuk lingkungan lokal (Podman) maupun production (Kubernetes).
- IaC Ringan – Mendeklarasikan pod dan container secara terstruktur, cocok untuk version control dan otomatisasi tanpa perlu cluster K8s.
- Kemudahan Testing – Mendukung berbagai sumber file, fitur –down untuk pembersihan, serta build image otomatis.
- Siap Production – Mendukung Secret, ConfigMap, dan integrasi systemd untuk server/edge computing.
- Pembelajaran Cloud Native – Jembatan sempurna dari Docker menuju ekosistem Kubernetes.
Podman menghadirkan standar Kubernetes dengan kesederhanaan container engine lokal.
