«Kubernetes пен OpenShift арасындағы айырмашылық неде?» – бұл сұрақ қызғанарлықтай дәйектілікпен туындайды. Шындығында бұл автомобильдің қозғалтқыштан айырмашылығын сұрау сияқты. Егер ұқсастықты жалғастыратын болсақ, онда автомобиль - бұл дайын өнім, оны бірден қолдануға болады, сөзбе-сөз: ішке кіріп кетіңіз. Екінші жағынан, қозғалтқыш сізді бір жерге апаруы үшін, ең алдымен, сол көлікті алу үшін оны көптеген басқа заттармен толықтыру керек.
Сондықтан Kubernetes - бұл сізді мақсатыңызға апаратын OpenShift маркалы автокөлік (платформа) жиналған қозғалтқыш.
Бұл мақалада біз сізге еске салғымыз келеді және келесі негізгі ойларды толығырақ қарастырғымыз келеді:
- Kubernetes OpenShift платформасының жүрегі болып табылады және ол 100% сертификатталған Kubernetes болып табылады, толығымен ашық бастапқы коды және ең кішкентай меншіктік сипаты жоқ. Қысқаша:
- OpenShift кластерінің API интерфейсі 100% Kubernetes болып табылады.
- Контейнер кез келген басқа Kubernetes жүйесінде жұмыс істесе, ол OpenShift жүйесінде ешқандай өзгеріссіз жұмыс істейді. Қолданбаларға өзгертулер енгізудің қажеті жоқ.
- OpenShift тек Kubernetes-ке пайдалы мүмкіндіктер мен функционалдылықты қосып қана қоймайды. Автокөлік сияқты, OpenShift қораптан шықты, оны бірден өндіріске қосуға болады және төменде көрсететініміздей, әзірлеушінің өмірін айтарлықтай жеңілдетеді. Сондықтан OpenShift екі адамға біріктірілген. Бұл әзірлеушінің көзқарасы бойынша табысты және танымал кәсіпорын деңгейіндегі PaaS платформасы. Сонымен қатар, бұл өнеркәсіптік пайдалану тұрғысынан өте сенімді Container-as-a-Service шешімі.
OpenShift - бұл 100% CNCF сертификаты бар Kubernetes
OpenShift негізделген
Сіз OpenShift-тің OC деп аталатын пәрмен жолы утилитасы туралы естіген шығарсыз. Ол kubectl пәрменімен толық үйлесімді, сонымен қатар ол бірқатар тапсырмаларды орындау кезінде пайдалы болатын бірнеше пайдалы көмекшілерді ұсынады. Алдымен, OC және kubectl үйлесімділігі туралы аздап:
kubectl командалары
OC командалары
кубектл шыбықтарды алыңыз
oc түйіршіктер алыңыз
kubectl аттар кеңістігін алады
oc аттар кеңістігін алыңыз
kubectl create -f deployment.yaml
oc create -f deployment.yaml
OpenShift API интерфейсінде kubectl пайдаланудың нәтижелері келесідей:
• kubectl get pods – бөтелкелерді күткендей қайтарады.
• kubectl get namespaces – күтілгендей аттар кеңістігін қайтарады.
kubectl create -f mydeployment.yaml пәрмені төмендегі бейнеде көрсетілгендей Kubernetes ресурстарын кез келген басқа Kubernetes платформасындағы сияқты жасайды:
Басқаша айтқанда, барлық Kubernetes API интерфейстері 100% үйлесімділікті сақтай отырып, OpenShift бағдарламасында толығымен қол жетімді. Сондықтан
OpenShift Kubernetes-ке пайдалы мүмкіндіктерді қосады
Kubernetes API интерфейстері OpenShift-те 100% қол жетімді, бірақ Kubernetes kubectl стандартты утилитасында функционалдылық пен ыңғайлылық жоқ екені анық. Сондықтан Red Hat Kubernetes-ке OC (OpenShift клиентінің қысқашасы) және ODO (OpenShift DO, бұл утилита әзірлеушілерге арналған) сияқты пайдалы мүмкіндіктер мен пәрмен жолы құралдарын қосты.
1. OC утилитасы - Kubectl-тің неғұрлым қуатты және ыңғайлы нұсқасы
Мысалы, kubectl-ден айырмашылығы, ол жаңа аттар кеңістігін жасауға және контексттерді оңай ауыстыруға мүмкіндік береді, сондай-ақ әзірлеушілер үшін контейнерлік кескіндерді құру және қолданбаларды тікелей бастапқы кодтан немесе екілік файлдардан қолдану сияқты бірнеше пайдалы пәрмендерді ұсынады (көзден кескінге, s2i).
OC утилитасының кірістірілген көмекшілері мен кеңейтілген функционалдығы күнделікті жұмысты жеңілдетуге қалай көмектесетінінің мысалдарын қарастырайық.
Бірінші мысал - аттар кеңістігін басқару. Әрбір Kubernetes кластерінде әрқашан бірнеше аттар кеңістігі болады. Олар әдетте әзірлеу және өндіру орталарын жасау үшін пайдаланылады, бірақ сонымен қатар, мысалы, әрбір әзірлеушіге жеке құм жәшігін қамтамасыз ету үшін пайдаланылуы мүмкін. Іс жүзінде бұл әзірлеушіге аттар кеңістігі арасында жиі ауысуға тура келеді, өйткені kubectl ағымдағы кеңістік контекстінде жұмыс істейді. Сондықтан kubectl жағдайында адамдар бұл үшін көмекші сценарийлерді белсенді пайдаланады. Бірақ OC пайдаланған кезде қалаған кеңістікке ауысу үшін жай ғана «oc project namespace» деп айтыңыз.
Сізге қажет аттар кеңістігі қалай аталатыны есіңізде жоқ па? Мәселе жоқ, толық тізімді көрсету үшін «oc get projects» деп теріңіз. Кластердегі аттар кеңістігінің шектеулі жиынына ғана рұқсатыңыз болса, бұл қалай жұмыс істейтініне күмәнданасыз ба? Өйткені, kubectl мұны тек RBAC кластердегі барлық бос орындарды көруге мүмкіндік берсе ғана дұрыс жасайды, ал үлкен кластерлерде мұндай рұқсаттар барлығына берілмейді. Сонымен, біз жауап береміз: OC үшін бұл мүлдем проблема емес және ол мұндай жағдайда толық тізімді оңай шығарады. Openshift-тің корпоративтік бағдарын және пайдаланушылар мен қолданбалар тұрғысынан осы платформаның жақсы ауқымдылығын құрайтын осы кішкентай нәрселер.
2. ODO - әзірлеушілерге арналған kubectl жетілдірілген нұсқасы
Red Hat OpenShift-тің Kubernetes бойынша жақсартуларының тағы бір мысалы - ODO пәрмен жолы утилитасы. Ол әзірлеушілерге арналған және қашықтағы OpenShift кластеріне жергілікті кодты жылдам орналастыруға мүмкіндік береді. Ол сонымен қатар кескіндерді қайта құру, тіркеу және қайта орналастыру қажетсіз қашықтағы OpenShift кластеріндегі контейнерлерге барлық код өзгерістерін лезде синхрондау үшін ішкі процестерді жеңілдетеді.
OC және ODO контейнерлермен және кубернеттермен жұмысты қалай жеңілдететінін қарастырайық.
Тек kubectl негізінде құрылған және OC немесе ODO пайдаланылған кезде бірнеше жұмыс үрдісін салыстырыңыз.
• YAML тілін білмейтіндер үшін OpenShift жүйесінде кодты орналастыру:
Kubernetes/kubectl
$>git клон
1- Кескінді кодтан құрастыратын Dockerfile жасаңыз
-----
FROM түйін
WORKDIR /usr/src/app
Буманы КӨШІРУ*.json ./
COPY index.js ./
КӨШІРУ ./app./app
RUN npm орнату
EXPOSE 3000
CMD [ “npm”, “start” ]
—————
2- Біз суретті саламыз
$>подман құрастыру...
3- Тізілімге кіріңіз
подманға кіру...
4- Кескінді тізілімге орналастырыңыз
подманды итеру
5- Қолданбаны орналастыру үшін yaml файлдарын жасаңыз (deployment.yaml, service.yaml, ingress.yaml) - бұл абсолютті минимум
6- Манифест файлдарын орналастыру:
Kubectl қолданылады -f .
OpenShift/oc
$> oc жаңа қолданба
OpenShift/odo
$>git клон
$> odo компонент nodejs myapp құру
$>odo push
• Мәтінмәндік қосқыш: жұмыс аттар кеңістігін немесе жұмыс кластерін өзгерту.
Kubernetes/kubectl
1- «менің жобам» жобасы үшін kubeconfig контекстін жасаңыз
2- kubectl жиынтық контексі…
OpenShift/oc
oc жобасы «менің жобам»
Сапаны бақылау: «Бұл жерде бір қызықты мүмкіндік пайда болды, әлі альфа нұсқасында. Мүмкін өндіріске енгізерміз?».
Елестетіп көріңізші, жарыс көлігіне отырғызып, оған: «Біз тежегіштердің жаңа түрін орнаттық, шынымды айтсам, олардың сенімділігі әлі жақсы емес... Бірақ алаңдамаңыз, біз оларды курс барысында белсенді түрде жетілдіреміз. чемпионаттың». Сізге бұл перспектива қалай ұнайды? Red Hat-те біз өте бақытты емеспіз. 🙂
Сондықтан, біз альфа-нұсқаларды олар жеткілікті түрде жетілгенге дейін және мұқият шайқас сынақтарынан өткізіп, оларды пайдалану қауіпсіз деп санамайынша ұстауға тырысамыз. Әдетте, бәрі алдымен әзірлеуді алдын ала қарау кезеңінен, содан кейін арқылы өтеді
Неге бұлай? Өйткені, кез келген басқа бағдарламалық жасақтаманы әзірлеу сияқты, Kubernetes-тегі барлық бастапқы идеялар соңғы шығарылымға жете бермейді. Немесе олар оған жетеді және тіпті жоспарланған функционалдылықты сақтайды, бірақ олардың орындалуы альфа нұсқасынан түбегейлі ерекшеленеді. Мыңдаған Red Hat тұтынушылары OpenShift қолданбасын миссия үшін маңызды жұмыс жүктемелерін қолдау үшін пайдалана отырып, біз платформамыздың тұрақтылығына және ұзақ мерзімді қолдауға ерекше назар аударамыз.
Red Hat OpenShift-ті жиі шығаруға және онымен бірге келетін Kubernetes нұсқасын жаңартуға тырысады. Мысалы, осы жазу кезінде OpenShift 4.3 нұсқасының ағымдағы GA шығарылымы Kubernetes 1.16 нұсқасын қамтиды, ол 1.17 нөмірлі Kubernetes нұсқасының жоғары ағынынан бір ғана артта тұрады. Осылайша, біз OpenShift бағдарламасының жаңа нұсқаларын шығара отырып, тұтынушыға кәсіпорын деңгейіндегі Kubernetes және қосымша сапаны бақылауды қамтамасыз етуге тырысамыз.
Бағдарламалық құрал түзетілді: «Бізде өндірісте бар Kubernetes нұсқасында тесік болды. Оны тек үш нұсқаны жаңарту арқылы жабуға болады. Немесе нұсқалар бар ма?
Kubernetes ашық бастапқы коды жобасында бағдарламалық жасақтаманы түзетулер әдетте келесі шығарылымның бөлігі ретінде шығарылады, кейде бір немесе екі алдыңғы кезең шығарылымдарын қамтиды және 6 айға дейін қамтуды қамтамасыз етеді.
Red Hat сыни түзетулерді басқаларға қарағанда ертерек шығаруды және ұзақ уақыт қолдау көрсетуді мақтан етеді. Мысалы, Kubernetes артықшылығын арттыру осалдығын алайық (
Өз кезегінде,
OpenShift және Red Hat Kubernetes қалай алға жылжытады
Red Hat – ашық бастапқы кодты Kubernetes жобасына бағдарламалық қамтамасыз ету бойынша екінші үлкен үлес қосушы, тек Google-дан кейін, Red Hat-тен шыққан 3 ең өнімді әзірлеушілердің 5-і. Тағы бір аз белгілі факт: Kubernetes-те көптеген маңызды функциялар дәл Red Hat бастамасымен пайда болды, атап айтқанда:
- RBAC. Red Hat инженерлері оларды қосымша OpenShift функциясы ретінде емес, платформаның бір бөлігі ретінде енгізуді шешкенге дейін Kubernetes RBAC функцияларына (ClusterRole, ClusterRoleBinding) ие болмады. Red Hat Kubernetes жақсартудан қорқады ма? Әрине, жоқ, өйткені Red Hat ашық бастапқы код принциптерін қатаң сақтайды және Open Core ойындарын ойнамайды. Меншікті емес, даму қауымдастықтары басқаратын жақсартулар мен инновациялар неғұрлым өміршең және кеңірек қабылданады, бұл біздің тұтынушылар үшін ашық бастапқы бағдарламалық жасақтаманы пайдалырақ ету жөніндегі негізгі мақсатымызға сәйкес келеді.
- Қоспаларға арналған қауіпсіздік саясаттары (Pod Security Policies). Қолданбаларды қондырмалар ішінде қауіпсіз іске қосу тұжырымдамасы бастапқыда OpenShift бағдарламасында SCC (Қауіпсіздік контекстік шектеулері) атауымен жүзеге асырылды. Алдыңғы мысалдағыдай, Red Hat бұл әзірлемелерді барлығы пайдалана алатындай ашық Kubernetes жобасына енгізуді ұйғарды.
Бұл мысалдар сериясын жалғастыруға болады, бірақ біз жай ғана Red Hat шынымен Кубернетесті дамытуға және оны барлығына жақсырақ етуге дайын екенін көрсеткіміз келді.
OpenShift - бұл Kubernetes екені анық. Қандай айырмашылықтар бар? 🙂
Осы уақытқа дейін оқу арқылы сіз Kubernetes OpenShift бағдарламасының негізгі құрамдас бөлігі екенін түсіндіңіз деп үміттенеміз. Ең бастысы, бірақ жалғыздан алыс. Басқаша айтқанда, жай ғана Kubernetes орнату сізге кәсіпорын деңгейіндегі платформаны бермейді. Аутентификацияны, желіні, қауіпсіздікті, бақылауды, журналды басқаруды және т.б. қосу керек. Оған қоса, қол жетімді құралдардың көптігінен қиын таңдаулар жасауға тура келеді (экожүйенің әртүрлілігін бағалау үшін жай ғана қарап шығыңыз)
Бірақ OpenShift жағдайында Red Hat осы күрделіліктердің барлығын өз мойнына алады және жай ғана сізге Кубернетестің өзін ғана емес, сонымен қатар Kubernetes-ті нақты кәсіпорын деңгейіне айналдыратын қажетті ашық бастапқы құралдардың барлық жиынтығын қамтитын функционалды толық платформаны береді. дереу және толығымен тыныш өндіріске енгізуге болатын шешім. Әрине, егер сізде өзіңіздің технологиялық стектеріңіз болса, OpenShift қолданбасын бар шешімдерге біріктіруге болады.
Жоғарыдағы суретке қараңыз: Кубернетес тіктөртбұрышынан тыс барлық нәрсе Red Hat Kubernetes-те жоқ функционалдылықты қосады, олар айтқандай, дизайн бойынша. Ал енді осы салалардың негізгілеріне тоқталамыз.
1. Негіз ретінде сенімді ОЖ: RHEL CoreOS немесе RHEL
Red Hat 20 жылдан астам бизнес үшін маңызды қолданбаларға арналған Linux дистрибутивтерінің жетекші провайдері болып табылады. Біздің осы саладағы жинақталған және үнемі жаңартылып отыратын тәжірибеміз контейнерлерді өнеркәсіптік пайдалану үшін шынайы сенімді және сенімді негізді ұсынуға мүмкіндік береді. RHEL CoreOS RHEL сияқты бірдей ядроны пайдаланады, бірақ негізінен контейнерлерді іске қосу және Kubernetes кластерлерін іске қосу сияқты тапсырмалар үшін оңтайландырылған: оның кішірейтілген өлшемі және өзгермейтіндігі кластерлерді орнатуды, автомасштабтауды, патчтарды орналастыруды және т.б. оңайырақ етеді. Осы мүмкіндіктердің барлығы оны жасайды. OpenShift көмегімен бірдей пайдаланушы тәжірибесін жалаң металлдан жеке және жалпыға ортақ бұлтқа дейінгі көптеген есептеу орталарында жеткізу үшін тамаша негіз.
2. АТ операцияларын автоматтандыру
Орнату процестерін және екінші күндік операцияларды автоматтандыру (яғни, күнделікті операциялар) OpenShift-тің күшті жағы болып табылады, бұл контейнер платформасын басқаруды, жаңартуды және өнімділігін жоғары деңгейде ұстауды әлдеқайда жеңілдетеді. Бұған OpenShift 4 ядро деңгейінде Kubernetes операторларына қолдау көрсету арқылы қол жеткізіледі.
OpenShift 4 сонымен қатар Red Hat өзі де, үшінші тарап серіктестері де әзірлеген Kubernetes операторларына негізделген шешімдердің тұтас экожүйесі болып табылады (қараңыз.
Біріктірілген OpenShift 4 каталогында 180-ден астам Kubernetes операторлары бар
3. Әзірлеуші құралдары
2011 жылдан бастап OpenShift әзірлеушілердің өмірін жеңілдететін, кодтауға көңіл бөлуге көмектесетін және Java, Node.js сияқты бағдарламалау тілдеріне жергілікті қолдауды ұсынатын PaaS (Platform-as-a-Service) платформасы ретінде қол жетімді. , PHP, Ruby, Python, Go, сонымен қатар CI/CD үздіксіз интеграция және жеткізу қызметтері, дерекқорлар және т.б. OpenShift 4 ұсынады.
Kubernetes-тен айырмашылығы, OpenShift 4 арнайы графикалық интерфейсі бар (
Сонымен қатар, OpenShift Codeready әзірлеу құралдарының жиынтығын ұсынады, олар, атап айтқанда, қамтиды
Kubernetes/OpenShift платформасында тиімді әзірлеуге арналған қызмет ретінде біріктірілген IDE
OpenShift контейнерленген Дженкинс пен плагин негізіндегі толық CI/CD жүйесін ұсынады.
4. Қолданбалы құралдар
OpenShift дәстүрлі күй қолданбаларын да, микросервистер немесе серверсіз сияқты жаңа архитектураға негізделген бұлтқа негізделген шешімдерді де орналастыруға мүмкіндік береді. OpenShift Service Mesh шешімі Istio, Kiali және Jaeger сияқты микросервистерге қызмет көрсетуге арналған негізгі құралдармен бірге қораптан шығады. Өз кезегінде, OpenShift Serverless шешімі тек Knative емес, сонымен қатар OpenShift платформасында Azure функцияларын қамтамасыз ету үшін Microsoft-пен бірлескен бастаманың бөлігі ретінде жасалған Keda сияқты құралдарды қамтиды.
Біріктірілген OpenShift ServiceMesh шешімі (Istio, Kiali, Jaeger) микросервистерді әзірлеу кезінде пайдалы болады.
Бұрынғы қолданбалар мен контейнерлер арасындағы алшақтықты жою үшін OpenShift енді виртуалды машинаны OpenShift платформасына Container Native Виртуализациясын (қазір TechPreview нұсқасында) пайдаланып көшіруге мүмкіндік береді, гибридті қолданбаларды шындыққа айналдырады және олардың жеке және жалпыға ортақ сияқты әртүрлі бұлттар арасында тасымалдауын жеңілдетеді.
Windows 2019 Windows XNUMX Виртуалды виртуалды машинасы OpenShift жүйесінде контейнерлік виртуализация арқылы жұмыс істейді (қазір техникалық алдын ала қарау нұсқасында)
5. Кластерлерге арналған құралдар
Кез келген кәсіпорын деңгейіндегі платформада бақылау және орталықтандырылған тіркеу қызметтері, қауіпсіздік механизмдері, аутентификация және авторизация және желіні басқару құралдары болуы керек. OpenShift мұның барлығын қораптан тыс қамтамасыз етеді және оның барлығы 100% ашық көз, соның ішінде ElasticSearch, Prometheus, Grafana сияқты шешімдер. Бұл шешімдердің барлығы Red Hat компаниясының кластерді бақылаудың ауқымды тәжірибесін пайдаланып құрастырылған және конфигурацияланған бақылау тақталарымен, көрсеткіштермен және ескертулермен бірге келеді, бұл сізге өндіріс ортаңызды басынан бастап тиімді басқаруға және бақылауға мүмкіндік береді.
OpenShift сонымен қатар корпоративтік тұтынушылар үшін кірістірілген аутентификация провайдерімен аутентификация, тіркелгі деректерін жеткізушілермен, соның ішінде LDAP, ActiveDirectory, OpenID Connect және т.б. біріктіру сияқты маңызды нәрселермен стандартты түрде жеткізіледі.
OpenShift кластерін бақылау үшін алдын ала конфигурацияланған Grafana бақылау тақтасы
OpenShift кластерін бақылауға арналған 150-ден астам алдын ала конфигурацияланған Prometheus көрсеткіштері мен ескертулері
Жалғасы бар
Шешімнің бай функционалдығы және Red Hat компаниясының Kubernetes саласындағы мол тәжірибесі төмендегі суретте көрсетілгендей OpenShift-тің нарықта үстем жағдайға жетуінің себебі болып табылады (толығырақ оқу
«Қазіргі уақытта Red Hat 44% үлеспен нарықта көш бастап тұр.
Компания тұтынушыға бағытталған сату стратегиясының пайдасын көруде, онда ол алдымен кәсіпорын әзірлеушілерімен кеңесіп, оқытады, содан кейін кәсіпорын контейнерлерді өндіріске орналастыра бастағанда монетизацияға көшеді».
(Дереккөз:
Сізге бұл мақала ұнады деп үміттенеміз. Осы сериядағы алдағы жазбаларда біз осы жерде талқыланған санаттардың әрқайсысында Кубернетеске қарағанда OpenShift артықшылықтарын егжей-тегжейлі қарастырамыз.
Ақпарат көзі: www.habr.com