spec

k8s健康检查(9)

拟墨画扇 提交于 2019-12-02 11:03:31
一、默认的健康检查   强大的自愈能力是 Kubernetes 这类容器编排引擎的一个重要特性。 自愈的默认实现方式是自动重启发生故障的容器 。除此之外,用户还可以利用 Liveness 和 Readiness 探测机制设置更精细的健康检查,进而实现如下需求:   (1)零停机部署。   (2)避免部署无效的镜像。   (3)更加安全的滚动升级。   每个容器启动时都会执行一个进程,此进程由 Dockerfile 的 CMD 或 ENTRYPOINT 指定。如果进程退出时返回码非零,则认为容器发生故障,Kubernetes 就会根据 restartPolicy 重启容器。 1、模拟一个容器发生故障的场景,Pod 配置文件如下: [root@ren7 yaml]# cat pod1.yaml apiVersion: v1 kind: Pod metadata: name: healthcheck labels: test: healthcheck spec: containers: - name: healthcheck image: reg.yunwei.com/learn/busybox:latest args: - /bin/sh - -c - sleep 10; exit 1 restartPolicy: OnFailure   Pod 的 restartPolicy 设置为

k8s运行容器之Job应用(6)

冷暖自知 提交于 2019-12-02 09:13:57
  容器按照持续运行的时间可分为两类:服务类容器和工作类容器。   服务类容器通常持续提供服务,需要一直运行,比如 http server,daemon 等。工作类容器则是一次性任务,比如批处理程序,完成后容器就退出。   Kubernetes 的 Deployment、ReplicaSet 和 DaemonSet 都用于管理服务类容器;对于工作类容器,我们用 Job。 一、job的应用 1、编写job的yaml文件myjob.yaml: [root@ren7 yaml]# cat myjob.yaml apiVersion: batch/v1   kind: Job metadata: name: job spec: template: spec: containers: - name: job image: reg.yunwei.com/learn/busybox:latest command: ["echo","hello kubernetes"] restartPolicy: Never   ① batch/v1 是当前 Job 的 apiVersion。   ② 指明当前资源的类型为 Job。   ③ restartPolicy 指定什么情况下需要重启容器。对于 Job,只能设置为 Never 或者 OnFailure。对于其他 controller(比如

Python中标准模块importlib详解

♀尐吖头ヾ 提交于 2019-12-02 07:12:30
Python中标准模块importlib详解 模块简介 Python提供了importlib包作为标准库的一部分。目的就是提供Python中import语句的实现(以及 __import__ 函数)。另外,importlib允许程序员创建他们自定义的对象,可用于引入过程(也称为importer)。 什么是imp? 另外有一个叫做imp的模块,它提供给Python import语句机制的接口。这个模块在Python 3.4中被否决,目的就是为了只使用importlib。 这个模块有些复杂,因此我们在这篇博文中主要讨论以下几个主题: 动态引入 检查模块是否可以被引入 引入源文件自身 第三方模块 import_from_github_com 模块使用 1 动态引入 importlib模块支持传入字符串来引入一个模块。我们创建两个简单的模块来验证这个功能。我们将会给予两个模块相同的接口,让它们打印名字以便我们能够区分它们。创建两个模块,分别为foo.py和bar.py,代码如下所示, def main(): print(__name__)12 现在我们使用importlib来引入它们。让我们看看这段代码如何去做的。确保你已经把这段代码放在与上面创建的两个模块相同的目录下。 import importlib def dynamic_import(module): return

Kubernetes的Ingress简单入门教程

a 夏天 提交于 2019-12-02 02:36:27
目录 一、什么是Ingress 三、部署Nginx Ingress Controller 三、部署一个Service将Nginx服务暴露出去 四、部署一个我们自己的服务Cafe 五、创建ingress的证书 六、部署ingress 七、访问ingress代理的服务 1.访问coffee 2.访问tea 3.访问不存在的页面cqh 一、什么是Ingress Ingress对象,其实就是对“反向代理”的一种抽象,简单的说就是一个全局的负载均衡器,可以通过访问URL定位到后端的Service 有了Ingress这个抽象,K8S就不需要关心Ingress的细节了,实际使用时,只需要选择一个具体的Ingress Controller部署就行了,业界常用的反向代理项目有:Nginx、HAProxy、Envoy、Traefik,都已经成为了K8S专门维护的Ingress Controller 一个Ingress对象的主要内容,就类似Nginx的配置文件描述,对应的转发规则就是ingressRule, 有了Ingress这个对象,用户就可以根据自己的需求选择Ingress Controller,例如,如果应用对代理服务的中断非常敏感,可以使用Treafik这样的Ingress Controller Ingress工作在七层,Service工作在四层

使用flannel+canal实现k8s的NetworkPolicy

元气小坏坏 提交于 2019-12-01 19:29:08
目录 1、NetworkPolicy概述 2、NetworkPolicy策略模型 3、NetworkPolicy默认策略 4、NetworkPolicy的实现 5、使用flannel+canal实现k8s的NetworkPolicy 5.1、实验环境说明 5.2、安装canal 5.3、应用示例 5.4、生产使用场景 1、NetworkPolicy概述 官方说明: 网络策略(NetworkPolicy) 是一种关于 pod 间及 pod 与其他网络端点间所允许的通信规则的规范。 简单来说, NetworkPolicy 就是对 pod 进行网络策略控制。用于为 Kubernetes 实现更为精细的流量控制,实现租户隔离机制。 Kubernetes 使用标准的资源对象 NetworkPolicy 供管理员按需定义网络访问控制策略。 2、NetworkPolicy策略模型 使用 network policy 资源可以配置 pod 的网络, networkPolicy 是 namespace scoped 的,他只能影响某个 namespace 下的 pod 的网络出入站规则。 metadata 描述信息。 podSelector pod选择器,选定的 pod 所有的出入站流量要遵循本 networkpolicy 的约束。 policyTypes 策略类型。包括了 Ingress 和

电商商品表设计

谁说胖子不能爱 提交于 2019-12-01 08:00:02
一、了解下商品中的两个概念:SPU和SKU SPU(Standard Product Unit):标准化产品单元。是商品信息聚合的最小单位,是一组可复用、易检索的标准化信息的集合,该集合描述了一个产品的特性。通俗点讲,属性值、特性相同的商品就可以称为一个SPU。 SKU=Stock Keeping Unit(库存量单位)。即库存进出计量的基本单元,可以是以件,盒,托盘等为单位。 举个例子:iPhone6是一个SPU,iPhone6 32G 白色是一个SKU,iPhone6 128G 白色是另一个SKU。 我们刚才说的 iphone6,书面称谓叫“SPU” Standard Product Unit (标准化产品单元),它是最接近用户认知的产品单元,比如用户说,我想买个 iphone4、iphone6、小米 4,这些都是 SPU,也就是用户普遍认知范围内的一种产品。然而在电商系统中只有 SPU 并没有什么卵用,用户购买时肯定要确定,需要什么颜色、多少 G 的,支持什么网络。所以,例如金色 -16G- 移动版 iphone6,就需要一个名称去规范它,这个名称叫“SKU” Stock Keeping Unit(库存单元),换句话理解就是库存里面存的东西,库存里存在东西肯定是具体的某种规格的 iphone6。基于这个理解,我们先画下图: SPU表有了,这里还是以iPhone6为例

同步FIFO设计Spec

萝らか妹 提交于 2019-12-01 07:12:31
为什么要写Spec文档: 记得刚进公司实习的时候,导师安排我写一个SM4算法AHB接口模块,要求写代码前 写出详细的设计文档,详细到什么程度呢,看着文档就能把代码写好,作为一个只 在学校写过数字钟的小白来说有点不太理解,后面看的Spec多了,好的Spec的确能够看 着Spec把代码给敲了,能够方便别人理解你的设计思路,特别是当你遇到一份注释不太 清楚,逻辑难懂的代码时,是多么渴望来一份Spec帮助理解。 网页上编辑图和格式不是很方便,就写的简单点吧 1 .同步FIFO(First In First Out) :一种先进先出的数据缓存器,同步FIFO是指读写为同一时钟, 主要做数据缓存。本设计用8*256的双口RAM来做,主要是对RAM的控制,产生空、满信号。 2. 总体模块划分 子模块dpram.v 双口RAM的描述 子模块fifo_ctrl.v 对RAM的控制,产生空满信号 Top层 fifo_sync.v 对两个子模块的例化 (这里能用图来描述最好了) 3. dpram模块 信号列表 clk IN 时钟 rst_n IN 复位 wr_en IN 写使能 rd_en IN 读使能 wr_data[7:0] IN 写数据 wr_addr[7:0] IN 写地址 rd_addr[7:0] IN 读地址 rd_data[7:0] OUT 读数据 定义一块memory 8*256 电路图

构建私有库

╄→гoц情女王★ 提交于 2019-12-01 06:08:52
构建私有库 索引库:存放索引地方 私有库:存放代码地方 ##1.构建索引库 1.1 构建Cocoapods管理 1.1.1 创建spec文件【记录私有库各个版本信息】 pod spec create 私有库文件名称 1.1.2 配置spec文件 # ――― Spec Metadata 元数据信息 s.name = "tztPodAPI" s.version = "0.0.1"#tag版本号 s.summary = "A short description of tztPodAPI."#概述信息 s.description = <<-DESC DESC #DESC中间添加描述信息 s.homepage = "http://EXAMPLE/tztPodAPI" # ――― Spec License 证书类型 s.license = "MIT (example)" # s.license = { :type => "MIT", :file => "FILE_LICENSE" } #――― Author Metadata 作者信息 s.author = { "xxxxxx" => "xxxxx@xxx.com" } #――― Platform Specifics 平台设置 s.platform = :ios, "8.0" #――― Source Location 代码路径 s.source

Spring Data JPA 基本使用

≯℡__Kan透↙ 提交于 2019-11-30 22:26:17
体内容 一、 创建SpringDataJPA项目 1 导入依赖 2 配置数据源信息 3 编写Dao 4 user 5 编写测试代码 二、 Spring Data JPA 的接口继承结构 三、 Spring Data JPA 的运行原理 四、 Repository 接口 1 方法名称命名规则查询 2 基于@Query 注解的查询 2.1通过 JPQL 语句查询 2.2通过 SQL 语句查询 3 通过@Query 注解完成数据更新 五、 CrudRepository 接口 六、 PagingAndSortingRepository 接口 1 分页处理 2 排序的处理 七、 JpaRepository 接口 八、 JpaSpecificationExecutor 接口 1 单条件查询 2 多条件查询 2.1给定查询条件方式一 2.2 给定查询条件方式二 3 分页 4 排序 5 分页与排序 九、 用户自定义Repository接口 十、 关联映射操作 1 一对一的关联关系 2 一对多的关联关系 3 多对多的关联关系 Spring Data JPA: Spring Data JPA 是 spring data 项目下的一个模块。提供了一套基于 JPA标准操作数据库的简化方案。底层默认的是依赖 Hibernate JPA 来实现的。 Spring Data JPA 的技术特点:

CocoaPods详解之----制作篇

こ雲淡風輕ζ 提交于 2019-11-30 21:57:31
Cocoapods 是非常好用的一个iOS依赖管理工具,使用它可以方便的管理和更新项目中所使用到的第三方库,以及将自己的项目中的公共组件交由它去管理。Cocoapods的介绍及优点本文就不在赘述,我开始使用Cocoapods还是在两年前,那个时候它刚刚出现,网上的资料还非常的少,就连他们自己的HomePage都十分的简单,我就着手尝试着使用了一下,用它管理起第三方库确实是十分的方便顺手。后来它有了更强大的功能就是自己创建podspec,更可以设置私有的库。 春节回来上班,没有什么任务做,正好项目中有一些公共组件需要从庞大的项目体系中剥离出来,而且年前项目终于从SVN迁移到了Git,真是喜大普奔,大快人心!这样项目使用Cocoapods就有了条件,正好趁着这两天没有什么事情做,学习一下创建私有的podspec并在项目中部署使用,以及pods的subspec的创建及使用。 整体先说明一下创建一个私有的podspec包括如下那么几个步骤: 创建并设置一个私有的Spec Repo。 创建Pod的所需要的项目工程文件,并且有可访问的项目版本控制地址。 创建Pod所对应的podspec文件。 本地测试配置好的podspec文件是否可用。 向私有的Spec Repo中提交podspec。 在个人项目中的Podfile中增加刚刚制作的好的Pod并使用。 更新维护podspec。