Windows windows 和 linux Kubernetes 集群上的容器

Windows Containers on windows and linux Kubernetes cluster

我是 Kubernetes 世界的新手。在我的项目中,我们计划短期使用 windows 容器(.net 完整框架),长期使用 linux 容器(.net 核心)运行。

我们有一个由基础架构团队提供的 K8 集群,该集群混合了 Linux 和 Windows 个节点。我只是想知道我的 windows 容器如何只部署到 K8 集群中的 windows 节点。它是由 K8 处理的还是我需要其他任何东西?

您需要将以下行添加到您的 YAML 文件中。详情请见此处 https://kubernetes.io/docs/getting-started-guides/windows/

nodeSelector: "beta.kubernetes.io/os": windows

以下是 Kubernetes Windows Documentation 的详细信息。

因为您的集群同时具有 Linux 和 Windows 个节点,您必须显式设置 nodeSelector 约束才能将 pods 调度到 Windows 个节点。您必须将带有标签 beta.kubernetes.io/os 的 nodeSelector 设置为值 windows;请参阅以下示例:

apiVersion: v1
kind: Pod
metadata:
  name: iis
labels:
  name: iis
spec:
  containers:
    - name: iis
      image: microsoft/iis:windowsservercore-1709
      ports:
        - containerPort: 80
  nodeSelector:
    "kubernetes.io/os": windows