Článek přečtěte do 5 min.

S potěšením oznamujeme významné vylepšení služby OCI Kubernetes Engine (OKE): podporu pro smíšené clustery uzlů. Tato nová funkce zásadně mění způsob, jakým mohou zákazníci nasazovat a spravovat své úlohy Kubernetes, a to tím, že poprvé v historii umožňuje používat spravované uzly, virtuální uzly a samostatně spravované uzly v rámci jednoho clusteru OKE.

Výzva moderního nasazení Kubernetes

Organizace dnes potřebují ve svých prostředích Kubernetes provozovat rozmanitou škálu aplikací. Některé úlohy, jako jsou tradiční databáze nebo stavové aplikace, vyžadují předvídatelný výkon, specifické hardwarové konfigurace a vysoký stupeň kontroly nad podkladovou infrastrukturou. Jiné úlohy, jako jsou bezstavové mikroslužby, vyžadují elastické škálování, bezserverový provozní model a minimální režijní náklady na správu. Nová třída úloh AI/ML představuje další sadu požadavků: přístup k akcelerátorům GPU a vysoký výkon, síť RDMA s nízkou latencí a další.

Historicky byly organizace často nuceny spravovat zcela oddělené clustery, aby vyhověly těmto rozmanitým potřebám. Tento přístup s sebou přinesl provozní složitost, zvýšil režijní náklady na správu a vedl k neefektivnímu využívání zdrojů. Nová podpora smíšených uzlů od OKE tento problém řeší přímo a poskytuje jednotnou, efektivní a flexibilní platformu, která podporuje nejvhodnější infrastrukturu pro všechny typy úloh.

Principy typů uzlů OKE

OKE nabízí tři odlišné typy uzlů, z nichž každý je navržen tak, aby splňoval odlišné provozní a technické požadavky:

  • Spravované uzly: Jedná se o standardní instance OCI Compute, kde je životní cyklus infrastruktury spravován prostřednictvím rozhraní OKE API. Poskytují granulární kontrolu nad konfigurací uzlu (tvar, operační systém, úložiště) a jsou ideální pro úlohy, které vyžadují specifický hardwarový přístup, trvalé úložiště nebo předvídatelný výkon.
  • Virtuální uzly: Toto je bezserverové prostředí Kubernetes od OKE. Virtuální uzly zcela abstrahují podkladovou infrastrukturu, což uživatelům umožňuje provozovat kontejnery ve velkém měřítku bez nutnosti správy, škálování, upgradu nebo řešení problémů s infrastrukturou uzlů. Jsou ideální pro vysoce elastické aplikace bez stavové definice.
  • Samostatně spravované uzly: I když jsou méně běžné pro obecné použití, jedná se o instance OCI Compute vytvořené a plně spravované zákazníkem, které nabízejí maximální kontrolu pro vysoce specifické, specializované případy použití.

Síla smíšených uzlových clusterů

Smíšené klastry uzlů umožňují zákazníkům kombinovat tyto typy uzlů v rámci jednoho clusteru Kubernetes. Tato funkce odemyká nové výkonné strategie nasazení a provozní efektivitu.
Například zákazník nyní může umístit své stavové úlohy, které vyžadují trvalé úložiště a předvídatelné výpočetní prostředky, na spravované uzly v clusteru. Současně může na virtuální uzly nasadit své bezstavové úlohy, jako jsou frontendy API nebo fronty zpracování. Kromě toho může na samosprávné uzly nasadit úlohy AI/ML, například ty, které vyžadují vysokou propustnost a připojení s nízkou latencí pro trénování více uzlů.

Toto strategické umístění znamená, že zákazníci mohou využít provozní jednoduchost a automatické škálování virtuálních uzlů bez serveru  pro většinu svých dynamických aplikací a zároveň si zachovat kontrolu nad infrastrukturou a předvídatelnost spravovaných uzlů  pro jejich kritické, stavové komponenty a pokročilé možnosti konfigurace dostupné pro samosprávné uzly pro jejich nejvýkonnější úlohy AI/ML. Výsledkem je vysoce optimalizované, efektivní a odolné prostředí Kubernetes.

Klíčové výhody smíšených uzlových clusterů

  • Optimální umístění pracovní zátěže: Snadno přiřaďte správnou pracovní zátěž správnému typu infrastruktury na základě technických požadavků, nákladových aspektů a provozních potřeb.
  • Zjednodušená správa: Konsolidujte různorodé úlohy do jednoho sjednoceného clusteru OKE, čímž snížíte celkové provozní náklady ve srovnání se správou více samostatných clusterů.
  • Vylepšené využití zdrojů: Efektivně škálujte specifické komponenty vaší aplikace nezávisle a v případě potřeby využijte okamžité bezserverové škálování virtuálních uzlů.
  • Zvýšená flexibilita: Bezproblémově migrujte nebo nasazujte aplikace napříč různými typy uzlů podle vývoje architektury vaší aplikace, a to vše v rámci stejných hranic clusteru.

Začínáme

Zavedení podpory smíšených clusterů uzlů posiluje závazek společnosti Oracle poskytovat špičkovou, flexibilní a výkonnou platformu Kubernetes. Tato funkce je nyní k dispozici všem zákazníkům OKE v komerčních regionech OCI. Stávající i noví uživatelé mohou tuto možnost okamžitě začít využívat prostřednictvím všech rozhraní, včetně konzole OCI, CLI, API, SDK a Terraformu.

Vytvoření smíšeného clusteru uzlů:

  1. Začněte vytvořením clusteru OKE.
  2. Nasaďte do clusterů jeden spravovaný fond uzlů a jeden fond virtuálních uzlů. Ujistěte se, že každý fond má alespoň jeden uzel.
  3. Jakmile jsou uzly vytvořeny, můžete pomocí konceptů plánování Kubernetes, včetně štítků a selektorů uzlů, omezení a tolerancíafinity a anti-afinity, vybrat, na který typ uzlu chcete naplánovat své úlohy.

V konfiguraci clusteru můžete definovat fondy uzlů různých typů, což vašim plánovačům umožní strategicky umisťovat pody pomocí standardních popisků a taintů Kubernetes. Uzly OKE mají výchozí popisky identifikující typ uzlu, například:

Pro zjednodušení můžete uzly označit dalšími informacemi, například  node_type=managed a  node_type=virtual. Například:

$ kubectl label node 10.0.10.251 node_type=virtual --overwrite
node/10.0.10.251 labeled
$ kubectl label node 10.0.10.166 node_type=managed --overwrite
node/10.0.10.166 labeled

Chcete-li ověřit, zda byl popisek správně použit na vaše uzly, vyhledejte jej:

$ kubectl get nodes -l node_type=managed
NAME         STATUS   ROLES   AGE     VERSION
10.0.10.166   Ready   node   6m43s   v1.34.1
10.0.10.171   Ready   node   3m48s   v1.34.1
10.0.10.76   Ready   node   3m33s   v1.34.1
​
$ kubectl get nodes -l node_type=virtual
NAME         STATUS   ROLES   AGE   VERSION
10.0.10.192   Ready      100m   v1.34.1
10.0.10.251   Ready      94m   v1.34.1
10.0.10.77   Ready      100m   v1.34.1

Chcete-li nasadit jednoduchou ukázkovou aplikaci nginx na každý typ uzlu, vytvořte dva soubory manifestu, jeden pro virtuální uzly (např.  nginx-virtual-deploy.yaml):

apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-virtual-deploy
labels:
  app: nginx
  node_type: virtual
spec:
replicas: 3
selector:
  matchLabels:
    app: nginx
    node_type: virtual
template:
  metadata:
    labels:
      app: nginx
      node_type: virtual
  spec:
    nodeSelector:
      node_type: virtual
    tolerations:
      - key: "node.cloudprovider.kubernetes.io/uninitialized"
        value: "true"
        effect: "NoSchedule"
    containers:
      - name: nginx
        image: iad.ocir.io/okedev/oke-public-nginx:stable-alpine
        ports:
          - containerPort: 80

a jeden pro spravované uzly (např. nginx-managed-deploy.yaml):

apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-managed-deploy
labels:
  app: nginx
  node_type: managed
spec:
replicas: 3
selector:
  matchLabels:
    app: nginx
    node_type: managed
template:
  metadata:
    labels:
      app: nginx
      node_type: managed
  spec:
    nodeSelector:
      node_type: managed
    containers:
      - name: nginx
        image: iad.ocir.io/okedev/oke-public-nginx:stable-alpine
        ports:
          - containerPort: 80

Nasaďte každý manifest:

$ kubectl apply -f nginx-managed-deploy.yaml
deployment.apps/nginx-managed-deploy created
​
$ kubectl apply -f nginx-virtual-deploy.yaml
deployment.apps/nginx-virtual-deploy created

Nakonec si prohlédněte, kde byly vaše úlohy nasazeny:

$ kubectl get pods -L node_type
NAME                                   READY   STATUS   RESTARTS   AGE   NODE_TYPE
nginx-managed-deploy-6f7c87669-4qhzc   1/1     Running   0         24m   managed
nginx-managed-deploy-6f7c87669-52vgv   1/1     Running   0         24m   managed
nginx-managed-deploy-6f7c87669-7qpl8   1/1     Running   0         24m   managed
nginx-virtual-deploy-b9577b6b8-8dsln   1/1     Running   0         24m   virtual
nginx-virtual-deploy-b9577b6b8-klphq   1/1     Running   0         24m   virtual
nginx-virtual-deploy-b9577b6b8-t6m7r   1/1     Running   0         24m   virtual

Další kroky

Věříme, že toto vylepšení poskytuje maximální flexibilitu při správě kontejnerizovaných aplikací v OCI. Začněte svou cestu ještě dnes a vychutnejte si to nejlepší z bezserverového i spravovaného Kubernetes v jednom jednotném řešení.

Více informací:

Zdroj: Oracle