Kubernetes TensorFlow 默认 特定 集群管理器 虚拟化技术
阅读原文时间:2023年07月10日阅读:3

Our goal is to foster an ecosystem of components and tools that relieve the burden of running applications in public and private clouds.

https://kubernetes.io/docs/concepts/overview/what-is-kubernetes/

https://kubernetes.io/

Kubernetes is an open-source system for automating deployment, scaling, and management of containerized applications.

It groups containers that make up an application into logical units for easy management and discovery. Kubernetes builds upon 15 years of experience of running production workloads at Google, combined with best-of-breed ideas and practices from the community.

Planet Scale

Designed on the same principles that allows Google to run billions of containers a week, Kubernetes can scale without increasing your ops team.

Never Outgrow

Whether testing locally or running a global enterprise, Kubernetes flexibility grows with you to deliver your applications consistently and easily no matter how complex your need is.

Run Anywhere

Kubernetes is open source giving you the freedom to take advantage of on-premises, hybrid, or public cloud infrastructure, letting you effortlessly move workloads to where it matters to you.

Automatic binpacking

Automatically places containers based on their resource requirements and other constraints, while not sacrificing availability. Mix critical and best-effort workloads in order to drive up utilization and save even more resources.

Self-healing

【根据用户自定义的健康检查方案杀死容器】

Restarts containers that fail, replaces and reschedules containers when nodes die, kills containers that don't respond to your user-defined health check, and doesn't advertise them to clients until they are ready to serve.

Horizontal scaling

Scale your application up and down with a simple command, with a UI, or automatically based on CPU usage.

Service discovery and load balancing

No need to modify your application to use an unfamiliar service discovery mechanism. Kubernetes gives containers their own IP addresses and a single DNS name for a set of containers, and can load-balance across them.

Automated rollouts and rollbacks

【渐进式发布,支持回滚】

Kubernetes progressively rolls out changes to your application or its configuration, while monitoring application health to ensure it doesn't kill all your instances at the same time. If something goes wrong, Kubernetes will rollback the change for you. Take advantage of a growing ecosystem of deployment solutions.

Secret and configuration management

Deploy and update secrets and application configuration without rebuilding your image and without exposing secrets in your stack configuration.

Storage orchestration

Automatically mount the storage system of your choice, whether from local storage, a public cloud provider such as GCP or AWS, or a network storage system such as NFS, iSCSI, Gluster, Ceph, Cinder, or Flocker.

.Net 大户的选择: Windows Container 在携程的应用 - V2EX https://www.v2ex.com/t/335653

接下来 Windows container 容器的存储,网络,编排方面的技术与大家分享一下。

Windows container 资源的隔离方式和配置管理 API 是借用 Docker 规范,设计理念和 Linux Container 类似,也支持 CPU share 的这种方式去控制资源的分配。内存可以通过 quota 的方式去分配内存, Disk 也能够充分应用到 IO 的带宽,这一块还没有做非常多严格的测试。关于网络的支持,携程做了很多测试,整体来讲比较不错,问题较少。性能也满足需求,多个容器在一个同一个宿主机上也能尽量用到整个宿主机的带宽。

在 Windows 中配置 Docker | Microsoft Docs https://docs.microsoft.com/zh-cn/virtualization/windowscontainers/manage-docker/configure-docker-daemon

Windows Server 容器 | Kubernetes https://k8smeetup.github.io/docs/getting-started-guides/windows/index

在Kubernetes v1.5中,Windows Server容器对Kubernetes的支持使用如下方法:

  1. Kubernetes控制面板还是运行在已有的Linux基础设施(v1.5及以后的版本)上
  2. 在Linux节点上搭建Kubenet网络插件
  3. Windows Server 2016 (RTM版本10.0.14393或之后的)
  4. 对Windows Server节点而言,需要Docker 版本 v1.12.2-cs2-ws-beta或之后的(Linux节点和Kubernetes控制面板可以运行在任何支持Docker版本的Kubernetes上)

http://docs.kubernetes.org.cn/124.html

用户需求:需要应用始终正常运行,开发人员每天需要部署新的版本(一个简单例子,大家在玩游戏时常常碰到这类公告:8月8日凌晨:2点-6点服务升级,暂停所有服务…..)。在Kubernetes中可以通过滚动更新(Rolling updates )来完成。滚动更新通过Deployments实现应用实例在不中断、不停机情况下更新,新的Pod会逐步调度到可用的资源Node节点上。

前面的模块中,我们对应用进行了伸缩,以运行多个实例。这是在不影响应用可用性的情况下执行更新的需求。更新时的Pod数量可以是数字或百分数(pod)来表示。在Kubernetes更新中,支持升级 / 回滚(恢复)更新。