Pertanyaan yang Sering Diajukan tentang Fedora CoreOS

Jika Anda memiliki pertanyaan lain yang tidak disebutkan di sini atau ingin membahas lebih lanjut, bergabunglah dengan kami di ruang Matrix kami, tautan: #coreos:fedoraproject.org, atau di forum diskusi kami forum diskusi. Silakan merujuk kembali ke sini karena beberapa pertanyaan dan jawaban kemungkinan akan diperbarui.

Apa itu Fedora CoreOS?

Fedora CoreOS adalah sistem operasi yang diperbarui secara otomatis, minimalis, monolitik, dan berfokus pada container, dirancang untuk kluster tetapi juga dapat dijalankan secara mandiri, dioptimalkan untuk Kubernetes tetapi juga berfungsi dengan baik tanpa Kubernetes. Tujuannya adalah untuk menyediakan host container terbaik untuk menjalankan beban kerja yang dikontainerisasi secara aman dan dalam skala besar.

Bagaimana hubungan antara Fedora CoreOS dengan RHEL CoreOS?

Fedora CoreOS adalah distribusi komunitas yang tersedia secara gratis dan menjadi dasar hulu untuk RHEL CoreOS. Meskipun Fedora CoreOS mendukung berbagai kasus penggunaan container, RHEL CoreOS menyediakan sistem operasi yang difokuskan untuk OpenShift, dirilis dan dikelola siklus hidupnya secara bersamaan dengan platform tersebut.

Bagaimana hubungan antara Fedora CoreOS dengan Fedora Bootc?

Fedora Bootc adalah proyek Fedora yang bertujuan untuk mengembangkan container bootable berbasis Fedora dan CentOS bootable containers. Tujuannya adalah agar Fedora CoreOS dapat dibangun di atas Fedora Bootc, baik secara harfiah maupun dalam arti yang lebih luas sebagai bagian dari ekosistem yang sama. Peta jalan untuk ini dapat ditemukan di di GitHub.

Fedora CoreOS menambahkan model aliran (https://docs.fedoraproject.org/en-US/fedora-coreos/update-streams/), integrasi khusus platform, dan citra disk, penyediaan melalui Ignition, serta alat-alat tambahan untuk pembaruan otomatis. Tujuan utamanya adalah agar Fedora CoreOS terintegrasi lebih erat dengan ekosistem Kubernetes.

Jika Anda menemukan diri Anda perlu melakukan kustomisasi yang signifikan pada Fedora CoreOS melebihi apa yang disediakan oleh OS extensions, mungkin lebih masuk akal untuk membangun di atas Fedora Bootc secara langsung. Di masa depan, akan dimungkinkan untuk menambahkan Ignition dan misalnya Zincati di atasnya jika diinginkan. Alat-alat ini dirancang untuk digunakan secara umum dan tidak secara ketat terikat pada Fedora CoreOS.

Apa saja saluran komunikasi yang tersedia untuk Fedora CoreOS?

Kami memiliki saluran komunikasi baru berikut ini seputar Fedora CoreOS:

Ada pertemuan komunitas yang diadakan setiap minggu. Lihat Fedora CoreOS fedocal untuk informasi terbaru.

Jika Anda menduga telah menemukan masalah dengan Fedora CoreOS, silakan ajukan laporan masalah di pelacak masalah kami di issue tracker.

Di mana saya bisa mengunduh Fedora CoreOS?

Artefak Fedora CoreOS tersedia di fedoraproject.org.

Apakah Fedora CoreOS memperbarui dirinya secara otomatis?

Ya, Fedora CoreOS dilengkapi dengan pembaruan otomatis dan rilis reguler. Tersedia beberapa saluran pembaruan yang dirancang untuk memenuhi kebutuhan pengguna yang berbeda-beda. Fedora CoreOS menyediakan layanan node-update berbasis teknologi rpm-ostree, dengan komponen server yang dapat dihosting secara mandiri secara opsional.

Bagaimana cara provisioning node Fedora CoreOS? Apakah saya dapat menggunakan kembali konfigurasi cloud-init yang sudah ada?

Fedora CoreOS disiapkan menggunakan Ignition. Konfigurasi cloud-init yang sudah ada tidak didukung dan perlu dipindahkan ke versi Ignition yang setara.

Data apa yang tetap tersimpan setelah pembaruan dan reboot?

Direktori /etc dan /var dipasang sebagai direktori baca-tulis, yang memungkinkan pengguna untuk menulis dan memodifikasi berkas.

Direktori /etc dapat diubah oleh proses deployment, tetapi tidak akan menggantikan perubahan yang dibuat oleh pengguna. Isi direktori /var tidak akan diubah oleh rpm-ostree saat menerapkan pembaruan atau rollback. Untuk informasi lebih lanjut, lihat bagian [Mounted Filesystems] di https://docs.fedoraproject.org/en-US/fedora-coreos/storage/#_mounted_filesystems.

Container runtime apa saja yang tersedia di Fedora CoreOS?

Fedora CoreOS secara default sudah termasuk Docker dan podman. Berdasarkan partisipasi dan dukungan komunitas, daftar ini dapat berubah seiring waktu.

Apakah saya dapat menjalankan Kubernetes di Fedora CoreOS?

Ya. Namun, Fedora CoreOS tidak menyertakan pengelola container (atau versi Kubernetes) secara default.

Bagaimana cara menjalankan aplikasi kustom di Fedora CoreOS?

Di Fedora CoreOS, container adalah cara untuk menginstal dan mengonfigurasi perangkat lunak apa pun yang tidak disediakan oleh sistem operasi dasar. Mekanisme lapisan paket yang disediakan oleh rpm-ostree akan tetap ada untuk digunakan dalam mendebug mesin Fedora CoreOS, tetapi kami sangat tidak menyarankan penggunaannya. Untuk informasi lebih lanjut tentang hal ini, silakan merujuk ke dokumentasi.

Di mana alat favorit saya untuk pemecahan masalah?

Citra FCOS dirancang untuk tetap minimalis. Tidak semua alat pemecahan masalah disertakan secara default. Sebaliknya, disarankan untuk menggunakan utilitas toolbox.

Bagaimana cara mengkoordinasikan pembaruan sistem operasi secara menyeluruh di seluruh kluster?

Manajer Pembaruan Zincati mencakup strategi pembaruan berbasis kunci (https://coreos.github.io/zincati/usage/updates-strategy/#lock-based-strategy) yang mendukung beberapa backend.

Machine Config Operator (MCO) OKD secara otomatis menangani pembaruan Fedora CoreOS di kluster OKD. MCO juga menangani penyelarasan perubahan konfigurasi mesin.

Bagaimana cara mengunggah Fedora CoreOS ke wilayah AWS EC2 pribadi?

Fedora CoreOS saat ini hanya diunggah ke wilayah AWS standar. Untuk wilayah di partisi AWS lainnya seperti GovCloud dan AWS China, Anda harus mengunggah citra tersebut sendiri.

Perhatikan bahwa Fedora CoreOS menggunakan tata letak partisi BIOS/UEFI yang terpadu. Oleh karena itu, sistem ini tidak kompatibel dengan API aws ec2 import-image (untuk informasi lebih lanjut, lihat diskusi terkait). Sebagai gantinya, Anda harus menggunakan aws ec2 import-snapshot bersama dengan aws ec2 register-image.

Untuk informasi lebih lanjut tentang API-API ini, lihat dokumentasi AWS untuk https://docs.aws.amazon.com/vm-import/latest/userguide/vmimport-import-snapshot.html [mengimpor snapshot] dan membuat AMI yang didukung EBS.

Bisakah saya menjalankan container menggunakan Docker dan Podman secara bersamaan?

Tidak. Menjalankan container menggunakan docker dan podman secara bersamaan dapat menyebabkan masalah dan perilaku yang tidak terduga. Kami sangat tidak merekomendasikan untuk mencoba menggunakan keduanya secara bersamaan.

Perlu dicatat bahwa di Fedora CoreOS, layanan docker.service dinonaktifkan secara default, tetapi dapat dengan mudah diaktifkan jika ada proses yang berkomunikasi dengan /var/run/docker.sock karena docker.socket diaktifkan secara default. Artinya, jika pengguna menjalankan perintah docker (melalui sudo docker), maka daemon akan diaktifkan.

Dalam coreos/fedora-coreos-tracker#408 disebutkan bahwa karena aktivasi soket, pengguna yang menggunakan podman untuk container dapat secara tidak sengaja memulai daemon Docker. Hal ini dapat melemahkan keamanan sistem karena interaksi antara kedua runtime container dengan firewall di sistem. Untuk mencegah kesalahan ini, Anda dapat menonaktifkan docker sepenuhnya dengan menyembunyikan unit sistemd docker.service.

Contoh konfigurasi Butane untuk menonaktifkan layanan Docker
variant: fcos
version: 1.6.0
systemd:
  units:
    - name: docker.service
      mask: true

Apakah citra disk Fedora CoreOS x86_64 dapat di-boot secara hybrid BIOS+UEFI?

Citra x86_64 yang kami sediakan dapat digunakan untuk booting BIOS (legacy) atau booting UEFI. Citra-citra ini mengandung konfigurasi partisi hybrid BIOS/UEFI yang memungkinkan penggunaannya untuk kedua mode tersebut. Kecuali untuk citra metal4k 4k native, yang ditujukan untuk disk dengan sektor 4k dan tidak memiliki partisi boot BIOS (https://github.com/coreos/coreos-assembler/blob/12029fea7798fa5d3535eafcf8c3d02f9a6095e4/src/cmd-buildextend-metal# L200-L202 [tidak memiliki partisi boot BIOS] karena disk 4k asli adalah https://docs.microsoft.com/en-us/windows-hardware/manufacture/desktop/hard-drives-and-partitions#advanced-format-drives [hanya didukung dengan UEFI].

Apa perbedaan antara konfigurasi Ignition dan Butane?

Konfigurasi Ignition adalah antarmuka tingkat rendah yang digunakan untuk mendefinisikan seluruh kumpulan penyesuaian untuk sebuah instance. Antarmuka ini dirancang terutama untuk mesin, dengan konten yang dienkode dalam format JSON dan struktur tetap yang didefinisikan melalui JSON Schema. Konfigurasi JSON ini diproses oleh setiap instance FCOS pada saat booting pertama kali.

Banyak alat tingkat tinggi yang tersedia yang dapat menghasilkan konfigurasi Ignition berdasarkan format input spesifik mereka sendiri, seperti terraform, matchbox, openshift-installer, dan Butane.

Butane adalah salah satu alat tingkat tinggi. Alat ini dirancang terutama sebagai antarmuka yang ramah pengguna, sehingga mendefinisikan entri konfigurasi yang lebih kaya dan menggunakan dokumen YAML sebagai masukan. Konfigurasi YAML ini tidak pernah diproses langsung oleh instance FCOS (hanya konfigurasi Ignition yang dihasilkan yang diproses).

Meskipun serupa, konfigurasi Ignition dan Butane tidak memiliki struktur yang sama; oleh karena itu, konversi antara keduanya bukan sekadar terjemahan langsung dari YAML ke JSON, tetapi melibatkan logika tambahan. Butane menyediakan beberapa alat bantu kustomisasi (misalnya entri spesifik distribusi dan abstraksi umum) yang tidak terdapat di Ignition, sehingga format-format tersebut tidak dapat dipertukarkan. Selain itu, format yang berbeda (YAML untuk Butane, JSON untuk Ignition) membantu menghindari kesalahan dalam mencampurkan input.

Apa format nomor versi?

Hal ini dijelaskan secara rinci dalam dokumen desainhttps://github.com/coreos/fedora-coreos-tracker/blob/main/Design.md#version-numbers[design docs].

Ringkasannya, Fedora CoreOS menggunakan format X.Y.Z.A

  • X adalah versi utama Fedora (misalnya 32)

  • Y adalah tanggal dan waktu saat paket tersebut diambil snapshot-nya dari Fedora (misalnya 20200715)

  • Z adalah kode nomor yang digunakan oleh versi resmi

    • 1 untuk aliran next

    • 2 untuk aliran`testing`

    • 3 untuk aliran stable

  • A adalah nomor revisi yang ditingkatkan untuk setiap build baru dengan parameter yang sama X.Y.Z

Skema penomoran versi dapat berubah dan tidak dimaksudkan untuk diproses oleh mesin.

Mengapa unit sistem dnsmasq.service disembunyikan?

Kami telah menemukan bahwa biner dnsmasq dapat digunakan untuk beberapa aplikasi host, termasuk podman dan NetworkManager. Oleh karena itu, kami menyertakan paket dnsmasq dalam lapisan dasar OSTree, tetapi kami tidak merekomendasikan penggunaan layanan dnsmasq.service di host dengan cara menyembunyikannya menggunakan perintah systemctl mask dnsmasq.service.

“Mengapa Anda menyembunyikan layanan tersebut?”

dnsmasq juga berguna untuk menjalankan server DHCP/DNS/TFTP untuk klien eksternal (yaitu, bukan yang berada di host lokal), tetapi hal itu adalah sesuatu yang kami sarankan agar pengguna melakukannya dalam sebuah container. Menempatkan layanan dalam container melindungi layanan yang dihosting dari gangguan akibat perubahan pada lapisan host. Misalnya, jika NetworkManager dan podman berhenti menggunakan dnsmasq, kami akan menghapusnya dari host, dan layanan yang Anda andalkan akan berhenti berfungsi.

“Tapi, aku benar-benar ingin menggunakannya!”

Kami tidak merekomendasikannya, tetapi jika Anda benar-benar ingin menggunakannya, Anda dapat membuka pengaturan dan mengaktifkannya:

Contoh konfigurasi Butane untuk mengaktifkan dnsmasq.service
variant: fcos
version: 1.6.0
systemd:
  units:
    - name: dnsmasq.service
      mask: false
      enabled: true

Untuk informasi lebih lanjut, lihat diskusi masalah pelacak.

Mengapa saya mendapatkan penolakan SELinux setelah pembaruan jika saya telah melakukan modifikasi kebijakan lokal?

Saat ini, alat OSTree dan SELinux sedikit bertentangan. Jika Anda telah menerapkan perubahan kebijakan lokal secara permanen, maka pembaruan kebijakan yang dikirimkan oleh sistem operasi tidak akan berlaku; kebijakan Anda akan tetap beku. Hal ini berarti perbaikan kebijakan yang diperlukan untuk mengaktifkan fungsi baru tidak akan diterapkan. Lihat coreos/fedora-coreos-tracker#701 untuk detail lebih lanjut.

Ini berarti Anda mungkin melihat penolakan seperti berikut, yang dapat menyebabkan kegagalan pada bagian kritis sistem seperti dalam coreos/fedora-coreos-tracker#700:

Contoh penolakan SELinux
systemd-resolved[755]: Gagal membuat tautan simbolis ke /run/systemd/resolve/stub-resolv.conf: Izin ditolak
audit[755]: AVC avc:  ditolak  { buat } untuk  pid=755 comm="systemd-resolve" name=".# stub-resolv.confc418434d59d7d93a" scontext=system_u:system_r:systemd_resolved_t:s0 tcontext=system_u:object_r:systemd_resolved_var_run_t:s0 tclass=lnk_file permissive=0

Untuk memeriksa apakah sistem Anda saat ini memiliki perubahan kebijakan lokal, Anda dapat menjalankan perintah ostree admin config-diff. Sistem berikut ini memiliki kebijakan yang telah dimodifikasi:

Contoh sistem dengan kebijakan SELinux yang dimodifikasi
$ sudo ostree admin config-diff | grep selinux/targeted/policy
M    selinux/targeted/policy/policy.32

Untuk mengatasi ketidakcocokan ini, silakan coba menerapkan perubahan kebijakan secara dinamis. Misalnya, untuk boolean SELinux, Anda dapat menggunakan unit systemd berikut yang dijalankan pada setiap booting:

Contoh konfigurasi Butane untuk menerapkan nilai boolean SELinux secara dinamis
variant: fcos
version: 1.6.0
systemd:
  units:
    - name: setsebool.service
      enabled: true
      contents: |
        [Service]
        Type=oneshot
        ExecStart=setsebool container_manage_cgroup true
        RemainAfterExit=yes
        [Install]
        WantedBy=multi-user.target

Jika fungsi dasar sistem Anda berhenti bekerja karena penolakan SELinux, periksa apakah sistem Anda saat ini memiliki modifikasi kebijakan lokal. Anda dapat memeriksanya dengan perintah ostree admin config-diff:

Contoh sistem dengan kebijakan SELinux yang dimodifikasi
$ sudo ostree admin config-diff | grep selinux/targeted/policy
M    selinux/targeted/policy/policy.32

Jika sistem Anda berada dalam keadaan ini, Anda memiliki dua pilihan:

  • Mulai ulang deployment menggunakan artefak citra terbaru.

    • Ini berarti Anda memulai dengan kebijakan terbaru.

  • Ikuti langkah-langkah alternatif yang tercantum di coreos/fedora-coreos-tracker#701 untuk memulihkan kebijakan dasar.

Mengapa unit sistem systemd-repart.service disembunyikan?

system-repart adalah alat untuk memperluas dan menambahkan partisi ke tabel partisi. Pada Fedora CoreOS, kami hanya mendukung penggunaan Ignition untuk membuat partisi, sistem berkas, dan titik mount, sehingga systemd-repart disembunyikan secara default.

Ignition dijalankan pada booting pertama di initramfs dan mendukung tata letak disk khusus Fedora CoreOS. Ignition juga mampu melakukan konfigurasi ulang sistem berkas akar (misalnya dari xfs ke ext4), mengonfigurasi LUKS, dan sebagainya. Lihat halaman Configuring Storage untuk contoh-contohnya.

Lihat entri Mengapa unit systemd dnsmasq.service disembunyikan untuk contoh konfigurasi untuk menampilkan unit ini.

Bagaimana cara menyimpan firmware nirkabel yang terhapus?

Beberapa firmware Wi-Fi dibagi menjadi subpaket di Fedora 39 dan Fedora 40. Fedora CoresOS akan mempertahankannya hingga Fedora 41, tetapi akan menampilkan pesan peringatan di konsol jika NetworkManager-wifi diinstal tanpa paket firmware Wi-Fi lainnya yang diinstal.

Untuk meminta agar firmware Wi-Fi tetap terpasang meskipun Fedora CoreOS menghapus paket-paket ini, silakan ikuti langkah-langkah yang tercantum di langkah-langkah untuk mengaktifkan Wi-Fi pada sistem Fedora CoreOS yang sudah ada.

Setelah paket-paket diminta, Anda dapat menonaktifkan peringatan sehingga tidak akan diperiksa pada booting berikutnya.

sudo systemctl disable coreos-check-wireless-firmwares.service