K8s YAML Manifest
K8s YAML Manifest

Bekerja dengan File K8s YAML Manifest Podman

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:

  1. Standarisasi – File YAML yang sama bisa digunakan untuk lingkungan lokal (Podman) maupun production (Kubernetes).
  2. IaC Ringan – Mendeklarasikan pod dan container secara terstruktur, cocok untuk version control dan otomatisasi tanpa perlu cluster K8s.
  3. Kemudahan Testing – Mendukung berbagai sumber file, fitur –down untuk pembersihan, serta build image otomatis.
  4. Siap Production – Mendukung Secret, ConfigMap, dan integrasi systemd untuk server/edge computing.
  5. Pembelajaran Cloud Native – Jembatan sempurna dari Docker menuju ekosistem Kubernetes.

Podman menghadirkan standar Kubernetes dengan kesederhanaan container engine lokal.