pod

应用配置管理Secret&ConfigMap

柔情痞子 提交于 2020-03-09 10:08:06
1.Secret 常见的应用配置方式 镜像 配置中心 配置文件 共享存储 放到git 仓库 配置文件分类: 敏感信息 非敏感信息 如账号密码 服务器地址 Secret再k8s中 的使用方式 加密数据并存放Etcd中,让Pod的容器以挂载Volume方式访问。 应用场景:凭据 Pod使用secret两种方式: 变量注入 挂载 例:现在一对 用户名 密码 pod在运行的时候需要加载 注入到pod 中 假如现在 用户名:admin 密码:password echo -n "admin" |base64 YWRtaW4= echo -n "password" |base64 cGFzc3dvcmQ= passwdAndusername-secret.yaml apiVersion: v1 kind: Secret metadata: name: mysecret type: Opaque data: username: YWRtaW4= password: cGFzc3dvcmQ= pod怎样注入secret中的变量 secret-var-use.yaml apiVersion: v1 kind: Pod metadata: name: mypod spec: containers: - name: nginx image: nginx env: - name: SECRET

有状态部署StatefulSet控制器

江枫思渺然 提交于 2020-03-09 10:05:39
1.StatefulSet概述 部署有状态应用 解决Pod独立生命周期,保持Pod启动顺序和唯一性 1. 稳定,唯一的网络标识符,持久存储 2. 有序,优雅的部署和扩展、删除和终止 3. 有序,滚动更新 应用场景:数据库 StatefulSet与Deployment区别: 有身份的! 身份三要素: 域名 主机名 存储(PVC) 无状态的适用:web,api,微服务的部署,可以运行在任意节点,不依赖后端持久化存储。 有状态的适用: 需要有固定ip,pod有各自的存储,可以按一定规则进行扩缩容。 2.正常service和headlessService对比 normal sevice: 通过一个cluster-ip 10.0.0.224:80 来反向代理 endpoints 10.244.0.58:8080 10.244.1.78:8080 10.244.1.88:8080 headless service: 无头服务,需要将 clusterIP: None 并且不能设置nodePort web-headlessService.yaml apiVersion: v1 kind: Service metadata: labels: app: web name: headless-svc namespace: default spec: clusterIP: None ports: -

云原生技术的了解

笑着哭i 提交于 2020-03-08 18:55:45
云原生技术的了解 参考资料 迁移到云原生应用架构 kubernetes 手册 etcd 架构与实现解析 什么是云原生 云原生应用架构的几个主要特征: 符合12因素应用 面向微服务架构 自服务敏捷架构 基于API的协作 抗脆弱性 到了2015年Google主导成立了云原生计算基金会(CNCF),起初CNCF对云原生(Cloud Native)的定义包含以下三个方面: 应用容器化 面向微服务架构 应用支持容器的编排调度 云原生技术有利于各组织在公有云、私有云和混合云等新型动态环境中,构建和运行可弹性扩展的应用。云原生的代表技术包括 容器 、 服务网格 、 微服务 、 不可变基础设施 和 声明式API 。 这些技术能够构建 容错性好 、 易于管理 和 便于观察 的 松耦合系统 。 云原生本身甚至不能称为是一种架构,它首先是一种基础设施,运行在其上的应用称作云原生应用,只有符合云原生设计哲学的应用架构才叫云原生应用架构。 云原生系统的设计理念如下: 面向分布式设计(Distribution):容器、微服务、API 驱动的开发; 面向配置设计(Configuration):一个镜像,多个环境配置; 面向韧性设计(Resistancy):故障容忍和自愈; 面向弹性设计(Elasticity):弹性扩展和对环境变化(负载)做出响应; 面向交付设计(Delivery):自动拉起,缩短交付时间;

(四)kubernetes 资源编排(YAML)

青春壹個敷衍的年華 提交于 2020-03-08 17:02:17
YAML 是一种简洁的非标记语言。 语法格式: • 缩进表示层级关系 • 不支持制表符“tab”缩进,使用空格缩进 • 通常开头缩进 2 个空格 • 字符后缩进 1 个空格,如冒号、逗号等 • “---” 表示YAML格式,一个文件的开始 • “#”注释 k8s yaml # yaml格式的pod定义文件完整内容: apiVersion: v1 #必选,版本号,例如v1 kind: Pod #必选,Pod metadata: #必选,元数据 name: string #必选,Pod名称 namespace: string #必选,Pod所属的命名空间 labels: #自定义标签 - name: string #自定义标签名字 annotations: #自定义注释列表 - name: string spec: #必选,Pod中容器的详细定义 containers: #必选,Pod中容器列表 - name: string #必选,容器名称 image: string #必选,容器的镜像名称 imagePullPolicy: [Always | Never | IfNotPresent] #获取镜像的策略 Alawys表示下载镜像 IfnotPresent表示优先使用本地镜像,否则下载镜像,Nerver表示仅使用本地镜像 command: [string] #容器的启动命令列表

iOS开发~CocoaPods使用详细说明

你离开我真会死。 提交于 2020-03-08 09:36:27
一、概要 iOS 开发时,项目中会引用许多第三方库,CocoaPods( https://github.com/CocoaPods/CocoaPods )可以用来方便的统一管理这些第三方库(从一个坑出来,又进了另一个坑而已……)。 二、安装 由于网上的教程基本都大同小异,但细节之处还不是很完善,所以借机会在这里补充下: 注:要使用 CocoaPods,那就要下载安装它,而下载安装CocoaPods需要Ruby环境 1、Ruby环境搭建 当前安装环境为Mac mini 10.8.5。Mac OS本身自带Ruby,但还是更新一下保险,因为我第一次安装在没有更新Ruby的情况下就失败了。 a 查看下当前ruby版本:打开终端输入 ruby -v(确实安装了,不过用这个版本接下来工作失败了,所以更新下ruby) [objc] view plain copy print ? ritekiMac-mini:PodTest lucky$ ruby -v ruby 1 .8 .7 ( 2 0 1 2- 0 2- 0 8 patchlevel 3 5 8) [universal-darwin 1 2 .0] ritekiMac-mini:PodTest lucky$ b 更新ruby 终端输入如下命令( 把Ruby镜像指向taobao,避免被墙,你懂得) gem sources --remove

Kubernetes-DaemonSet

元气小坏坏 提交于 2020-03-08 00:52:17
1 介绍   DaemonSet确保创建足够的pod,并在自己的节点上部署每个pod,确保一个pod匹配它的选择器并在每个节点上运行。要在所有集群节点上运行一个pod,就需要创建这样一个DaemonSet对象。   若节点下线,DaemonSet不会在其他地方重建pod;若一个新节点添加到集群中,DaemonSet会立刻部署一个新的pod实例;若无意中删除一个pod,则会从配置的pod模板创建一个新的pod。 2 DS使用 2.1 使用DaemonSet在特定的节点上运行pod   DaemonSet将pod部署到集群中的所有节点上,除非指定这些pod只在部分节点上运行。通过pod模板中的nodeSelector属性指定。 2.2 创建DS 写好yaml文件: 版本号:apiVersion为apps/v1beta2 DS定义:kind配置为DaemonSet; DS名字:metadata.name pod选择器:spec.selector中可以使用matchLabels选择器 pod模板:spec.template,其中模板中可以包含一个节点选择器,spec.nodeSelector by k8s in action 创建DS命令 $ kubectl create -f xxx.yaml 给节点打标签 $ kubectl label node node_name tag_key

Helm工具详解

非 Y 不嫁゛ 提交于 2020-03-07 22:22:29
很多人都使用过Ubuntu下的apt-get或Centos下的yum,这两者都是Linux系统下的包管理工具。采用apt-get/yum,应用卡发着可以管理应用包之间的依赖关系,发布应用;用户则可通过简单的方式查找、安装、升级、卸载应用程序等。 一、Helm概述 1)Helm简介 Helm是一个用于kubernetes的包管理器。每个包称为一个Chart,一个Chart是一个目录(一般情况下会将目录进行打包压缩,形成name-version.tgz格式的单一文件,方便传输和存储)。我们可以将Helm看作Kubernetes下的apt-get/yum。 对于应用发布者而言,可以通过Helm打包应用,管理应用依赖关系,管理应用版本并发布应用到软件仓库。 对于使用者而言,使用Helm后无须了解Kubernetes的yaml文件语法、应用部署文件。直接使用Helm下载即可在Kubernetes上安装需要的应用。 2)Helm组件及相关术语 1)Helm Helm是一个命令行下的客户端工具。主要用于Kubernetes应用程序Chart的创建、打包、发布及创建和管理本地和远程的Chart仓库。 2)Tiller Tiller是Helm的服务端,部署在Kubernetes集群中,Tiller用于接收Helm的请求,并根据Chart生成Kubernetes的部署文件

Kubernetes中强制删除Pod、namespace

↘锁芯ラ 提交于 2020-03-07 08:35:46
Kubernetes中强制删除Pod、namespace 解决方法 可使用kubectl中的强制删除命令 # 删除POD kubectl delete pod PODNAME --force --grace-period=0 # 删除NAMESPACE kubectl delete namespace NAMESPACENAME --force --grace-period=0 若以上方法无法删除,可使用第二种方法,直接从ETCD中删除源数据 # 删除default namespace下的pod名为pod-to-be-deleted-0 ETCDCTL_API=3 etcdctl del /registry/pods/default/pod-to-be-deleted-0 # 删除需要删除的NAMESPACE etcdctl del /registry/namespaces/NAMESPACENAME 参考文档: 作者:JaeGwen 链接:https://www.jianshu.com/p/470d124845aa 来源:简书 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 来源: https://www.cnblogs.com/lgj8/p/12432468.html

技术破局:如何实现分布式架构与云原生?| 含 ppt 下载

こ雲淡風輕ζ 提交于 2020-03-06 18:28:35
2月19日-2月26日,蚂蚁金服开展了“共战‘疫情’,技术破局”数字课堂线上直播,邀请资深专家从“云原生”、“研发效能”、“数据库”三方面分享蚂蚁金服的实践经验并在线答疑,解析 PaaS 在金融场景的落地建设实践,解析支付宝移动端弹性动态架构,分享 OceanBase 2.2版本的特性和实践。 本文根据 蚂蚁金服 SOFAStack 产品专家俞仁杰 ,在蚂蚁金服数字课堂直播间分享的云原生应用 PaaS 平台的建设实践内容整理,以下为演讲整理全文: 大家好,欢迎来到蚂蚁金服数字课堂直播间。今年 2 月,SOFAStack 金融分布式架构产品已经在阿里云上完成了商业化发布,为了让更多朋友了解到我们的产品的能力、定位以及背后的设计思路,后续我们会有一系列的直播分享。我们今天想分享给大家的话题叫《 云原生应用 PaaS 平台的建设实践 》,主要会围绕 PaaS 产品能力在一些需要稳妥创新的金融场景下的落地思路,并且能够更好地与云原生架构做好链接。 金融场景云原生落地面临挑战 云原生是业务快速变化背景下的必然技术趋势 回顾 IT 的发展史,云计算分类为 IaaS PaaS 和 SaaS 已经有十几年了。而事实上,整个云计算行业的发展,我们能够明显看到企业在落地云计算战略的时候经历的三个阶段,Cloud-Based, Cloud-Ready, Cloud-Native