pod

k8s的ReplicaSet,DaemonSet及标签

孤街浪徒 提交于 2020-01-14 18:26:49
ReplicaSet简单介绍 1. RC:ReplicationController(老一代的pod控制器) 用来确保由其管控的Pod对象副本数量,能够满足用户期望,多则删除,少则通过模本创建 特点: ​ 确保Pod资源对象的数量精准。 ​ 确保pod健康运行。 ​ 弹性伸缩 同样,它也可以通过yaml或json格式的资源清单来创建。其中spec字段一般嵌套以下字段: ​ replicas:期望的Pod对象副本数量。 ​ selector:当前控制器匹配Pod对此项副本的标签选择器 ​ template:pod副本的模板 与RC相比而言,RS不仅支持 基于等值 的标签选择器,而且还支持 基于集合 的标签选择器。 2. 标签:解决同类型的资源对象,为了更好的管理,按照标签分组。 常用的标签分类: ​ release(版本):stable(稳定版)、canary(金丝雀版本)、beta(测试版本) ​ environment(环境变量):dev(开发)、qa(测试)、production(生产) ​ application(应用):ui、as(application software应用软件)、pc、sc ​ tier(架构层级):frontend(前端)、backend(后端)、cache(缓存) ​ partition(分区):customerA(客户A)、customerB

kubernetes pod hook

会有一股神秘感。 提交于 2020-01-14 17:55:25
Pod hook Pod hook(钩子)是由Kubernetes管理的kubelet发起的,当容器中的进程启动前或者容器中的进程终止之前运行,这是包含在容器的生命周期之中。可以同时为Pod中的所有容器都配置hook。 Hook的类型包括两种: exec:执行一段命令 HTTP:发送HTTP请求。 参考下面的配置: apiVersion: v1 kind: Pod metadata: name: lifecycle-demo spec: containers: - name: lifecycle-demo-container image: nginx lifecycle: postStart: exec: command: ["/bin/sh", "-c", "echo Hello from the postStart handler > /usr/share/message"] preStop: exec: command: ["/usr/sbin/nginx","-s","quit"] 在容器创建之后,容器的Entrypoint执行之前,这时候Pod已经被调度到某台node上,被某个kubelet管理了,这时候kubelet会调用postStart操作,该操作跟容器的启动命令是在异步执行的,也就是说在postStart操作执行完成之前,kubelet会锁住容器

从零开始入门 K8s | GPU 管理和 Device Plugin 工作机制

时光总嘲笑我的痴心妄想 提交于 2020-01-14 17:24:56
作者 | 车漾 阿里巴巴高级技术专家 本文整理自 《CNCF x Alibaba 云原生技术公开课》 第 20 讲。 关注“阿里巴巴云原生”公众号,回复关键词 “入门” ,即可下载从零入门 K8s 系列文章 PPT。 导读 :2016 年,随着 AlphaGo 的走红和 TensorFlow 项目的异军突起,一场名为 AI 的技术革命迅速从学术圈蔓延到了工业界,所谓 AI 革命从此拉开了帷幕。该热潮的背后推手正是云计算的普及和算力的巨大提升。 需求来源 经过近几年的发展,AI 有了许许多多的落地场景,包括智能客服、人脸识别、机器翻译、以图搜图等功能。其实机器学习或者说是人工智能,并不是什么新鲜的概念。而这次热潮的背后,云计算的普及以及算力的巨大提升,才是真正将人工智能从象牙塔带到工业界的一个重要推手。 与之相对应的,从 2016 年开始,Kubernetes 社区就不断收到来自不同渠道的大量诉求:希望能在 Kubernetes 集群上运行 TensorFlow 等机器学习框架。这些诉求中,除了之前文章所介绍的,像 Job 这些离线任务的管理之外,还有一个巨大的挑战:深度学习所依赖的异构设备及英伟达的 GPU 支持。 我们不禁好奇起来:Kubernetes 管理 GPU 能带来什么好处呢? 本质上是成本和效率的考虑。由于相对 CPU 来说,GPU 的成本偏高。在云上单 CPU

Kubernetes-运维指南

◇◆丶佛笑我妖孽 提交于 2020-01-14 04:54:29
Node隔离与恢复 cat unschedule_node.yaml apiVersion: kind: Node metadata: name: k8s-node-1 labels: kubernetes.io/hostname: k8s-node-1 sepc: unschedulable: true kubectl replace -f unschedule_node.yaml kubectl patch node k8s-node-a -p '{"spec":{"unschedulable":"true"}' kubectl cordon k8s-node-1(对节点进行隔离) kubectl uncordon k8s-node-1(对节点进行恢复) Node的扩容 在新节点上安装Docker、kubelet、kube-proxy服务,并修改kubelet和kube-proxy的启动参数将Master URL指定为当前集群的Master的地址,最后启动这些服务。 更新资源对象的Label kubectl lable pod redis-master-bobr role=backend kubectl get pods -Lrole kubectl label pod redis-master-bobr0 role- kubectl label pod redis

pod健康检查详解(liveness,readiness,滚动更新)

独自空忆成欢 提交于 2020-01-14 02:21:16
环境介绍 主机 IP地址 服务 master 192.168.1.21 k8s+httpd+nginx node01 192.168.1.22 k8s node02 192.168.1.23 k8s 基于[ https://blog.51cto.com/14320361/2464655 ]() 的实验继续进行 一、Pod的liveness和readiness探针   Kubelet使用liveness probe(存活探针)来确定何时重启容器。例如,当应用程序处于运行状态但无法做进一步操作,liveness探针将捕获到deadlock,重启处于该状态下的容器,使应用程序在存在bug的情况下依然能够继续运行下去   Kubelet使用readiness probe(就绪探针)来确定容器是否已经就绪可以接受流量。只有当Pod中的容器都处于就绪状态时kubelet才会认定该Pod处于就绪状态。该信号的作用是控制哪些Pod应该作为service的后端。如果Pod处于非就绪状态,那么它们将会被从service的load balancer中移除。 Probe支持以下三种检查方法: <1>exec-命令 在用户容器内执行一次命令,如果命令执行的退出码为0,则认为应用程序正常运行,其他任务应用程序运行不正常。 livenessProbe: exec: command: - cat - /home

kubernetes(k8s)容器编排工具基础概念

╄→гoц情女王★ 提交于 2020-01-14 00:45:36
kubernetes(k8s)容器编排工具基础概念 Kubernetes (K8s):   中文社区: https://www.kubernetes.org.cn/replication-controller-kubernetes   官网: https://kubernetes.io/   是一个开源系统,用于容器化应用的自动部署、扩缩和管理。Kubernetes 将构成应用的容器按逻辑单位进行分组以便于管理和发现。   Kubernetes 基于 谷歌公司在运行生产负载上的 15 年经验 打造,并融合了来自社区的最佳建议与实践。我们先来看看他的架构图:   要使用 Kubernetes,你需要用 Kubernetes API 对象 来描述集群的 预期状态(desired state) :包括你需要运行的应用或者负载,它们使用的镜像、副本数,以及所需网络和磁盘资源等等。你可以使用命令行工具 kubectl 来调用 Kubernetes API 创建对象,通过所创建的这些对象来配置预期状态。你也可以直接调用 Kubernetes API 和集群进行交互,设置或者修改预期状态。   一旦你设置了你所需的目标状态,Kubernetes 控制面(control plane) 会通过 Pod 生命周期事件生成器( PLEG ),促成集群的当前状态符合其预期状态。为此,Kubernetes

Tungsten Fabric如何编排

这一生的挚爱 提交于 2020-01-14 00:31:07
OpenStack和TF集成 OpenStack是虚拟机和容器的领先的开源编排系统。Tungsten Fabric提供了Neutron网络服务的实现,并提供了许多附加功能。 在OpenStack中,用户组被分配到“项目”,其中诸如VM和网络之类的资源是私有的,并且其他项目中的用户无法看到(除非特别启用)。 在vRouters中使用VRF且每个网络都有路由表,可以直接在网络层中实施项目隔离,因为只有到允许目的地的路由才会分发到计算节点上的vRouters中的VRF,并且不会发生泛洪vRouter执行的代理服务。 网络服务是Neutron,计算代理是Nova(OpenStack计算服务)。 当两者都部署在OpenStack环境中时,Tungsten Fabric可以在VM和Docker容器之间提供无缝网络。 在下图中,可以看到OpenStack的Tungsten Fabric插件提供了从Neutron网络API到Tungsten Fabric API调用的映射,后者在Tungsten Fabric控制器中执行。 Tungsten Fabric支持网络和子网的策略,以及OpenStack网络策略和安全组。可以在OpenStack或Tungsten Fabric中创建这些实体,并且在两个系统之间同步任何更改。 此外,Tungsten Fabric还支持OpenStack LBaaS v2

TungstenFabric+K8s轻松上手丨通过Kubernetes命名空间实现初步的应用程序隔离

橙三吉。 提交于 2020-01-14 00:31:01
本文所有相关链接pdf: https://163.53.94.133/assets/uploads/files/tf-ceg-case3.pdf Kubernetes命名空间是“虚拟化”Kubernetes集群的一种内置方式。虽然目前尚无人讨论如何使用命名空间以及在何处使用命名空间,但是如果没有网络范围内的命名空间隔离能力,集群虚拟化将无法完成。 Tungsten Fabric Kubernetes CNI插件包括对isolated命名空间的支持。部署到隔离的命名空间中的应用程序无法访问其所在的命名空间之外的任何Pod,其他命名空间的应用程序也无法访问它的Pod和Services。 使用场景 一种Kubernetes的部署方法,是每个开发团队部署单独的Kubernetes集群,在这种情况下,集群虚拟化和命名空间隔离几乎没有好处。 但是,由于未使用的容量是零散的,因此该方法可能导致资源使用效率低下。每个集群都有自己的可用容量,其他集群中运行的应用程序无法使用这些可用容量。此外,随着集群数量的增加,它引入了保持统一所需要的操作开销。最后,启动新集群需要花费时间,这可能会使事情变慢。 命名空间是解决这些问题的好方法,因为这有助于减少集群的数量,共享备用容量并且可以快速创建。这还可以提供一个隔离级别,基础架构团队将负责集群的管理,而各个开发人员团队则在自己的命名空间中进行操作。

k8s

人盡茶涼 提交于 2020-01-13 18:02:14
  最近一直听到这个词,那就记录一下这个不明觉厉的东西到底是个啥玩意儿。   k8s全称Kubernetes是自动化容器操作的开源平台,不仅支持docker还支持其他的容器,rocket。可以做些啥呢?自动化容器部署复制、容器间的扩展、容器间的负载均衡等。   集群是一组节点,节点可以是物理服务器或者虚拟机,上面安装Kubernetes平台。有节点机就有主节点就是Kubernetes Master,主节点上有Replication Controller(复制控制器),复制控制器就是可以对pod进行复制,确保任意时间都有指定数量的Pod“副本”在运行。在节点上有pod,pod中包含container1、container2等 来源: https://www.cnblogs.com/yokiblogs/p/12188299.html

podfile The dependency `` is not used in any concrete target

北慕城南 提交于 2020-01-13 15:00:14
内容提要:   podfile升级之后到最新版本,pod里的内容必须明确指出所用第三方库的target,否则会出现The dependency `` is not used in any concrete target这样的错误。 以下从三个步骤陈述: 1. Podfile升级 查看pod版本: pod --version pod 升级(此时是升级到1.0.0.beta.2版本): sudo gem install cocoapods --pre 2. 错误内容: 我的Podfile的内容是: platform :ios, '7.0' pod 'ReactiveCocoa', '2.1.8' pod 'objectiveflickr', '2.0.4' pod 'LinqToObjectiveC', '2.0.0' pod 'SDWebImage', '3.6' pod install后出现错误The dependency `` is not used in any concrete target pod install /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/universal-darwin14/rbconfig.rb:213: warning: Insecure