pod

你闺女都能看懂的 Kubernetes 插画指南!

天大地大妈咪最大 提交于 2020-03-10 19:02:40
有一天,程序员问大师,什么是 Kubernetes ? 大师说:“Kubernetes 是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes 的目标是让部署容器化的应用简单并且高效(powerful)……” 可想而知,大师当场就被打死了。 为了让大家更好地理解 Kubernetes ,今天给大家带来了一个插画版的 Kubernetes 教程,可以让你对 Kubernetes 的关键技术点有一个大致的了解。 Written by: Matt Butcher & Karen Chu Illustrated by: Bailey Beougher Designed by: Karen Chu 实验楼翻译: “我很无聊,菲比阿姨,”Zee 懒洋洋地躺在沙发上说,“我们今天要做什么?” “为什么不去看看动物呢?”菲比笑着说。“我们去动物园吧!” “Yeah!”Zee 高兴地叫着,准备出发! 来到动画园,他们遇到的第一批动物是蓝色毛茸茸的,有松鼠那么大,每个小动物都带着一个小盒子,不停地来回穿梭。 菲比说, “这些叫 Pod。他们整天整夜地跑来跑去,拖着小箱子。” “他们每天只做这些吗,菲比阿姨?” “是的,它们的一生中只做这件事,运行。” 在 Kubernetes 中, Pod 负责运行容器,每个 Pod 至少有一个容器,并控制该容器的执行。 当容器退出时,Pod

云原生资深专家:如何选择一个最佳微服务代理架构?

自闭症网瘾萝莉.ら 提交于 2020-03-10 12:49:15
作者简介 Pankaj Gupta,就职于Citrix,是云原生应用程序交付解决方案的高级总监。 近两年微服务架构十分流行,许多公司也正在努力构建自己的微服务架构。而因为微服务能够实现更快的发布周期、将应用程序模块化、弹性伸缩以及让应用程序具备可移植性,其越来越成为企业数字化进程中不可忽视的标志。但是,由于对敏捷性所产生的影响了解较少,使得应用程序交付增加了许多复杂性。 对于此,有什么解决方案呢? 选择合适的代理架构和应用程序交付controller(ADCs)对最终用户获得最佳体验至关重要。它必须能够提供合适的安全等级、观察性、高级流量管理以及故障排查能力并且能够兼容你的开源工具。此外,代理架构必须能够同时满足南北流量和微服务间东西流量的需求。 单体应用程序的负载均衡十分简单。但是对于基于微服务的应用程序而言,负载均衡则更为复杂。 本文将介绍4个代理架构,并根据基于微服务应用程序交付的7个关键标准对其中几个进行评估。 在优势和复杂性之间进行权衡 首先,我们需要达成共识:微服务架构实际上是十分复杂的。在开源创新的推动下,最佳实践随着技术的进步而迅速发展。不同的架构拥有不同的优势,但是也呈现出不同程度的复杂性。很多时候,我们需要在自己实际所需的好处(例如安全性、可观察性)和复杂性之间做出取舍。尤其当你考虑实施特定架构所需的技能和为了满足大众需求而必须添加的功能时

云原生资深专家:如何选择一个最佳微服务代理架构?

邮差的信 提交于 2020-03-10 11:34:47
作者简介 Pankaj Gupta,就职于Citrix,是云原生应用程序交付解决方案的高级总监。 近两年微服务架构十分流行,许多公司也正在努力构建自己的微服务架构。而因为微服务能够实现更快的发布周期、将应用程序模块化、弹性伸缩以及让应用程序具备可移植性,其越来越成为企业数字化进程中不可忽视的标志。但是,由于对敏捷性所产生的影响了解较少,使得应用程序交付增加了许多复杂性。 对于此,有什么解决方案呢? 选择合适的代理架构和应用程序交付controller(ADCs)对最终用户获得最佳体验至关重要。它必须能够提供合适的安全等级、观察性、高级流量管理以及故障排查能力并且能够兼容你的开源工具。此外,代理架构必须能够同时满足南北流量和微服务间东西流量的需求。 单体应用程序的负载均衡十分简单。但是对于基于微服务的应用程序而言,负载均衡则更为复杂。 本文将介绍4个代理架构,并根据基于微服务应用程序交付的7个关键标准对其中几个进行评估。 在优势和复杂性之间进行权衡 首先,我们需要达成共识:微服务架构实际上是十分复杂的。在开源创新的推动下,最佳实践随着技术的进步而迅速发展。不同的架构拥有不同的优势,但是也呈现出不同程度的复杂性。很多时候,我们需要在自己实际所需的好处(例如安全性、可观察性)和复杂性之间做出取舍。尤其当你考虑实施特定架构所需的技能和为了满足大众需求而必须添加的功能时

K8s架构,(基本概念)

偶尔善良 提交于 2020-03-10 09:55:03
Kubectl: k8s是命令行端,用来发送客户的操作指令 API server: 是k8s集群的前端接口,各种客户端工具以及k8s的其他组件可以通过它管理k8s集群的各种资源,他提供了http/https RESTful API即k8s API Scheduler: 负责决定将pod放在那个node节点上运行,在调度时,会充分考虑集群的拓扑结构,当前各个节点的负载情况,以及应用对高可用,性能,数据亲和性和需求 Controller manager: 负责管理集群的各种资源,保证资源处于预期的状态,它由多种controller组成,包括Replication controller,Endpoints controller,Namespace controller,Serviceaccounts controller等等 Etcd: 负责保存k8s集群的配置信息和各种资源的状态信息,当数据发生变化时,etcd会快速的通知k8s相关组件。第三方组件,他有可替换方案(consul,zookee saper) Pod: k8s集群的最小组成单位,一个pod内,可以运行一个或多个容器,大多数情况下,一个pod内只有一个container容器 Flannel: 是k8s集群网络方案,可以保证的跨主机通信,第三方解决方案,也有替换方案 Coredns :域名解析功能 Kubelet:

升级 ox 10.11的系统以后执行 pod install 的时候报错

六眼飞鱼酱① 提交于 2020-03-10 02:37:22
1.检查gem 的数据源 gem sources -l http://ruby.taobao .org 现在ruby源已经换成https gem sources --remove http: //ruby.taobao.org/ gem sources -a https: //ruby.taobao.org/ 2.重新安装pod 可能会报错 ERROR: While executing gem ... (Errno ::EPERM) Operation not permitted - /usr/bin/xcodeproj 3.使用指令,安装成功 sudo gem install -n /usr/ local/ bin cocoapods 4.建立podfile文件 进入终端 :cd 把你的项目文件夹移动到里面 建立podfile文件 touch podfile 查询你要的库 pod search @"AFNetworking" 进入podfile文件 pod -e podfile 把你要的版本直接放进你的 pod install 换成pod install --verbose --no-repo-update这个命令,前面的命令被墙了 来源: https://www.cnblogs.com/zero-zql/p/4939385.html

kubernetes 中的资源

ⅰ亾dé卋堺 提交于 2020-03-09 15:12:34
kubernetes 中的资源 标签(空格分隔): kubernetes系列 一:kubernetes 中的资源清单 二:kubernetes yaml 格式清单 一. kubernetes 中的资源清单 1.1 k8s 中资源 K8s 中所有的内容都抽象为资源, 资源实例化之后,叫做对象 资源:(适用范围来分配的) 名称空间级别: kubeadmin k8s kube-system kubectl get pod -n default 集群级别 : role 元数据级别:HPA 名称空间级别: 工作负载型资源( workload ): Pod、ReplicaSet、Deployment、StatefulSet、DaemonSet、Job、 CronJob ( ReplicationController 在 v1.11 版本被废弃 ) 服务发现及负载均衡型资源( ServiceDiscovery LoadBalance ): Service、Ingress、... 配置与存储型资源: Volume( 存储卷 )、CSI(容器存储接口,可以扩展各种各样的第三方存储卷 ) 特殊类型的存储卷:ConfigMap( 当配置中心来使用的资源类型 )、Secret(保存敏感数据)、 DownwardAPI(把外部环境中的信息输出给容器) 集群级资源: Namespace、Node、Role

Kubernetes基本概念(一)

不问归期 提交于 2020-03-09 11:34:17
一、Kubernetes核心组件 etcd:保存整个集群的状态。 apiserver:提供了资源操作的唯一入口,并提供认证、授权、访问控制、API注册和发现等机制 controller manager:负责维护集群的状态,比如故障检测、自动扩展、滚动更新等。 scheduler:负责资源的调度,按照预定的调度策略将Pod调度到相应的机器上。 kubelet:负责维护容器的生命周期,同时也负责Volume(CVI)和网络(CNI)的管理。 Container runtime:负责镜像管理以及Pod和容器的真正运行(CRI)。 kube-proxy:负责为Service提供cluster内部的服务发现和负载均衡。 二、Kubernetes基本概念 Cluster:集群,是指由Kubernetes使用一系列的物理机、虚拟机和其他基础资源来运行你的应用程序(下图)。 Node:一个node就是运行着Kubernetes的物理机或虚拟机,并且pod可以在上面被调度。 Pod:一个pod对应一个由相关容器和卷组成的容器组:(下图) Label:一个label是一个被附加到资源上的键/值对,譬如附加到一个Pod上,为它传递一个用户自定的并且可以识别的属性。Label还可以被应用来组织和选择子网中的资源。 selector:是一个通过匹配labels来定义资源之间关系的表达式

k8s安全机制

一曲冷凌霜 提交于 2020-03-09 10:16:17
1.k8s安全框架介绍 访问K8S集群的资源需要过三关:认证、鉴权、准入控制 普通用户若要安全访问集群API Server,往往需要证书、 Token或者用户名+密码;Pod访问,需要ServiceAccount K8S安全控制框架主要由下面3个阶段进行控制,每一个阶段 都支持插件方式,通过API Server配置来启用插件。1. Authentication 2. Authorization 3. Admission Control 当kubectl ,ui,程序 等请求某个 k8s 接口,先认证(判断真伪),鉴权(是否有权限这么做?), 准入控制(能不能个这么干?) 2.认证(Authentication) 三种客户端身份认证: HTTPS 证书认证:基于CA证书签名的数字证书认证 kube-apiserver etcd kubelet 连接kube-apiserver kube-proxy连接 kube-apiserver 均采用 https传输方式 HTTP Token认证:通过一个Token来识别用户 客户端携带一个token来请求server端,如果server端含有这个token,那么认证成功否则失败 HTTP Base认证:用户名+密码的方式认证 比较原始的方式,在k8s中基本很少使用 3.授权鉴权(Authorization) RBAC(Role-Based

深入理解Service

荒凉一梦 提交于 2020-03-09 10:10:58
Service 存在的意义 • 防止Pod失联(服务发现) • 定义一组Pod的访问策略(负载均衡) Pod与Service的关系 • 通过label-selector相关联 • 通过Service实现Pod的负载均衡( TCP/UDP 4层) Service三种类型 ClusterIP: 分配一个内部集群IP地址,只能在集群内部访问(同Namespace内的Pod),默认ServiceType。 ClusterIP 模式的 Service 为你提供的,就是一个 Pod 的稳定的 IP 地址,即 VIP。 web-deployment.yaml apiVersion: apps/v1 kind: Deployment metadata: labels: app: web name: web spec: replicas: 1 selector: matchLabels: app: web template: metadata: labels: app: web spec: containers: - image: nginx name: nginx service-clusterip.yaml apiVersion: v1 kind: Service metadata: labels: app: web name: web spec: ports: - port: 80

深入理解 Ingress

大城市里の小女人 提交于 2020-03-09 10:09:55
Ingress为弥补NodePort不足而生 NodePort一些不足: • 一个端口只能一个服务使用,端口需提前规划 • 只支持4层负载均衡 nginx 动态感知pod ip 的变化,根据变化动态设置nginx 的upstream,并实现负载均衡 ingress controller 动态刷新 pod ip 列表 更新到 nginx 的配置文件 Pod与Ingress的关系 通过Service相关联 通过Ingress Controller实现Pod的负载均衡 - 支持TCP/UDP 4层和HTTP 7层 Ingress Controller 1. 部署Ingress Controller Nginx:官方维护的Ingress Controller 部署文档:https://github.com/kubernetes/ingress-nginx/blob/master/docs/deploy/index.md 注意事项: • 镜像地址修改成国内的:registry.aliyuncs.com/google_containers/nginx-ingress-controller:0.26.1 • 使用宿主机网络:hostNetwork: true wget https://raw.githubusercontent.com/kubernetes/ingress-nginx