OpenShift sebagai versi perusahaan Kubernetes. Bahagian 1

"Apakah perbezaan antara Kubernetes dan OpenShift?" – soalan ini timbul dengan konsistensi yang dicemburui. Walaupun pada hakikatnya ini seperti bertanya bagaimana kereta berbeza daripada enjin. Jika kita meneruskan analogi, maka kereta adalah produk siap, anda boleh menggunakannya dengan segera, secara literal: masuk dan pergi. Sebaliknya, untuk membolehkan enjin membawa anda ke suatu tempat, ia mesti terlebih dahulu ditambah dengan banyak perkara lain untuk akhirnya mendapatkan kereta yang sama.

OpenShift sebagai versi perusahaan Kubernetes. Bahagian 1

Oleh itu, Kubernetes ialah enjin di mana kereta jenama OpenShift dipasang (platform), yang membawa anda ke matlamat anda.

Dalam artikel ini kami ingin mengingatkan anda dan meneliti perkara penting berikut dengan lebih terperinci:

  • Kubernetes ialah nadi kepada platform OpenShift dan ia adalah Kubernetes yang diperakui 100%, sumber terbuka sepenuhnya dan tanpa sifat proprietari sedikit pun. Secara ringkas:
    • API kluster OpenShift ialah XNUMX% Kubernetes.
    • Jika bekas dijalankan pada mana-mana sistem Kubernetes lain, maka ia akan dijalankan pada OpenShift tanpa sebarang perubahan. Tidak perlu membuat perubahan pada aplikasi.
  • OpenShift bukan sahaja menambah ciri dan fungsi berguna kepada Kubernetes. Seperti kereta, OpenShift adalah di luar kotak, boleh dimasukkan ke dalam pengeluaran serta-merta, dan, seperti yang akan kami tunjukkan di bawah, menjadikan kehidupan pembangun lebih mudah. Itulah sebabnya OpenShift disatukan dalam dua orang. Ia adalah platform PaaS kelas perusahaan yang berjaya dan terkenal dari perspektif pembangun. Dan pada masa yang sama, ia merupakan penyelesaian Kontena-sebagai-Perkhidmatan yang sangat boleh dipercayai dari sudut pandangan operasi perindustrian.

OpenShift ialah Kubernetes dengan pensijilan CNCF 100%.

OpenShift adalah berdasarkan Kubernetes disahkan. Oleh itu, selepas latihan yang betul, pengguna kagum dengan kuasa kubectl. Dan mereka yang beralih kepada OpenShift daripada Kubernetes Cluster sering menyatakan betapa mereka sangat menyukainya selepas mengubah hala kubeconfig ke gugusan OpenShift, semua skrip sedia ada berfungsi dengan sempurna.

Anda mungkin pernah mendengar tentang utiliti baris arahan OpenShift yang dipanggil OC. Ia serasi sepenuhnya dengan kubectl, serta menawarkan beberapa pembantu berguna yang akan berguna apabila melakukan beberapa tugas. Tetapi pertama, sedikit lagi tentang keserasian OC dan kubectl:

arahan kubectl
Pasukan OC

kubectl dapatkan polong
oc dapatkan pod

kubectl dapatkan ruang nama
oc dapatkan ruang nama

kubectl create -f deployment.yaml
oc buat -f deployment.yaml

Begini rupa hasil penggunaan kubectl pada OpenShift API:

• kubectl mendapatkan pod – mengembalikan pod seperti yang diharapkan.

OpenShift sebagai versi perusahaan Kubernetes. Bahagian 1

• kubectl mendapatkan ruang nama – mengembalikan ruang nama seperti yang diharapkan.

OpenShift sebagai versi perusahaan Kubernetes. Bahagian 1
Perintah kubectl create -f mydeployment.yaml mencipta sumber kubernetes sama seperti pada mana-mana platform Kubernetes lain, seperti yang ditunjukkan dalam video di bawah:


Dalam erti kata lain, semua API Kubernetes tersedia sepenuhnya dalam OpenShift sambil mengekalkan keserasian 100%. Itulah sebabnya OpenShift diiktiraf sebagai platform Kubernetes yang diperakui oleh Cloud Native Computing Foundation (CNCF). 

OpenShift menambah ciri berguna kepada Kubernetes

API Kubernetes 100% tersedia dalam OpenShift, tetapi kubectl utiliti Kubernetes standard jelas tidak mempunyai fungsi dan kemudahan. Itulah sebabnya Red Hat telah menambah ciri berguna dan alatan baris perintah kepada Kubernetes, seperti OC (singkatan untuk klien OpenShift) dan ODO (OpenShift DO, utiliti ini ditujukan kepada pembangun).

1. Utiliti OC - versi Kubectl yang lebih berkuasa dan mudah

Contohnya, tidak seperti kubectl, ia membolehkan anda mencipta ruang nama baharu dan menukar konteks dengan mudah, dan juga menawarkan beberapa arahan berguna untuk pembangun, seperti membina imej bekas dan menggunakan aplikasi terus daripada kod sumber atau binari (Sumber-ke-imej, s2i).

Mari lihat contoh cara pembantu terbina dalam dan kefungsian lanjutan utiliti OC membantu memudahkan kerja harian.

Contoh pertama ialah pengurusan ruang nama. Setiap gugusan Kubernetes sentiasa mempunyai berbilang ruang nama. Mereka biasanya digunakan untuk mencipta persekitaran pembangunan dan pengeluaran, tetapi juga boleh digunakan untuk, sebagai contoh, menyediakan setiap pembangun dengan kotak pasir peribadi. Dalam amalan, ini menyebabkan pembangun perlu kerap bertukar antara ruang nama, kerana kubectl berjalan dalam konteks ruang semasa. Oleh itu, dalam kes kubectl, orang ramai secara aktif menggunakan skrip pembantu untuk ini. Tetapi apabila menggunakan OC, untuk beralih ke ruang yang dikehendaki, sebut sahaja "ruang nama projek oc".

Tidak ingat apa ruang nama yang anda perlukan dipanggil? Tiada masalah, hanya taip "oc get projects" untuk memaparkan senarai penuh. Skeptikal tertanya-tanya bagaimana ini akan berfungsi jika anda hanya mempunyai akses kepada subset terhad ruang nama pada kluster? Nah, kerana kubectl hanya melakukan ini dengan betul jika RBAC membenarkan anda melihat semua ruang pada kelompok, dan dalam kelompok besar tidak semua orang diberi kebenaran sedemikian. Jadi, kami menjawab: untuk OC ini tidak menjadi masalah sama sekali dan ia akan dengan mudah menghasilkan senarai lengkap dalam situasi sedemikian. Perkara-perkara kecil inilah yang membentuk orientasi korporat Openshift dan kebolehskalaan platform ini yang baik dari segi pengguna dan aplikasi

2. ODO - versi kubectl yang dipertingkatkan untuk pembangun

Satu lagi contoh penambahbaikan Red Hat OpenShift ke atas Kubernetes ialah utiliti baris arahan ODO. Ia direka untuk pembangun dan membolehkan anda menggunakan kod tempatan dengan cepat ke kluster OpenShift jauh. Ia juga boleh menyelaraskan proses dalaman untuk segera menyegerakkan semua perubahan kod kepada bekas pada kluster OpenShift jauh tanpa perlu membina semula, mendaftar dan mengatur semula imej.

Mari lihat bagaimana OC dan ODO memudahkan kerja dengan bekas dan Kubernetes.

Hanya bandingkan beberapa aliran kerja apabila ia dibina berdasarkan kubectl, dan apabila OC atau ODO digunakan.

• Penggunaan kod pada OpenShift untuk mereka yang tidak bercakap YAML:

Kubernetes/kubectl
$>klon git github.com/sclorg/nodejs-ex.git
1- Buat fail Docker yang membina imej daripada kod
-----
DARI nod
WORKDIR /usr/src/app
SALIN pakej*.json ./
SALIN index.js ./
SALINAN ./app ./app
RUN npm install
DEDAH 3000
CMD [ “npm”, “mula” ] ————–
2- Kami membina imej
$>binaan podman...
3- Log masuk ke pendaftaran
log masuk podman...
4- Letakkan imej dalam pendaftaran
tolak podman
5- Buat fail yaml untuk penggunaan aplikasi (deployment.yaml, service.yaml, ingress.yaml) - ini adalah minimum mutlak
6- Sebarkan fail manifes:
Kubectl apply -f .

OpenShift/oc
$> oc apl baharu github.com/sclorg/nodejs-ex.git – nama_permohonan_kami

OpenShift/odo
$>klon git github.com/sclorg/nodejs-ex.git
$> odo buat komponen nodejs myapp
$>odo tolak

• Suis konteks: tukar ruang nama kerja atau kelompok kerja.

Kubernetes/kubectl
1- Buat konteks dalam kubeconfig untuk projek "myproject"
2- kubectl set-context…

OpenShift/oc
oc projek "myproject"

Kawalan kualiti: “Satu ciri menarik telah muncul di sini, masih dalam versi alfa. Mungkin kita boleh memasukkannya ke dalam pengeluaran?”

Bayangkan duduk di dalam kereta lumba dan diberitahu: “Kami telah memasang brek jenis baharu dan, sejujurnya, kebolehpercayaannya masih belum baik... Tetapi jangan risau, kami akan meningkatkannya secara aktif semasa kursus. daripada kejuaraan.” Bagaimanakah anda menyukai prospek ini? Kami di Red Hat entah bagaimana tidak begitu gembira. 🙂

Oleh itu, kami cuba menangguhkan versi alfa sehingga ia cukup matang dan kami telah melakukan ujian pertempuran yang menyeluruh dan merasakan ia selamat untuk digunakan. Biasanya, semuanya melalui peringkat Pratonton Dev dahulu, kemudian melalui Pratonton Teknologi dan barulah keluar sebagai siaran awam Ketersediaan Umum (GA), yang sudah begitu stabil sehingga sesuai untuk pengeluaran.

Kenapa begitu? Kerana, seperti pembangunan mana-mana perisian lain, tidak semua idea awal dalam Kubernetes mencapai keluaran akhir. Atau mereka mencapainya dan juga mengekalkan fungsi yang dimaksudkan, tetapi pelaksanaannya berbeza secara radikal daripada versi alfa. Dengan beribu-ribu pelanggan Red Hat menggunakan OpenShift untuk menyokong beban kerja kritikal misi, kami memberikan penekanan khusus pada kestabilan platform kami dan sokongan jangka panjang.

Red Hat komited untuk mengeluarkan OpenShift dengan kerap dan mengemas kini versi Kubernetes yang disertakan bersamanya. Sebagai contoh, keluaran GA semasa OpenShift 4.3 pada masa penulisan ini termasuk Kubernetes 1.16, yang hanya satu unit di belakang versi huluan Kubernetes bernombor 1.17. Oleh itu, kami cuba menyediakan Kubernetes kelas perusahaan kepada pelanggan dan menyediakan kawalan kualiti tambahan semasa keluaran versi baharu OpenShift.

Pembetulan perisian: "Terdapat lubang dalam versi Kubernetes yang kami ada dalam pengeluaran. Dan anda boleh menutupnya hanya dengan mengemas kini tiga versi. Atau adakah terdapat sebarang pilihan?

Dalam projek sumber terbuka Kubernetes, pembetulan perisian biasanya dikeluarkan sebagai sebahagian daripada keluaran seterusnya, kadangkala meliputi satu atau dua keluaran penting sebelumnya, memberikan liputan kembali seawal 6 bulan.

Red Hat berbangga dengan mengeluarkan pembetulan kritikal lebih awal daripada yang lain dan memberikan sokongan lebih lama. Ambil contoh kelemahan peningkatan keistimewaan Kubernetes (CVE-2018 1002105-): ia ditemui dalam Kubernetes 1.11, dan pembetulan untuk keluaran sebelumnya dikeluarkan hanya sehingga versi 1.10.11, meninggalkan yang ini dalam lubang dalam semua keluaran Kubernetes sebelumnya, daripada 1.x hingga 1.9.

Pada gilirannya, Red Hat menambal OpenShift kembali ke versi 3.2 (Kubernetes 1.2 ada), menangkap sembilan keluaran OpenShift dan menunjukkan penjagaan yang jelas untuk pelanggan (perincian lanjut di sini).

Bagaimana OpenShift dan Red Hat menggerakkan Kubernetes ke hadapan

Red Hat ialah penyumbang perisian kedua terbesar kepada projek Kubernetes sumber terbuka, di belakang hanya Google, dengan 3 daripada 5 pembangun paling prolifik datang dari Red Hat. Satu lagi fakta yang kurang diketahui: banyak fungsi kritikal muncul di Kubernetes dengan tepat atas inisiatif Red Hat, khususnya, seperti:

  • RBAC. Kubernetes tidak mempunyai fungsi RBAC (ClusterRole, ClusterRoleBinding) sehingga jurutera Red Hat memutuskan untuk melaksanakannya sebagai sebahagian daripada platform itu sendiri, dan bukan sebagai fungsi OpenShift tambahan. Adakah Red Hat takut untuk menambah baik Kubernetes? Sudah tentu tidak, kerana Red Hat mematuhi prinsip sumber terbuka dengan ketat dan tidak bermain permainan Teras Terbuka. Penambahbaikan dan inovasi yang didorong oleh komuniti pembangunan, dan bukannya milik proprietari, lebih berdaya maju dan diterima pakai secara meluas, yang sejajar dengan matlamat teras kami untuk menjadikan perisian sumber terbuka lebih berguna kepada pelanggan kami.
  • Dasar Keselamatan untuk pod (Dasar Keselamatan Pod). Konsep menjalankan aplikasi dengan selamat di dalam pod ini pada asalnya dilaksanakan dalam OpenShift di bawah nama SCC (Kekangan Konteks Keselamatan). Dan seperti dalam contoh sebelumnya, Red Hat memutuskan untuk memperkenalkan perkembangan ini ke dalam projek Kubernetes terbuka supaya semua orang boleh menggunakannya.

Siri contoh ini boleh diteruskan, tetapi kami hanya ingin menunjukkan bahawa Red Hat benar-benar komited untuk membangunkan Kubernetes dan menjadikannya lebih baik untuk semua orang.

Jelas sekali bahawa OpenShift ialah Kubernetes. Apakah perbezaannya? 🙂

Kami berharap dengan membaca sejauh ini anda telah menyedari bahawa Kubernetes ialah komponen teras OpenShift. Yang utama, tetapi jauh dari satu-satunya. Dalam erti kata lain, hanya memasang Kubernetes tidak akan memberikan anda platform kelas perusahaan. Anda perlu menambah pengesahan, rangkaian, keselamatan, pemantauan, pengurusan log dan banyak lagi. Selain itu, anda perlu membuat beberapa pilihan yang sukar daripada sejumlah besar alatan yang tersedia (untuk menghargai kepelbagaian ekosistem, lihat sahaja Carta CNCF) dan entah bagaimana memastikan konsistensi dan kesepaduan supaya ia berfungsi sebagai satu. Di samping itu, anda perlu melakukan kemas kini dan ujian regresi secara kerap apabila versi baharu mana-mana komponen yang anda gunakan dikeluarkan. Iaitu, sebagai tambahan kepada mencipta dan mengekalkan platform itu sendiri, anda juga perlu berurusan dengan semua perisian ini. Tidak mungkin terdapat banyak masa lagi untuk menyelesaikan masalah perniagaan dan mencapai kelebihan daya saing.

Tetapi dalam kes OpenShift, Red Hat mengambil semua kerumitan ini dengan sendirinya dan hanya memberikan anda platform yang lengkap dari segi fungsi, yang merangkumi bukan sahaja Kubernetes itu sendiri, tetapi juga keseluruhan set alatan sumber terbuka yang diperlukan yang menjadikan Kubernetes sebagai kelas perusahaan sebenar. penyelesaian yang anda boleh lancarkan dengan serta-merta dan sepenuhnya ke dalam pengeluaran. Dan sudah tentu, jika anda mempunyai beberapa tindanan teknologi anda sendiri, maka anda boleh menyepadukan OpenShift ke dalam penyelesaian sedia ada.

OpenShift sebagai versi perusahaan Kubernetes. Bahagian 1
OpenShift ialah platform Kubernetes pintar

Lihat gambar di atas: semua yang berada di luar segi empat tepat Kubernetes adalah tempat Red Hat menambah fungsi yang Kubernetes tidak ada, seperti yang mereka katakan, reka bentuk sampingan. Dan sekarang kita akan melihat bahagian utama kawasan ini.

1. OS teguh sebagai asas: RHEL CoreOS atau RHEL

Red Hat telah menjadi pembekal terkemuka pengedaran Linux untuk aplikasi kritikal perniagaan selama lebih daripada 20 tahun. Pengalaman kami yang terkumpul dan sentiasa dikemas kini dalam bidang ini membolehkan kami menawarkan asas yang benar-benar boleh dipercayai dan dipercayai untuk operasi industri kontena. RHEL CoreOS menggunakan kernel yang sama seperti RHEL, tetapi dioptimumkan terutamanya untuk tugas seperti menjalankan kontena dan menjalankan gugusan Kubernetes: saiz yang dikurangkan dan kebolehubahannya menjadikannya lebih mudah untuk menyediakan gugusan, penskalaan automatik, menggunakan tampung, dll. Semua ciri ini menjadikannya lebih mudah. asas yang ideal untuk menyampaikan pengalaman pengguna yang sama dengan OpenShift merentasi pelbagai persekitaran pengkomputeran, daripada logam terdedah kepada awan peribadi dan awam.

2. Automasi operasi IT

Automasi proses pemasangan dan operasi hari ke-4 (iaitu, operasi hari ke hari) ialah titik kukuh OpenShift, menjadikannya lebih mudah untuk mentadbir, mengemas kini dan mengekalkan prestasi platform kontena pada tahap tertinggi. Ini dicapai melalui sokongan untuk pengendali Kubernetes di peringkat kernel OpenShift XNUMX.

OpenShift 4 juga merupakan keseluruhan ekosistem penyelesaian berdasarkan pengendali Kubernetes, dibangunkan oleh Red Hat sendiri dan oleh rakan kongsi pihak ketiga (lihat. direktori operator Red Hat, atau kedai operator operatorhub.io, dicipta oleh Red Hat untuk pembangun pihak ketiga).

OpenShift sebagai versi perusahaan Kubernetes. Bahagian 1
Katalog OpenShift 4 bersepadu termasuk lebih daripada 180 pengendali Kubernetes

3. Alat Pembangun

Sejak 2011, OpenShift telah tersedia sebagai platform PaaS (Platform-as-a-Service) yang menjadikan kehidupan lebih mudah untuk pembangun, membantu mereka menumpukan pada pengekodan dan menawarkan sokongan asli untuk bahasa pengaturcaraan seperti Java, Node.js , PHP, Ruby, Python, Go, serta perkhidmatan penyepaduan dan penghantaran berterusan CI/CD, pangkalan data, dll. OpenShift 4 menawarkan katalog yang luas, yang merangkumi lebih daripada 100 perkhidmatan berdasarkan pengendali Kubernetes yang dibangunkan oleh Red Hat dan rakan kongsi kami.

Tidak seperti Kubernetes, OpenShift 4 mempunyai GUI khusus (Konsol Pembangun), yang membantu pembangun dengan mudah menggunakan aplikasi daripada pelbagai sumber (git, pendaftaran luaran, Dockerfile, dll.) ke dalam ruang nama mereka dan menggambarkan dengan jelas perhubungan antara komponen aplikasi.

OpenShift sebagai versi perusahaan Kubernetes. Bahagian 1
Konsol Pembangun menyediakan paparan yang jelas tentang komponen aplikasi dan memudahkan kerja dengan Kubernetes

Di samping itu, OpenShift menawarkan satu set alat pembangunan Codeready, yang, khususnya, termasuk Ruang Kerja Sedia Kod, IDE kontena sepenuhnya dengan antara muka web yang berjalan terus di atas OpenShift dan melaksanakan pendekatan IDE-sebagai-perkhidmatan. Sebaliknya, bagi mereka yang ingin bekerja dengan ketat dalam mod tempatan, terdapat Codeready Containers, versi OpenShift 4 yang berfungsi sepenuhnya yang boleh digunakan pada komputer riba.

OpenShift sebagai versi perusahaan Kubernetes. Bahagian 1
IDE bersepadu sebagai perkhidmatan untuk pembangunan cekap pada platform Kubernetes/OpenShift

OpenShift menawarkan sistem CI/CD penuh terus dari kotak, sama ada berdasarkan Jenkins bekas dan pemalam DSL untuk bekerja dengan saluran paip, atau sistem CI/CD berorientasikan Kubernetes Tekton (kini dalam versi pratonton Tech). Kedua-dua penyelesaian ini disepadukan sepenuhnya dengan konsol OpenShift, membolehkan anda menjalankan pencetus saluran paip, melihat penggunaan, log dan banyak lagi.

4. Alatan Aplikasi

OpenShift membolehkan anda menggunakan kedua-dua aplikasi stateful tradisional dan penyelesaian berasaskan awan berdasarkan seni bina baharu, seperti perkhidmatan mikro atau tanpa pelayan. Penyelesaian OpenShift Service Mesh datang dari kotak dengan alatan utama untuk mengekalkan perkhidmatan mikro, seperti Istio, Kiali dan Jaeger. Sebaliknya, penyelesaian Tanpa Pelayan OpenShift termasuk bukan sahaja Knative, tetapi juga alatan seperti Keda yang dicipta sebagai sebahagian daripada inisiatif bersama Microsoft untuk menyediakan fungsi Azure pada platform OpenShift.

OpenShift sebagai versi perusahaan Kubernetes. Bahagian 1
Penyelesaian bersepadu OpenShift ServiceMesh (Istio, Kiali, Jaeger) akan berguna apabila membangunkan perkhidmatan mikro

Untuk merapatkan jurang antara aplikasi dan bekas lama, OpenShift kini membenarkan penghijrahan mesin maya ke platform OpenShift menggunakan Virtualisasi Asli Kontainer (kini dalam TechPreview), menjadikan aplikasi hibrid menjadi realiti dan memudahkan penghijrahan mereka antara awan yang berbeza, baik peribadi mahupun awam.

OpenShift sebagai versi perusahaan Kubernetes. Bahagian 1
Mesin maya maya Windows 2019 berjalan pada OpenShift melalui Virtualisasi Asli Kontainer (kini dalam versi pratonton Tech)

5. Alat untuk kelompok

Mana-mana platform kelas perusahaan mesti mempunyai pemantauan dan perkhidmatan pembalakan berpusat, mekanisme keselamatan, pengesahan dan kebenaran serta alatan pengurusan rangkaian. Dan OpenShift menyediakan semua ini di luar kotak, dan semuanya adalah 100% sumber terbuka, termasuk penyelesaian seperti ElasticSearch, Prometheus, Grafana. Semua penyelesaian ini disertakan dengan papan pemuka, metrik dan makluman yang telah dibina dan dikonfigurasikan menggunakan kepakaran pemantauan kluster Red Hat yang luas, membolehkan anda mengawal dan memantau persekitaran pengeluaran anda dengan berkesan dari awal.

OpenShift juga didatangkan secara standard dengan perkara penting untuk pelanggan korporat seperti pengesahan dengan penyedia oauth terbina dalam, penyepaduan dengan pembekal kelayakan, termasuk LDAP, ActiveDirectory, OpenID Connect dan banyak lagi.

OpenShift sebagai versi perusahaan Kubernetes. Bahagian 1
Papan pemuka Grafana prakonfigurasi untuk pemantauan kluster OpenShift

OpenShift sebagai versi perusahaan Kubernetes. Bahagian 1
Lebih 150 metrik dan makluman Prometheus prakonfigurasi untuk pemantauan kelompok OpenShift

Perlu diteruskan

Fungsi penyelesaian yang kaya dan pengalaman luas Red Hat dalam bidang Kubernetes adalah sebab mengapa OpenShift telah mencapai kedudukan dominan dalam pasaran, seperti yang ditunjukkan dalam rajah di bawah (baca lebih lanjut di sini).

OpenShift sebagai versi perusahaan Kubernetes. Bahagian 1
“Red Hat kini menerajui pasaran dengan bahagian 44%.
Syarikat itu mendapat manfaat daripada strategi jualannya yang mementingkan pelanggan, di mana ia mula-mula berunding dan melatih pembangun perusahaan dan kemudian beralih kepada pengewangan apabila perusahaan itu mula menggunakan kontena ke dalam pengeluaran."

(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 siaran akan datang dalam siri ini, kami akan melihat dengan lebih dekat kelebihan OpenShift berbanding Kubernetes dalam setiap kategori yang dibincangkan di sini.

Sumber: www.habr.com

Tambah komen