Kubernetes 是否支持 VM / 节点配置和管理?

Does Kubernetes support VM / node provisioning & management?

据我了解Kubernetes is a container orchestration service comparable to AWS ECS or Docker Swarm. Yet there are several high rated questions on Whosebug that compare it to CloudFoundry这是一个平台编排服务。

这意味着 CloudFoundry 可以处理 VM 层,在移动容器的同时更新和配置 VM,从而避免停机。因此,与 Kubernetes 的比较对我的理解意义有限。

我是不是误会了什么,Kubernetes 是否也支持配置和管理 VM 层?

是的,您可以使用 KuberVirt as @AbdennourTOUMI pointed out. However, Kubernetes focuses on container orchestration and it also interacts with cloud providers 管理 VM,以配置负载均衡器等可以将流量定向到集群的东西。

Cloud Foundry is a PaaS that provides much more than Kubernetes at the lower level. Kubernetes can run on top of an IaaS like AWS together with something like OpenShift

这张图显示了一些差异:

至于VM,我的回答是YES;您可以 运行 VM 作为 k8s 集群中的工作负载。

的确,Redhat 团队通过添加补丁 KubeVirt.

想出了如何在 kubernetes 集群中 运行 虚拟机

上述 link 中的示例。

apiVersion: kubevirt.io/v1alpha2
kind: VirtualMachine
metadata:
  creationTimestamp: null
  labels:
    kubevirt.io/vm: vm-cirros
  name: vm-cirros
spec:
  running: false
  template:
    metadata:
      creationTimestamp: null
      labels:
        kubevirt.io/vm: vm-cirros
    spec:
      domain:
        devices:
          disks:
          - disk:
              bus: virtio
            name: registrydisk
            volumeName: registryvolume
          - disk:
              bus: virtio
            name: cloudinitdisk
            volumeName: cloudinitvolume
        machine:
          type: ""
        resources:
          requests:
            memory: 64M
      terminationGracePeriodSeconds: 0
      volumes:
      - name: registryvolume
        registryDisk:
          image: kubevirt/cirros-registry-disk-demo:latest
      - cloudInitNoCloud:
          userDataBase64: IyEvYmluL3NoCgplY2hvICdwcmludGVkIGZyb20gY2xvdWQtaW5pdCB1c2VyZGF0YScK
        name: cloudinitvolume

然后:

kubectl create -f vm.yaml
virtualmachine "vm-cirros" created