Wählen Sie Ihre Cookie-Einstellungen aus

Wir verwenden essentielle Cookies und ähnliche Tools, die für die Bereitstellung unserer Website und Services erforderlich sind. Wir verwenden Performance-Cookies, um anonyme Statistiken zu sammeln, damit wir verstehen können, wie Kunden unsere Website nutzen, und Verbesserungen vornehmen können. Essentielle Cookies können nicht deaktiviert werden, aber Sie können auf „Anpassen“ oder „Ablehnen“ klicken, um Performance-Cookies abzulehnen.

Wenn Sie damit einverstanden sind, verwenden AWS und zugelassene Drittanbieter auch Cookies, um nützliche Features der Website bereitzustellen, Ihre Präferenzen zu speichern und relevante Inhalte, einschließlich relevanter Werbung, anzuzeigen. Um alle nicht notwendigen Cookies zu akzeptieren oder abzulehnen, klicken Sie auf „Akzeptieren“ oder „Ablehnen“. Um detailliertere Entscheidungen zu treffen, klicken Sie auf „Anpassen“.

Stellen Sie eine Beispielanwendung unter Windows bereit

Fokusmodus
Stellen Sie eine Beispielanwendung unter Windows bereit - Amazon EKS

Hilf mit, diese Seite zu verbessern

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Wenn Sie zu diesem Benutzerhandbuch beitragen möchten, wählen Sie den GitHub Link Diese Seite bearbeiten auf, der sich im rechten Bereich jeder Seite befindet.

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Hilf mit, diese Seite zu verbessern

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Wenn Sie zu diesem Benutzerhandbuch beitragen möchten, wählen Sie den GitHub Link Diese Seite bearbeiten auf, der sich im rechten Bereich jeder Seite befindet.

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

In diesem Thema stellen Sie eine Beispielanwendung auf Ihrem Cluster auf Windows-Knoten bereit.

Voraussetzungen

  • Ein vorhandener Kubernetes-Cluster mit mindestens einem Knoten. Wenn Sie noch keinen Amazon EKS-Cluster haben, können Sie einen mithilfe einer der Anleitungen unter bereitstellenErste Schritte mit Amazon EKS. Sie müssen die Windows-Unterstützung für Ihren Cluster und mindestens einen Amazon EC2 Windows-Knoten aktiviert haben.

  • Kubectl auf Ihrem Computer installiert. Weitere Informationen finden Sie unter Einrichten kubectl und eksctl.

  • Kubectl für die Kommunikation mit Ihrem Cluster konfiguriert. Weitere Informationen finden Sie unter Connect kubectl mit einem EKS-Cluster, indem Sie eine kubeconfig-Datei erstellen.

  • Wenn Sie vorhaben, Ihre Beispiel-Workload in Fargate bereitzustellen, müssen Sie über ein vorhandenes Fargate-Profil verfügen, das denselben in diesem Tutorial erstellten Namespace enthält, nämlich eks-sample-app, es sei denn, Sie ändern den Namen. Wenn Sie einen Cluster mit einer der Anleitungen erstellt habenErste Schritte mit Amazon EKS, müssen Sie ein neues Profil erstellen oder den Namespace zu Ihrem vorhandenen Profil hinzufügen, da das in den Handbüchern für die ersten Schritte erstellte Profil den in diesem Tutorial verwendeten Namespace nicht spezifiziert. Ihre VPC muss auch über mindestens ein privates Subnetz verfügen.

Obwohl viele Variablen in den folgenden Schritten veränderbar sind, empfehlen wir, Variablenwerte nur zu ändern, wo angegeben. Sobald Sie ein besseres Verständnis von Kubernetes-Pods, Bereitstellungen und Diensten haben, können Sie mit der Änderung anderer Werte experimentieren.

Namespaces erstellen

Ein Namespace ermöglicht es Ihnen, Ressourcen in Kubernetes zu gruppieren. Weitere Informationen finden Sie unter Namespaces in der Kubernetes-Dokumentation. Wenn Sie planen, Ihre Beispielanwendung zur Vereinfachung der Rechenverwaltung mit AWS Fargate bereitzustellen, stellen Sie sicher, dass der Wert für namespaceDefinieren Sie, welche Pods AWS Fargate beim Start verwenden“ lautet. eks-sample-app

kubectl create namespace eks-sample-app

Erstellen Sie eine Kubernetes-Bereitstellung

Bei dieser Beispielbereitstellung wird ein Container-Image aus einem öffentlichen Repository abgerufen und drei Replikate (einzelne Pods) davon in Ihrem Cluster bereitgestellt. Weitere Informationen finden Sie unter Bereitstellungen in der Kubernetes-Dokumentation.

  1. Speichern Sie den folgenden Inhalt in einer Datei mit dem Namen eks-sample-deployment.yaml. Die Container in der Beispielanwendung verwenden keinen Netzwerkspeicher, aber Sie haben möglicherweise Anwendungen, die dies benötigen. Weitere Informationen finden Sie unter Speichern Sie Anwendungsdaten für Ihren Cluster.

    • Der Eintrag kubernetes.io/os: windows nodeSelector bedeutet, dass, wenn Sie beispielsweise Windows- und Linux-Knoten in Ihrem Cluster hätten, das Image nur auf Linux-Knoten bereitgestellt würde. Weitere Informationen finden Sie unter Bekannte Labels, Anmerkungen und Taints in der Kubernetes-Dokumentation.

      apiVersion: apps/v1 kind: Deployment metadata: name: eks-sample-windows-deployment namespace: eks-sample-app labels: app: eks-sample-windows-app spec: replicas: 3 selector: matchLabels: app: eks-sample-windows-app template: metadata: labels: app: eks-sample-windows-app spec: affinity: nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: beta.kubernetes.io/arch operator: In values: - amd64 containers: - name: windows-server-iis image: mcr.microsoft.com/windows/servercore:ltsc2019 ports: - name: http containerPort: 80 imagePullPolicy: IfNotPresent command: - powershell.exe - -command - "Add-WindowsFeature Web-Server; Invoke-WebRequest -UseBasicParsing -Uri 'https://dotnetbinaries.blob.core.windows.net/servicemonitor/2.0.1.6/ServiceMonitor.exe' -OutFile 'C:\\ServiceMonitor.exe'; echo '<html><body><br/><br/><marquee><H1>Hello EKS!!!<H1><marquee></body><html>' > C:\\inetpub\\wwwroot\\default.html; C:\\ServiceMonitor.exe 'w3svc'; " nodeSelector: kubernetes.io/os: windows
  2. Wenden Sie das Bereitstellungs-Manifest auf Ihren Cluster an.

    kubectl apply -f eks-sample-deployment.yaml

Einen Service erstellen

Mit einem Service können Sie über eine einzige IP-Adresse oder einen einzigen Namen auf alle Replikate zugreifen. Weitere Informationen dazu finden Sie unter Service in der Kubernetes-Dokumentation. Obwohl in der Beispielanwendung nicht implementiert, empfehlen wir Ihnen, Kubernetes-Dienstkonten für Ihre Pods zu erstellen und diese mit AWS IAM-Konten zu verknüpfen, falls Sie über Anwendungen verfügen, die mit anderen AWS Diensten interagieren müssen. Durch die Angabe von Dienstkonten verfügen Ihre Pods nur über die Mindestberechtigungen, die Sie für die Interaktion mit anderen Diensten angeben. Weitere Informationen finden Sie unter IAM-Rollen für Servicekonten.

  1. Speichern Sie die folgenden Inhalte in einer Datei namens eks-sample-service.yaml. Kubernetes weist dem Service eine eigene IP-Adresse zu, auf die nur innerhalb des Clusters zugegriffen werden kann. Um von außerhalb des Clusters auf den Service zuzugreifen, stellen Sie den AWS Load Balancer Controller bereit, um den Anwendungs- oder Netzwerk-Datenverkehr an den Service auszugleichen.

    apiVersion: v1 kind: Service metadata: name: eks-sample-windows-service namespace: eks-sample-app labels: app: eks-sample-windows-app spec: selector: app: eks-sample-windows-app ports: - protocol: TCP port: 80 targetPort: 80
  2. Wenden Sie das Service-Manifest auf Ihren Cluster an.

    kubectl apply -f eks-sample-service.yaml

Überprüfen Sie die erstellten Ressourcen

  1. Zeigen Sie alle im eks-sample-app-Namespace vorhandenen Ressourcen an.

    kubectl get all -n eks-sample-app

    Eine Beispielausgabe sieht wie folgt aus.

    NAME READY STATUS RESTARTS AGE pod/eks-sample-windows-deployment-65b7669776-m6qxz 1/1 Running 0 27m pod/eks-sample-windows-deployment-65b7669776-mmxvd 1/1 Running 0 27m pod/eks-sample-windows-deployment-65b7669776-qzn22 1/1 Running 0 27m NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE service/eks-sample-windows-service ClusterIP 10.100.74.8 <none> 80/TCP 32m NAME READY UP-TO-DATE AVAILABLE AGE deployment.apps/eks-sample-windows-deployment 3/3 3 3 27m NAME DESIRED CURRENT READY AGE replicaset.apps/eks-sample-windows-deployment-776d8f8fd8 3 3 3 27m

    In der Ausgabe sehen Sie den Service und die Bereitstellung, die in den Beispielmanifesten, der vorherigen Schritte, angegeben wurden. Sie sehen auch drei Pods. Dies liegt daran, dass 3 replicas im Beispielmanifest angegeben wurden. Weitere Informationen zu Pods finden Sie unter Pods in der Kubernetes-Dokumentation. Kubernetes erstellt die replicaset Ressource automatisch, auch wenn sie nicht in den Beispielmanifesten angegeben ist. Weitere Informationen zu ReplicaSets finden Sie ReplicaSetin der Kubernetes-Dokumentation.

    Anmerkung

    Kubernetes behält die Anzahl der Replikate bei, die im Manifest angegeben sind. Wenn es sich um eine Produktionsbereitstellung handelt und Sie möchten, dass Kubernetes die Anzahl der Replikate horizontal oder die Rechenressourcen für die Pods vertikal skaliert, verwenden Sie dazu die Optionen Pod-Bereitstellungen skalieren mit horizontalem Pod-Autoscaler und Pod-Ressourcen anpassen mit vertikalem Pod-Autoscaler.

  2. Zeigen Sie die Details des bereitgestellten Services an.

    kubectl -n eks-sample-app describe service eks-sample-windows-service

    Eine Beispielausgabe sieht wie folgt aus.

    Name: eks-sample-windows-service Namespace: eks-sample-app Labels: app=eks-sample-windows-app Annotations: <none> Selector: app=eks-sample-windows-app Type: ClusterIP IP Families: <none> IP: 10.100.74.8 IPs: 10.100.74.8 Port: <unset> 80/TCP TargetPort: 80/TCP Endpoints: 192.168.24.212:80,192.168.50.185:80,192.168.63.93:80 Session Affinity: None Events: <none>

    In der vorherigen Ausgabe IP: ist der Wert für eine eindeutige IP-Adresse, die von jedem Knoten oder Pod innerhalb des Clusters aus erreicht werden kann, aber nicht von außerhalb des Clusters erreicht werden kann. Die Werte für Endpoints sind IP-Adressen, die den Pods, die Teil des Dienstes sind, innerhalb Ihrer VPC zugewiesen wurden.

  3. Zeigen Sie die Details eines der in der Ausgabe aufgeführten Pods an, wenn Sie in einem vorherigen Schritt den Namespace angezeigt haben. 776d8f8fd8-78w66Ersetzen Sie es durch den Wert, der für einen Ihrer Pods zurückgegeben wurde.

    kubectl -n eks-sample-app describe pod eks-sample-windows-deployment-65b7669776-m6qxz

    Verkürzte Beispielausgabe

    Name: eks-sample-windows-deployment-65b7669776-m6qxz Namespace: eks-sample-app Priority: 0 Node: ip-192-168-45-132.us-west-2.compute.internal/192.168.45.132 [...] IP: 192.168.63.93 IPs: IP: 192.168.63.93 Controlled By: ReplicaSet/eks-sample-windows-deployment-65b7669776 [...] Conditions: Type Status Initialized True Ready True ContainersReady True PodScheduled True [...] Events: Type Reason Age From Message ---- ------ ---- ---- ------- Normal Scheduled 3m20s default-scheduler Successfully assigned eks-sample-app/eks-sample-windows-deployment-65b7669776-m6qxz to ip-192-168-45-132.us-west-2.compute.internal [...]

    In der vorherigen Ausgabe IP: ist der Wert für eine eindeutige IP, die dem Pod aus dem CIDR-Block zugewiesen wurde, der dem Subnetz zugewiesen ist, in dem sich der Knoten befindet. Wenn Sie es vorziehen, Pods IP-Adressen aus verschiedenen CIDR-Blöcken zuzuweisen, können Sie das Standardverhalten ändern. Weitere Informationen finden Sie unter Stellen Sie Pods in alternativen Subnetzen mit benutzerdefiniertem Netzwerk bereit. Sie können auch sehen, dass der Kubernetes-Scheduler den Pod auf dem Node mit der IP-Adresse 192.168.45.132. geplant hat.

    Tipp

    Anstatt die Befehlszeile zu verwenden, können Sie viele Details zu Pods, Diensten, Bereitstellungen und anderen Kubernetes-Ressourcen in der einsehen. AWS Management Console Weitere Informationen finden Sie unter Sehen Sie sich die Kubernetes-Ressourcen an in der AWS Management Console.

Führen Sie eine Shell auf einem Pod aus

  1. Führen Sie eine Shell auf dem Pod aus, die Sie im vorherigen Schritt beschrieben haben, und 65b7669776-m6qxz ersetzen Sie sie durch die ID eines Ihrer Pods.

    kubectl exec -it eks-sample-windows-deployment-65b7669776-m6qxz -n eks-sample-app -- powershell.exe
  2. Sehen Sie sich in der Pod-Shell die Ausgabe des Webservers an, der in einem vorherigen Schritt zusammen mit Ihrer Bereitstellung installiert wurde. Sie müssen nur den Servicenamen angeben. Es wird von CoreDNS, das standardmäßig mit einem Amazon EKS-Cluster bereitgestellt wird, in die IP-Adresse des Dienstes aufgelöst.

    Invoke-WebRequest -uri eks-sample-windows-service/default.html -UseBasicParsing

    Eine Beispielausgabe sieht wie folgt aus.

    StatusCode : 200 StatusDescription : OK Content : < h t m l > < b o d y > < b r / > < b r / > < m a r q u e e > < H 1 > H e l l o E K S ! ! ! < H 1 > < m a r q u e e > < / b o d y > < h t m l >
  3. Zeigen Sie in der Pod-Shell den DNS-Server für den Pod an.

    Get-NetIPConfiguration

    Gekürzte Ausgabe

    InterfaceAlias : vEthernet [...] IPv4Address : 192.168.63.14 [...] DNSServer : 10.100.0.10

    In der vorherigen Ausgabe wird 10.100.0.10 automatisch als DNS-Server für alle Pods zugewiesen, die im Cluster bereitgestellt werden.

  4. Trennen Sie die Verbindung mit dem Pod, indem Sie exit eingeben.

  5. Sobald Sie mit der Beispielanwendung fertig sind, können Sie den Beispiel-Namespace, den Service und die Bereitstellung mit dem folgenden Befehl entfernen.

    kubectl delete namespace eks-sample-app

Nächste Schritte

Nachdem Sie die Beispielanwendung bereitgestellt haben, möchten Sie vielleicht einige der folgenden Übungen ausprobieren:

DatenschutzNutzungsbedingungen für die WebsiteCookie-Einstellungen
© 2025, Amazon Web Services, Inc. oder Tochtergesellschaften. Alle Rechte vorbehalten.