OpenShift CRC

Perintah OpenShift Local (CRC / Code Ready Containers) untuk menjalankan cluster OpenShift single-node di mesin lokal. Mencakup setup awal, siklus hidup VM, akses cluster, konfigurasi resource, dan troubleshooting.

00

Instalasi dan Setup Awal

Download CRC, daftarkan pull secret, dan siapkan dependensi sebelum menjalankan cluster.

Cek versi dan prasyarat

crc
crc version                          # cek versi CRC yang terinstall
crc setup --check-only                # cek prasyarat tanpa mengubah sistem

Setup otomatis

crc
crc setup                            # setup lengkap (hypervisor, network, pull secret)
crc setup --log-level debug           # setup dengan output verbose
01

Siklus Hidup Cluster

Start, stop, delete, dan pantau status VM CRC.

Start cluster

crc
crc start                            # start dengan pull secret interaktif
crc start -p ~/pull-secret.txt        # start dengan file pull secret
crc start --log-level debug           # start dengan output verbose

Stop dan delete

crc
crc stop                             # hentikan VM, state tersimpan
crc delete                           # hapus VM dan semua data cluster
crc delete --clear-cache             # hapus VM + cache bundle yang diunduh

Status cluster

crc
crc status                           # ringkasan status VM dan cluster
crc status --output json             # output status dalam format JSON
02

Akses Cluster

Login ke cluster via oc CLI, buka web console, dan ambil kredensial.

Set oc environment

bash
eval $(crc oc-env)                   # set PATH dan KUBECONFIG untuk oc
crc oc-env                           # lihat environment variable tanpa apply

Login oc

oc
# Login sebagai developer (non-admin)
oc login -u developer -p developer https://api.crc.testing:6443

# Login sebagai kubeadmin (full admin)
oc login -u kubeadmin -p <password> https://api.crc.testing:6443

# Ambil password kubeadmin
crc console --credentials

Web console dan kredensial

crc
crc console                          # buka web console di browser
crc console --url                    # tampilkan URL console saja
crc console --credentials            # tampilkan username/password semua user
03

Konfigurasi Resource

Atur CPU, memori, disk, dan parameter lain sebelum start cluster.

Lihat konfigurasi

crc
crc config view                      # tampilkan semua konfigurasi aktif
crc config get cpus                  # cek nilai satu parameter
crc config get memory

Ubah CPU dan memori

crc
crc config set cpus 6               # jumlah vCPU (default: 4, min: 4)
crc config set memory 14336          # memori dalam MiB (default: 10752, min: 9216)
crc config set disk-size 60          # ukuran disk dalam GiB (default: 31)

Konfigurasi lainnya

crc
crc config set consent-telemetry no          # nonaktifkan telemetri
crc config set enable-cluster-monitoring true # aktifkan monitoring (butuh RAM lebih)
crc config set http-proxy http://proxy:3128   # gunakan HTTP proxy
crc config set no-proxy .cluster.local        # bypass proxy untuk domain lokal
crc config unset http-proxy                   # hapus konfigurasi proxy
04

Bundle dan Cache

Kelola versi bundle CRC yang diunduh ke lokal.

Informasi bundle

crc
crc version                          # versi CRC dan bundle yang dipakai
crc config get bundle                # lokasi bundle yang dikonfigurasi

Gunakan bundle kustom

crc
crc start -b /path/to/crc_libvirt_*.crcbundle   # Linux custom bundle
crc start -b /path/to/crc_hyperv_*.crcbundle    # Windows custom bundle
crc delete --clear-cache             # bersihkan cache bundle lama
05

Network dan DNS

Memahami endpoint cluster dan resolusi DNS lokal CRC.

Endpoint default

info
API server   : https://api.crc.testing:6443
Web console  : https://console-openshift-console.apps-crc.testing
Image registry: default-route-openshift-image-registry.apps-crc.testing

# Resolusi DNS diatur otomatis oleh crc setup via systemd-resolved / dnsmasq

Tes konektivitas cluster

bash
curl -k https://api.crc.testing:6443/version
ping api.crc.testing
nslookup console-openshift-console.apps-crc.testing
06

Workflow Developer

Alur kerja umum setelah cluster berjalan: buat project, deploy app, dan akses route.

Buat project dan deploy app

oc
eval $(crc oc-env)
oc login -u developer -p developer https://api.crc.testing:6443

oc new-project myapp
oc new-app nodejs:20-ubi8~https://github.com/example/app.git --name=api
oc expose svc/api
oc get route api

Login registry internal dan push image

bash
# Login ke registry internal CRC
oc login -u kubeadmin -p <password> https://api.crc.testing:6443
podman login -u kubeadmin -p $(oc whoami -t) \
  default-route-openshift-image-registry.apps-crc.testing --tls-verify=false

# Tag dan push image
podman tag myapp:latest default-route-openshift-image-registry.apps-crc.testing/myapp/myapp:latest
podman push default-route-openshift-image-registry.apps-crc.testing/myapp/myapp:latest --tls-verify=false
07

Troubleshooting

Langkah diagnosis saat CRC gagal start, cluster tidak sehat, atau oc tidak bisa terhubung.

CRC gagal start

crc
crc start --log-level debug           # lihat detail error saat boot
crc status                            # cek apakah VM dan cluster sehat
crc stop && crc start                 # coba restart VM

Cluster tidak sehat setelah start

oc
eval $(crc oc-env)
oc login -u kubeadmin -p <password> https://api.crc.testing:6443
oc get nodes
oc get clusteroperators                        # cek operator mana yang degraded
oc get pods -n openshift-apiserver
oc get pods -n openshift-etcd

Reset penuh jika cluster rusak

crc
crc stop
crc delete
crc setup
crc start -p ~/pull-secret.txt

Log dan diagnosa VM

bash
# Lokasi log CRC
# macOS / Linux:
cat ~/.crc/crclogs/crc.log

# SSH ke dalam VM (jika perlu debug mendalam)
crc status                            # pastikan VM running
ssh -i ~/.crc/machines/crc/id_ecdsa core@$(crc ip)

# Di dalam VM:
sudo journalctl -u kubelet -n 100 --no-pager
sudo crictl ps -a | grep -v Running