Virtuelle Knoten mit verwalteten Knoten vergleichen
Erfahren Sie mehr über die Unterschiede zwischen den virtuellen und verwalteten Knoten, die Sie mit der Kubernetes Engine (OKE) erstellen können.
Beim Erstellen eines Knotenpools mit der Kubernetes-Engine geben Sie den Typ der im Knotenpool zu erstellenden Worker-Knoten wie folgt an:
- Virtuelle Knoten: Virtuelle Knoten werden vollständig von Oracle verwaltet. Siehe Virtuelle Knoten und virtuelle Knotenpools.
- Verwaltete Knoten: Verwaltete Knoten werden auf Compute-Instanzen (entweder Bare Metal oder Virtual Machine) in Ihrem Mandanten ausgeführt und mindestens teilweise von Ihnen verwaltet. Siehe Verwaltete Knoten und verwaltete Knotenpools.
Sie können nur virtuelle Knoten in erweiterten Clustern erstellen. Sie können verwaltete Knoten sowohl in Basisclustern als auch in erweiterten Clustern erstellen.
Alle Verweise auf "Knoten" und "Arbeitsknoten" in der Kubernetes Engine-Dokumentation beziehen sich sowohl auf virtuelle Knoten als auch auf verwaltete Knoten, sofern nicht ausdrücklich etwas anderes angegeben ist.
Virtuelle Knoten und virtuelle Knotenpools
Virtuelle Knoten werden im Kubernetes Engine-Mandanten ausgeführt. Sie erstellen virtuelle Knoten, indem Sie einen virtuellen Knotenpool erstellen. Virtuelle Knoten und Pools virtueller Knoten werden vollständig von Oracle verwaltet.
Virtuelle Knoten bieten eine "serverlose" Kubernetes-Erfahrung, mit der Sie containerisierte Anwendungen in großem Maßstab ausführen können, ohne den Betriebsaufwand für das Upgrade der Data-Plane-Infrastruktur und die Verwaltung der Clusterkapazität.
Sie können nur virtuelle Knoten und Knotenpools in erweiterten Clustern erstellen.
Wichtige Features, die von virtuellen Knoten unterschiedlich unterstützt werden
Einige Features werden bei der Verwendung virtueller Knoten und nicht verwalteter Knoten unterschiedlich unterstützt:
-
Ressourcenzuteilung: Die Ressourcenzuteilung erfolgt auf Pod-Ebene und nicht auf Mitarbeiterknotenebene. Daher geben Sie CPU- und Speicherressourcenanforderungen (als Anforderungen und Limits) in der Podspezifikation an, nicht für die Worker-Knoten in einem Knotenpool. Siehe Ressourcen, die von virtuellen Knoten bereitgestellten Pods zugewiesen sind.
- Load Balancing: Das Load Balancing erfolgt zwischen Pods und nicht zwischen Worker-Knoten (wie bei verwalteten Knoten). In Clustern mit virtuellen Knoten ist die Verwaltung von Load-Balancer-Sicherheitslisten nie aktiviert, und Sie müssen Sicherheitsregeln immer manuell konfigurieren. Load Balancer verteilen Traffic auf die IP-Adressen der Pods und einen zugewiesenen Knotenport. Wenn Sie eine Verbindung zu Pods herstellen, die auf virtuellen Knoten ausgeführt werden, verwenden Sie die Syntax
<pod-ip>:<nodeport>
und nicht<node-ip>:<nodeport>
. Wenn Sie verschiedene Subnetze für Pods und Knoten verwenden, konfigurieren Sie den Knotenport-Ingress im Podsubnetz. - Podnetzwerk: Nur VCN-natives Podnetzwerk wird unterstützt (das Flannel-CNI-Plug-in wird nicht unterstützt). Außerdem ist die Unterstützung bei der Verwendung virtueller Knoten etwas anders:
- An jeden virtuellen Knoten ist nur eine VNIC angehängt.
- IP-Adressen werden nicht vorab zugewiesen, bevor Pods erstellt werden.
- Das CNI-Plug-in für VCN-natives Podnetworking wird nicht als im Namespace "kube-system" ausgeführt angezeigt.
- Da nur VCN-natives Podnetzwerk unterstützt wird, müssen für die Routentabelle des Podsubnetzes Routingregeln für ein NAT-Gateway (kein Internetgateway) und ein Servicegateway definiert sein.
- Autoscaling: Virtuelle Knoten werden automatisch skaliert, um 500 Pods zu unterstützen. Da Oracle die zugrunde liegenden Ressourcen für virtuelle Knoten verwaltet, ist es einfacher, mit Kubernetes Horizontal Pod Autoscaler zu arbeiten. Es ist nicht erforderlich, Kubernetes Cluster Autoscaler zu verwenden (das in jedem Fall noch nicht mit virtuellen Knoten unterstützt wird). Kubernetes Vertical Pod Autoscaler wird mit virtuellen Knoten nicht unterstützt.
Bemerkenswerte Kubernetes-Features und -Funktionen werden bei Verwendung virtueller Knoten nicht unterstützt
Einige Kubernetes-Features und -Funktionen werden bei der Verwendung virtueller Knoten anstelle verwalteter Knoten nicht unterstützt oder sind noch nicht verfügbar.
Kubernetes-Features werden nicht unterstützt | Zusätzliche Informationen |
---|---|
Flannel und andere CNI-Plugins von Drittanbietern werden nicht unterstützt. | Virtuelle Knoten unterstützen nur das CNI-Plug-in für das OCI-VCN-native Podnetworking. |
Kubernetes-Daemonsets werden nicht unterstützt. |
Beispiel: Folgendes wird nicht unterstützt:
|
Persistente Volume Claims (PVCs) werden nicht unterstützt. | Keine zusätzlichen Informationen. |
Netzwerkprovider, die NetworkPolicy-Ressourcen neben dem im Cluster verwendeten CNI-Plug-in unterstützen (wie Calico und Cilium), werden nicht unterstützt. | Keine zusätzlichen Informationen. |
Netzwerk-Policys (die Kubernetes-Ressource NetworkPolicy) werden nicht unterstützt. | Keine zusätzlichen Informationen. |
Service-Mesh-Produkte werden nicht unterstützt. | Produkte wie Istio Service Mesh werden nicht unterstützt. |
Liveness- und Readiness-Probes vom Typ HTTP werden unterstützt. HTTPS- und Exec-Probes werden unterstützt. Startup-Probes werden unterstützt. gRPC-Probes werden nicht unterstützt. probe.terminationGracePeriodSeconds wird nicht unterstützt. |
Beispiel: Folgendes wird unterstützt:
Folgendes wird jedoch nicht unterstützt:
|
Der Befehl Der Befehl Der Befehl |
Beispiel: Folgendes wird unterstützt:
Folgendes wird jedoch nicht unterstützt:
|
Flüchtige Container werden nicht unterstützt. | Keine zusätzlichen Informationen. |
Init-Container werden nicht unterstützt. | Keine zusätzlichen Informationen. |
Die folgenden Volume-Typen werden unterstützt:
Die folgenden Volume-Typen werden nicht unterstützt:
|
Beispiel: Folgendes wird nicht unterstützt:
|
Maximal 1 Volume des Typs emptyDir kann derzeit in der Podspezifikation definiert werden. | Keine zusätzlichen Informationen. |
Die folgenden Podfelder werden nicht unterstützt:
|
Beispiel: Folgendes wird nicht unterstützt:
|
Die folgenden Podsicherheitskontexte werden unterstützt:
Die folgenden Podsicherheitskontexte werden nicht unterstützt:
|
Beispiel: Folgendes wird nicht unterstützt:
|
Die folgenden Containersicherheitskontexte werden unterstützt:
Die folgenden Containersicherheitskontexte werden nicht unterstützt:
|
Beispiel: Folgendes wird unterstützt: Folgendes wird jedoch nicht unterstützt:
|
Container.Port
|
Beispiel: Folgendes wird nicht unterstützt:
|
Container
|
Beachten Sie, dass Kubernetes standardmäßig TerminationMessagePolicy und TerminationMessagePath hinzufügt. |
Containerportbereich (1, 65535) darf nicht mit dem NodePort-Bereich (30000-32767) in Konflikt stehen. | Beispiel: Folgendes wird nicht unterstützt:
|
Pod.Volumes.EmptyDirVolumeQuelle:SizeLimit | Beispiel: Folgendes wird nicht unterstützt:
|
Pod.Volumes.EmptyDirVolumeSource:Medium - kann nur "" oder "Speicher" sein | Beispiel: Folgendes wird nicht unterstützt:
|
Pod:Volumes - Der Modus muss für Folgendes als 0644 angegeben werden:
|
Beispiel: Folgendes wird nicht unterstützt:
|
Pod:Volumes: Wenn DefaultMode wie folgt angegeben ist, muss DefaultMode 0644 sein:
|
Beispiel: Folgendes wird nicht unterstützt:
|
Resources.Requests darf sich nicht von Resources.Limits unterscheiden | Beispiel: Folgendes wird nicht unterstützt:
|
Volumen:DownwardAPI:ResourceFieldRef | Beispiel: Folgendes wird nicht unterstützt:
|
TerminationGracePeriodSeconds | Beispiel: Folgendes wird nicht unterstützt:
|
DeletionGracePeriodSeconds | Beispiel: Folgendes wird nicht unterstützt:
|
Container ausführen | Beispiel: Folgendes wird nicht unterstützt:
|
Kubectl-Befehl "port-forward" | Verwenden Sie stattdessen kubectl proxy (siehe Pod- und Serviceprobleme auf virtuellen Knoten mit kubectl-Proxy anstatt mit kubectl-Port-Forward beheben). |
UpdatePod fordert Mutationen an pod.spec.containers[].image an. | Keine zusätzlichen Informationen. |
Propagierung an Pods von Updates an gemountete Configmaps und Secrets | Keine zusätzlichen Informationen. |
Die folgenden Metriken auf Containerebene im Endpunkt der virtuellen Kubelet-Metriken werden unterstützt:
|
Keine zusätzlichen Informationen. |
Container: Untergeordnete Ressourcenanforderungen | Keine zusätzlichen Informationen. |
Container-stdin/stdinOnce, tty | Keine zusätzlichen Informationen. |
Beibehalten der Client-IP-Adressen bei externalTrafficPolicy: Lokal | Keine zusätzlichen Informationen. |
ImagePullSecret-Typen außer config und configJson | Keine zusätzlichen Informationen. |
ProjectedVolumeSource:ServiceAccountTokenProjektion:AblaufSekunden | Keine zusätzlichen Informationen. |
Der Befehl kubectl attach zur Interaktion mit einem Prozess, der bereits in einem vorhandenen Container ausgeführt wird. |
Keine zusätzlichen Informationen. |
Bemerkenswerte Kubernetes Engine-(OKE-)Features und -Funktionen werden bei Verwendung virtueller Knoten nicht unterstützt
Einige Features und Funktionen der Kubernetes-Engine sind bei der Verwendung virtueller Knoten anstelle von verwalteten Knoten nicht verfügbar oder noch nicht verfügbar.
Kubernetes-Engine-Features werden nicht unterstützt | Zusätzliche Informationen |
---|---|
SSH-Verbindungen zu Worker-Knoten (auch über eine Bastion) | Nicht verfügbar. |
Verwendung benutzerdefinierter Cloud-init-Skripte | Nicht verfügbar. |
Node Doctor-Skript | Nicht verfügbar. |
Unterstützung für Kubernetes-Versionen vor Version 1.25 | Für virtuelle Knoten muss das Cluster mindestens Kubernetes-Version 1.25 ausführen. |
Gemischte Cluster, die sowohl virtuelle als auch verwaltete Knoten enthalten. | Noch nicht verfügbar. |
Automatische Skalierung der Anzahl virtueller Knoten. | Noch nicht verfügbar. |
Kapazitätsreservierungen für das Provisioning virtueller Knoten. | Noch nicht verfügbar. |
Pods mit Intel- und GPU-Ausprägungen. | Noch nicht verfügbar. |
Gemeinsame Deployments werden bei Verwendung virtueller Knoten nicht unterstützt und unterschiedlich unterstützt
Die folgenden allgemeinen Deployments werden bei der Verwendung virtueller Knoten und nicht verwalteter Knoten nicht unterstützt oder werden anders unterstützt:
Deployment | Hinweise |
---|---|
kube-proxy im kube-system-Namespace und das kube-proxy-cluster-Add-on | kube-proxy wird in Pods ausgeführt, die auf virtuellen Knoten geplant sind, aber nicht im kube-system-Namespace bereitgestellt werden. |
Kubernetes Dashboard | Wird bei Verwendung virtueller Knoten nicht unterstützt. |
Nginx-Ingress-Controller | Deployment bei Verwendung virtueller Knoten unterschiedlich ausführen (siehe Beispiel für Ingress-Controller einrichten). |
Autoscaler für Kubernetes-Cluster | Wird bei Verwendung virtueller Knoten nicht unterstützt. |
Vertical Pod Autoscaler | Wird bei Verwendung virtueller Knoten nicht unterstützt. |
Kubernetes Metrics Server | Bei Verwendung virtueller Knoten anders bereitstellen (siehe Kubernetes-Metrikserver auf einem Cluster bereitstellen). |
Verwaltete Knoten und verwaltete Knotenpools
Verwaltete Knoten werden auf Compute-Instanzen (entweder Bare Metal oder Virtual Machine) in Ihrem Mandanten ausgeführt. Sie erstellen verwaltete Knoten, indem Sie einen verwalteten Knotenpool erstellen. Verwaltete Knoten und verwaltete Knotenpools werden von Ihnen verwaltet.
Da Sie für die Verwaltung verwalteter Knoten verantwortlich sind, können Sie diese flexibel konfigurieren, um Ihre spezifischen Anforderungen zu erfüllen. Sie sind für das Upgrade von Kubernetes auf verwalteten Knoten und für das Verwalten der Clusterkapazität verantwortlich.
Wenn Sie verwaltete Knoten verwenden, zahlen Sie für die Compute-Instanzen, die Anwendungen ausführen.
Sie können verwaltete Knoten und Knotenpools sowohl in grundlegenden Clustern als auch in erweiterten Clustern erstellen.
Weitere Informationen finden Sie unter Verwaltete Knoten mit virtuellen Knoten vergleichen