OpenShift sebagai versi perusahaan Kubernetes

"Apa perbedaan antara Kubernetes dan OpenShift?" - Pertanyaan ini muncul dengan keteguhan yang patut ditiru. Walaupun pada kenyataannya itu seperti bertanya bagaimana mobil berbeda dari mesin. Jika kita melanjutkan analoginya, maka mobil adalah produk jadi, Anda dapat menggunakannya segera, secara harfiah: Anda duduk dan pergi. Di sisi lain, agar mesin membawa Anda ke suatu tempat, pertama-tama harus dilengkapi dengan sejumlah hal lain untuk akhirnya mendapatkan mobil yang sama.



Oleh karena itu, Kubernetes adalah mesin seperti itu, di mana sebuah mobil (platform) dari merek OpenShift disusun, yang membawa Anda ke tujuan.

Dalam artikel ini, kami ingin mengingat dan menganalisis secara lebih rinci poin-poin utama berikut:

  • Kubernetes adalah jantung dari platform OpenShift dan 100% bersertifikasi Kubernetes, open source sepenuhnya dan tanpa kepatutan sedikit pun. Pendeknya:
    • API OpenShift – Kubernetes.
    • Kubernetes, - OpenShift. .
  • OpenShift Kubernetes . , OpenShift , , , . OpenShift . , PaaS- , . Container-as-a-Service .

OpenShift – Kubernetes 100% CNCF


OpenShift didasarkan pada Kubernetes Certified . Karena itu, setelah pelatihan yang tepat, pengguna mengagumi kekuatan kubectl. Dan mereka yang beralih ke OpenShift dengan Kubernetes Cluster sering mengatakan betapa mereka menyukainya setelah mengarahkan kubeconfig ke cluster OpenShift, semua skrip yang tersedia bekerja dengan sempurna.

Anda mungkin pernah mendengar tentang utilitas baris perintah OpenShift yang disebut OC. Ini sepenuhnya kompatibel dengan perintah kubectl, ditambah lagi ia menawarkan beberapa helper'ov berguna yang berguna ketika melakukan sejumlah tugas. Tapi pertama-tama, sedikit tentang kompatibilitas OC dan kubectl:

Tim KubectlTim OC
kubectl mendapatkan polongoc dapatkan pods
kubectl mendapatkan namespaceoc dapatkan namespace
kubectl buat -f deployment.yamloc buat -f deployment.yaml

Beginilah hasil dari penggunaan kubectl pada OpenShift API seperti:

• kubectl mendapatkan pod - diharapkan untuk mengembalikan pod.



• kubectl mendapatkan namespaces - sangat diharapkan mengembalikan namespaces.


Kubectl create -f mydeployment.yaml menciptakan sumber daya kubernetes sama seperti pada platform Kubernetes lainnya, seperti yang ditunjukkan dalam video di bawah ini:


Dengan kata lain, semua API Kubernetes sepenuhnya dapat diakses di OpenShift dengan kompatibilitas 100%. Itulah sebabnya OpenShift diakui oleh Cloud Native Computing Foundation (CNCF) sebagai platform Kubernetes bersertifikat . 

OpenShift Mendukung Kubernet dengan Fitur Berguna


API Kubernetes 100% tersedia di OpenShift, tetapi utilitas kubectl reguler Kubernetes jelas kurang dalam fungsionalitas dan kenyamanan. Karena itu, Red Hat menambahkan Kubernetes dengan fitur-fitur yang berguna dan alat-alat baris perintah, seperti OC (kependekan dari klien OpenShift) dan ODO (OpenShift DO, utilitas ini ditujukan untuk pengembang).

1. Utilitas OC - versi Kubectl yang lebih kuat dan nyaman


Misalnya, tidak seperti kubectl, ini memungkinkan Anda untuk membuat ruang nama baru dan dengan mudah beralih konteks, dan juga menawarkan sejumlah perintah yang berguna untuk pengembang, misalnya, untuk membangun gambar wadah dan menyebarkan aplikasi langsung dari kode sumber atau file biner (Sumber-ke-gambar, s2i).

Mari kita lihat contoh bagaimana fungsi pembantu OC yang canggih dan fungsionalitas membantu menyederhanakan pekerjaan sehari-hari.

Contoh satu adalah manajemen namespace. Setiap cluster Kubernetes selalu memiliki beberapa ruang nama. Biasanya mereka digunakan untuk membuat lingkungan pengembangan dan produksi, tetapi juga dapat digunakan untuk, misalnya, memberi masing-masing pengembang "kotak pasir" pribadi. Dalam praktiknya, ini mengarah pada fakta bahwa pengembang sering harus beralih di antara ruang nama, karena kubectl bekerja dalam konteks ruang saat ini. Oleh karena itu, dalam kasus kubectl, orang secara aktif menggunakan skrip pembantu untuk ini. Tetapi ketika menggunakan OC untuk beralih ke ruang yang diinginkan, itu sudah cukup untuk mengatakan "oc project namespace_".

Tidak ingat apa namanya namespace? Tidak masalah, cukup ketik "oc dapatkan proyek" untuk menampilkan daftar lengkap. Secara skeptis bertanya-tanya bagaimana ini akan bekerja jika Anda hanya memiliki akses ke subset terbatas ruang nama pada cluster? Nah, karena kubectl melakukan ini dengan benar, hanya jika RBAC memungkinkan Anda untuk melihat semua ruang di cluster, dan dalam kelompok besar, tidak semua orang memberikan otoritas seperti itu. Jadi, kami menjawab: untuk OC ini bukan masalah sama sekali dan itu akan dengan mudah memberikan daftar lengkap dalam situasi seperti itu. Berasal dari hal-hal sepele itulah maka fokus korporat OpenSift dan skalabilitas yang baik dari platform ini dalam hal pengguna dan aplikasi dibuat

2. ODO - versi perbaikan kubectl untuk pengembang


Contoh lain dari perbaikan Red Hat OpenShift atas Kubernetes adalah utilitas baris perintah ODO. Ini ditujukan untuk pengembang dan memungkinkan Anda untuk dengan cepat menyebarkan kode lokal pada klaster OpenShift yang jauh. Selain itu, ini dapat digunakan untuk mengoptimalkan proses internal untuk menyinkronkan semua perubahan kode secara instan dengan kontainer pada cluster OpenShift jarak jauh tanpa harus memasang kembali, menempatkannya dalam registri dan memindahkan gambar.

Mari kita lihat bagaimana OC dan ODO membuat wadah dan Kubernet lebih mudah.

Bandingkan saja beberapa alur kerja saat dibangun berdasarkan kubectl, dan ketika OC atau ODO digunakan.

• Penempatan kode pada OpenShift bagi mereka yang tidak berbicara bahasa YAML:

Kubernetes / kubectl$> git clone github.com/sclorg/nodejs-ex.git
1- Dockerfile,
————–
FROM node
WORKDIR /usr/src/app
COPY package*.json ./
COPY index.js ./
COPY ./app ./app
RUN npm install
EXPOSE 3000
CMD [ “npm”, “start” ]
————–
2-
$> podman build …
3-
podman login …
4-
podman push
5- yaml- (deployment.yaml, service.yaml, ingress.yaml) –
6- manifest-:
Kubectl apply -f .
OpenShift / oc$> oc new-app github.com/sclorg/nodejs-ex.git – __
OpenShift / odo$> git clone github.com/sclorg/nodejs-ex.git
$> odo create component nodejs myapp
$> odo push

• : .

Kubernetes / kubectl1- kubeconfig “myproject”
2- kubectl set-context …
OpenShift / ococ project “myproject”

: « , -. ?»


Bayangkan Anda duduk di dalam mobil balap dan mereka berkata: "Kami menempatkan rem tipe baru di sini dan, jujur ​​saja, mereka belum benar dengan keandalan ... Tapi jangan khawatir, kami akan secara aktif memperbaikinya tepat di jalannya kejuaraan." Bagaimana Anda menyukai prospek ini? Kami di Red Hat entah bagaimana tidak begitu. :)

Oleh karena itu, kami mencoba menahan diri dari versi alpha hingga cukup matang, dan kami tidak melakukan pengujian pertempuran menyeluruh dan merasa bahwa mereka dapat digunakan dengan aman. Biasanya, semuanya berjalan melalui tahap Dev Preview terlebih dahulu, kemudian melalui Tech Preview, dan hanya kemudian keluar sebagai rilis publik Ketersediaan Umum (GA), yang sudah cukup stabil untuk cocok untuk produksi.

Mengapa demikian? Karena, seperti halnya pengembangan perangkat lunak lain, tidak semua ide awal di Kubernetes mencapai rilis final. Atau mereka mencapai, dan bahkan mempertahankan fungsionalitas yang dimaksud, tetapi implementasi mereka pada dasarnya berbeda dari yang ada di versi alpha. Karena ribuan dan ribuan pelanggan Red Hat menggunakan OpenShift untuk mendukung tugas-tugas penting, kami memberikan penekanan khusus pada stabilitas platform kami dan dukungan jangka panjang.

Red Hat sengaja merilis rilis OpenShift yang sering dan memperbarui versi Kubernetes. Sebagai contoh, pada saat menulis artikel ini, rilis GA dari OpenShift 4.3 termasuk Kubernetes 1.16, yang hanya satu unit di belakang versi hulu dari Kubernetes 1.17. Karenanya, kami mencoba memberi pelanggan Kubernetes kelas enterprise dan memberikan kontrol kualitas tambahan dalam proses merilis versi baru OpenShift.

Perbaikan perangkat lunak: “Ada lubang dalam versi Kubernet yang kami miliki dalam produksi. Dan Anda dapat menutupnya hanya dengan memperbarui tiga versi. Atau ada pilihan? ”


Sebagai bagian dari proyek open source Kubernetes, perbaikan perangkat lunak biasanya dirilis sebagai bagian dari rilis berikutnya, kadang-kadang mereka mencakup satu atau dua rilis sementara sebelumnya, yang hanya memberikan cakupan 6 bulan yang lalu.

Red Hat dibenarkan bangga merilis perbaikan kritis lebih awal dari yang lain dan memberikan dukungan untuk periode yang lebih lama. Ambil contoh, kerentanan peningkatan hak istimewa Kubernetes ( CVE-2018-1002105 ): ditemukan di Kubernetes 1.11, dan tambalan untuk rilis sebelumnya dirilis hanya untuk versi 1.10.11, meninggalkan lubang ini di semua rilis Kubernetes sebelumnya, mulai dari 1 .x hingga 1.9.

Pada gilirannya, Red Hat menambal OpenShift kembali ke versi 3.2(Kubernetes 1.2 berdiri di sana), menangkap sembilan rilis OpenShift dan menunjukkan layanan pelanggan (info lebih lanjut di sini ).

Bagaimana OpenShift dan Red Hat Memajukan Kubernetes


Red Hat menempati urutan kedua dalam hal kontribusi perangkat lunak untuk open source Kubernetes, kedua setelah Google, dengan 3 dari 5 pengembang paling produktif yang bekerja untuk Red Hat. Fakta lain yang tidak banyak diketahui: banyak fungsi kritis muncul di Kubernetes tepatnya atas inisiatif Red Hat, khususnya, seperti:

  • RBAC. Kubernetes RBAC (ClusterRole, ClusterRoleBinding) , Red Hat , OpenShift. Red Hat Kubernetes? , Red Hat , Open Core. , , , , – .
  • Kebijakan Keamanan untuk Pods (Kebijakan Keamanan Pod). Awalnya, konsep eksekusi aplikasi aman di dalam pod ini diterapkan di OpenShift dengan nama SCC (Security Context Constraints). Dan seperti dalam contoh sebelumnya, Red Hat memutuskan untuk memperkenalkan perkembangan ini ke dalam proyek Kubernetes open-source sehingga semua orang dapat menggunakannya.

Rangkaian contoh ini dapat dilanjutkan, tetapi kami hanya ingin menunjukkan bahwa Red Hat benar-benar berusaha mengembangkan Kubernetes dan menjadikannya lebih baik untuk semua orang.

Jelas, OpenShift adalah Kubernetes. Dan apa perbedaannya? :)


Kami berharap setelah membaca hingga titik ini, Anda menyadari bahwa Kubernetes adalah komponen utama OpenShift. Dasar, tetapi bukan satu-satunya. Dengan kata lain, hanya dengan menginstal Kubernetes Anda tidak akan mendapatkan platform kelas enterprise. Anda perlu menambahkan otentikasi, jaringan, keamanan, pemantauan, manajemen log, dan lainnya. Selain itu, Anda harus membuat pilihan yang sulit dari sejumlah besar alat yang tersedia (untuk menilai keanekaragaman ekosistem, lihat saja diagram CNCF) dan entah bagaimana memastikan koherensi dan koherensi sehingga mereka bekerja secara keseluruhan. Selain itu, Anda secara teratur harus melakukan pembaruan dan pengujian regresi ketika versi baru dari komponen yang digunakan dirilis. Artinya, selain menciptakan dan memelihara platform itu sendiri, Anda juga harus berurusan dengan semua perangkat lunak ini. Sepertinya tidak banyak waktu yang tersisa untuk menyelesaikan masalah bisnis dan mencapai keunggulan kompetitif.

Tetapi dalam kasus OpenShift, Red Hat mengambil semua kesulitan ini dengan sendirinya dan hanya memberi Anda platform yang lengkap secara fungsional, yang tidak hanya mencakup Kubernetes itu sendiri, tetapi juga seluruh rangkaian alat sumber terbuka yang diperlukan yang mengubah Kubernetes menjadi solusi kelas enterprise nyata yang dapat Anda lakukan. segera dan sepenuhnya berjalan dengan tenang dalam produksi. Dan tentu saja, jika Anda memiliki tumpukan teknologi Anda, maka Anda dapat menanamkan OpenShift ke solusi yang ada.


OpenShift adalah platform Kubernetes yang cerdas

Lihatlah gambar di atas: segala sesuatu yang berada di luar persegi panjang Kubernetes adalah area di mana Red Hat menambahkan fungsionalitas yang tidak dimiliki Kubernetes, yang disebut desain-oleh. Dan sekarang kita akan mempertimbangkan utama dari area ini

1. OS yang andal sebagai dasar: RHEL CoreOS atau RHEL


Selama lebih dari 20 tahun, Red Hat telah menjadi penyedia distribusi Linux terkemuka untuk aplikasi bisnis yang sangat penting. Pengalaman yang diperoleh dan terus diperbarui di bidang ini memungkinkan kami untuk menawarkan dasar yang benar-benar andal dan tepercaya untuk operasi industri kontainer. RHEL CoreOS menggunakan kernel yang sama dengan RHEL, tetapi dioptimalkan terutama untuk tugas-tugas seperti menjalankan wadah dan bekerja di kluster Kubernetes: ukurannya yang dikurangi dan kekekalannya menyederhanakan instalasi cluster, autoscaling, penyebaran tambalan, dll. Semua fitur ini menjadikannya dasar yang ideal untuk mendapatkan pengalaman pengguna yang sama ketika bekerja dengan OpenShift di berbagai lingkungan komputasi, dari bare metal hingga cloud pribadi dan publik.

2. Otomatisasi operasi TI


Otomatisasi proses instalasi dan operasi hari kedua (yaitu, operasi harian) adalah hobi kuda-kuda OpenShift yang sangat memudahkan administrasi, pembaruan, dan pemeliharaan platform kontainer di level tertinggi. Ini dicapai dengan mendukung operator Kubernetes di tingkat inti OpenShift 4.

OpenShift 4 juga merupakan ekosistem keseluruhan solusi berdasarkan operator Kubernetes yang dikembangkan oleh Red Hat dan mitra pihak ketiga (lihat direktori operator Red Hat atau toko operator) operatorhub.io , dibuat oleh Red Hat untuk pengembang pihak ketiga).


OpenShift 4 Integrated Directory Termasuk Lebih Dari 180 Operator Kubernetes

3. Alat Pengembang


Sejak 2011, OpenShift telah tersedia sebagai platform PaaS (Platform-as-a-Service), yang sangat menyederhanakan kehidupan pengembang, membantu mereka fokus pada pembuatan kode dan menawarkan dukungan bawaan untuk bahasa pemrograman seperti Java, Node.js, PHP, Ruby, Python, Go, serta CI / CD integrasi berkelanjutan dan layanan pengiriman, database, dll. OpenShift 4 menawarkan katalog luas yang mencakup lebih dari 100 layanan berdasarkan operator Kubernetes yang dikembangkan oleh Red Hat dan mitra kami.

Tidak seperti Kubernetes, OpenShift 4 memiliki antarmuka grafis khusus ( Developer Console), yang membantu pengembang dengan mudah menyebarkan aplikasi di ruang nama mereka dari berbagai sumber (git, pendaftar eksternal, Dockerfile, dll.) dan secara visual memvisualisasikan koneksi antar komponen aplikasi.


Developer Console memvisualisasikan komponen aplikasi dan menyederhanakan bekerja dengan Kubernetes.Selain

itu, OpenShift menawarkan seperangkat alat pengembangan Codeready, yang termasuk Codeready Workspaces , sebuah IDE berbasis webyang dikemalkan sepenuhnya yang berjalan langsung di atas OpenShift dan mengimplementasikan pendekatan seperti IDE layanan". Di sisi lain, bagi mereka yang ingin bekerja secara ketat dalam mode lokal, ada Codeready Containers - versi OpenShift 4 yang berfungsi penuh yang dapat digunakan pada laptop.


"IDE sebagai layanan" terintegrasi untuk pengembangan yang efisien pada platform Kubernetes / OpenShift.

Keluar langsung, OpenShift menawarkan sistem CI / CD lengkap, baik yang didasarkan pada Jenkins kemas dan plug-in DSL untuk jaringan pipa, atau sistem Tekton berbasis Kubernetes CI / CD (untuk saat ini dalam versi pratinjau Tek). Kedua solusi ini sepenuhnya terintegrasi dengan konsol OpenShift, memungkinkan Anda untuk menjalankan pemicu pipa, melihat penyebaran, log, dll.

4. Alat untuk aplikasi


OpenShift memungkinkan Anda untuk menggunakan aplikasi stateful tradisional dan solusi berbasis cloud berdasarkan arsitektur baru, seperti layanan microser atau serverless. Solusi OpenShift Service Mesh langsung dari kotak adalah kunci untuk mendukung alat layanan microser seperti Istio, Kiali dan Jaeger. Pada gilirannya, solusi OpenShift Serverless tidak hanya mencakup Knative, tetapi juga alat-alat seperti Keda, yang dibuat sebagai bagian dari inisiatif bersama dengan Microsoft, untuk menyediakan fungsi Azure pada platform OpenShift.


Solusi OpenShift ServiceMesh yang terintegrasi (Istio, Kiali, Jaeger) berguna ketika mengembangkan layanan microser.

Untuk mempersempit celah antara aplikasi dan kontainer yang lama, OpenShift sekarang memungkinkan migrasi mesin virtual ke platform OpenShift menggunakan Container Native Virtualization (saat ini dalam versi TechPreview), mengubah aplikasi hybrid menjadi kenyataan dan memfasilitasi transfer mereka antara awan yang berbeda, baik pribadi maupun publik.


Windows 2019 Mesin virtual virtual berjalan pada OpenShift melalui Container Native Virtualization (saat ini dalam versi pratinjau Tech)

5. Alat untuk cluster


Setiap platform kelas perusahaan harus memiliki layanan pemantauan dan sentralisasi logging, mekanisme keamanan, otentikasi dan otorisasi, dan alat manajemen jaringan. Dan OpenShift menyediakan semua ini di luar kotak, dan semua ini adalah open source 100%, termasuk solusi seperti ElasticSearch, Prometheus, Grafana. Semua solusi ini dilengkapi dengan dasbor, metrik, dan peringatan yang sudah dikonfigurasikan dan dikonfigurasikan berdasarkan pengalaman pemantauan cluster Red Hat yang luas, yang memungkinkan Anda untuk secara efektif memantau dan melacak lingkungan produksi Anda sejak menit-menit pertama.

OpenShift juga memiliki hal-hal penting bagi pelanggan korporat seperti otentikasi dengan penyedia layanan terpadu, integrasi dengan penyedia kredensial, termasuk LDAP, ActiveDirectory, OpenID Connect, dan banyak lagi.


Dasbor Grafana yang sudah dikonfigurasi sebelumnya untuk memantau klaster OpenShift


Lebih dari 150 Metrik dan Peringatan Presetheus yang Telah Dikonfigurasi untuk Memantau Cluster OpenShift

Bersambung


Fungsionalitas yang kaya dari solusi dan pengalaman yang luas dari Red Hat di bidang Kubernet justru karena alasan inilah OpenShift telah mengambil posisi dominan di pasar, seperti yang ditunjukkan pada gambar di bawah ini (lebih detail di sini ).


“Saat ini, Red Hat memimpin pasar dengan pangsa 44%.
Perusahaan ini menuai manfaat dari strategi penjualannya dengan partisipasi aktif dalam urusan pelanggan, di mana ia pertama kali memberi saran dan melatih pengembang perusahaan, dan kemudian beralih ke monetisasi ketika perusahaan mulai memperkenalkan wadah ke dalam produksi. ”


(Sumber: www.lightreading.com/nfv/containers/ihs-red-hat-container-strategy-is-paying-off/d/d-id/753863 )

Kami harap Anda menikmati artikel ini. Dalam posting berikutnya dalam seri ini, kita akan melihat lebih dekat keunggulan OpenShift dibandingkan dengan Kubernetes di masing-masing kategori yang dibahas di sini.

All Articles