Browsed by
标签: Kubernetes

Cloudify:打通应用和基础架构自动化交付的“任督二脉”

Cloudify:打通应用和基础架构自动化交付的“任督二脉”

閱讀本文約花費: 9 (分鐘)1. Cloudify概况 Cloudify是一个开源的云应用编排系统,可以让你的应用自动化在各种不同的云上方便地部署。 由GigaSpaces公司(一家总部位于纽约的以色列中间件技术公司)开源。GigaSpace也是Openstack的支持者,经常参与Openstack全球的技术峰会,个人感觉其在技术路线选择上也受到Openstack的影响。 具体来看,Cloudify的技术路线选择以3.0版本为分水岭,在3.0版本以前完全基于Java技术栈开发,主要使用Groovy脚本语言。从3.0开始,整个技术栈几乎完全转移到了Python上(除保留了一个Java开发的组件外)。 具体转换的原因不得而知,但从我粗略的分析看,随着Python技术生态的逐渐完善,以及Openstack等基于Python技术的云管平台的逐渐成熟,这些应该都对Cloudify的技术路线选择起到一定的推进作用。不管怎么说,从整体看,Cloudify技术栈是往更轻量级、灵活便捷的方向转移。 2.那么Cloudify究竟是干什么的? 我们先看官网给出的两段文字 From Blueprint to ProductionWith Cloudify you can deploy the same application in your own data center or on the cloud…

Read More Read More

kubectl 命令大全

kubectl 命令大全

閱讀本文約花費: 7 (分鐘)1.kubectl 命令补全 2.kubectl上下文和配置 3.创建对象 4.显示和查找资源 5.更新资源 6.修补资源 7.编辑资源 8.scale资源,设置副本数 9.删除资源 10.与运行中的pod交互 11.与节点和集群交互 12.资源类型 下表列出的是 kubernetes 中所有支持的类型和缩写的别名。 资源类型 缩写别名clusterscomponentstatuses csconfigmaps cmdaemonsets dsdeployments deployendpoints epevent evhorizontalpodautoscalers hpaingresses ingjobslimitranges limitsnamespaces nsnetworkpoliciesnodes nostatefulsetspersistentvolumeclaims pvcpersistentvolumes pvpods popodsecuritypolicies psppodtemplatesreplicasets rsreplicationcontrollers rcresourcequotas quotacronjobsecretsserviceaccount saservices svcstorageclassesthirdpart…

Read More Read More

Kubectl基本操作命令

Kubectl基本操作命令

閱讀本文約花費: 7 (分鐘)创建对象通过yaml文件创建: kubectl create -f xxx.yaml (不建议使用,无法更新,必须先delete) kubectl apply -f xxx.yaml (创建+更新,可以重复使用) 删除对象通过yaml文件删除: kubectl delete -f xxx.yaml 查看kube-system namespace下面的pod/svc/deployment 等等(-o wide 选项可以查看存在哪个对应的节点) kubectl get pod/svc/deployment -n kube-system 查看所有namespace下面的pod/svc/deployment等等kubectl get pod/svc/deployment –all-namcpaces 重启pod(无法删除对应的应用,因为存在deployment/rc之类的副本控制器,删除pod也会重新拉起来) kubectl get pod -n kube-system 查看pod描述:kubectl describe pod XXX -n kube-system 查看pod 日志 (如果pod有多个容器需要加-c 容器名)kubectl logs xxx -n kube-system 删除应用(先确定是由说明创建的,再删除对应的kind):kub…

Read More Read More

Cloudify:打通应用和基础架构自动化交付的 “任督二脉”

Cloudify:打通应用和基础架构自动化交付的 “任督二脉”

閱讀本文約花費: 10 (分鐘)嘉宾介绍: 张亮,上海翰纬信息科技有限公司技术总监兼合伙人。IT从业经验14年以上,先后从事开发、架构、项目管理、技术管理等岗位,曾就职于IBM,在大型企业数据中心运维方面,积累了超过10年的架构和规划管理经验,先后为五大行、农商行等金融机构提供数据中心运维管理规划和管理平台落地咨询及实施服务。热爱开源技术,现专注于openstack、docker、cloudify、apache kylin等开源方案在传统企业的落地。 前言 很高兴有机会和各位专家、大牛一起分享技术方面的话题。我们今天分享一个与Paas相关的开源平台—Cloudify,希望和大家一起学习!最早我听说Cloudify还是我在IBM参与一个方案讨论时遇到的,但介于种种原因就错过了深入了解的机会。 去年,一个偶然的机会再次相逢,用我半吊子的Python功底深入研究了Cloudify的源码,对于Cloudify有了更为全面深入的认识,所以借此机会和大家一起交流。 本次交流主要围绕Cloudify概述、业务和技术定位、架构、核心组件,并与当前热门的Openstack、Docker的整合方式进行讲解。 1. Cloudify概况 Cloudify是一个开源的云应用编排系统,可以让你的应用自动化在各种不同的云上方便地部署。 由GigaSpaces公司(一家总部位于纽约的以色列中间件技术公司)开源。…

Read More Read More

计算机端口的范围及分类

计算机端口的范围及分类

閱讀本文約花費: 3 (分鐘)  计算机的端口范围是从0号端口到65535号端口,可分为3大类:  (1)公认端口(Well Known Ports):从0到1023,它们紧密绑定于一些服务。通常这些端口的通讯明确表明了某种服务的协议。例如:80端口实际上总是HTTP通讯。   (2)注册端口(Registered Ports):从1024到49151。它们松散地绑定于一些服务。也就是说有许多服务绑定于这些端口,这些端口同样用于许多其它目的。例如:许多系统处理动态端口从1024左右开始。   (3)动态和/或私有端口(Dynamic and/or Private Ports):从49152到65535。理论上,不应为服务分配这些端口。实际上,机器通常从1024起分配动态端口。但也有例外:SUN的RPC端口从32768开始。 在Kubernetes范围,端口范围又是另外一个定义。 NodePort 类型 如果你将 spec.type 字段设置为 NodePort,则 Kubernetes 控制平面将在 –service-node-port-range 标志指定的范围内分配端口(默认值:30000-32767)。 每个节点将那个端口(每个节点上的相同端口号)代理到你的服务中。 你的服务在其 .spec.ports[*].nodePort 字段中要求分配的端口。 如果你想指定特定的 I…

Read More Read More

kubeadm init 后master一直处于notready状态

kubeadm init 后master一直处于notready状态

閱讀本文約花費: 3 (分鐘)kubeadm安装Kubernetes,集群状态检测时,master一直处于notready状态 找问题,先查看pods状态 发现coredns一直处于pending状态,再进一步看kuberctl.services日志 看到是网络的问题,应该是fu 解决办法,换个链接 查看node状态,发现还是notready。查看日志 发现报错plugin flannel does not support config version ,修改配置文件 修改后,运行 再查看集群状态,发现master正常了,处于ready状态;但是node1节点还是处于notready状态 解决办法:去到node1,查看kubectl日志,发现还是报错no valid networks found in /etc/cni/net.d将node1中也加上cni的版本号,重新启动,即可看到集群状态变为正常 参考资料:kubeadm安装Kubernetes 1.14最佳https://www.kubernetes.org.cn/5462.htmlkubernetes安装过程中错误(kube-dns 状态一直是Pending,master节点是NotReady)https://blog.csdn.net/u013355826/article/details/82786649How to fi…

Read More Read More

面向 Kubernetes 设计误区

面向 Kubernetes 设计误区

閱讀本文約花費: 23 (分鐘)K8s 设计模式 Kubernetes 是一个具有普遍意义的容器编排工具,它提供了一套基于容器构建分布式系统的基础依赖,其意义等同于 Linux 在操作系统中的地位,可以认为是分布式的操作系统。 自定义资源 K8s 提供了 Pod、Service、Volume 等一系列基础资源定义,为了更好提供扩展性,CRD 功能是在 1.7 版本被引入。用户可以根据自己的需求添加自定义的 Kubernetes 对象资源(CRD)。值得注意的是,这里用户自己添加的 Kubernetes 对象资源都是 native 的都是一等公民,和 Kubernetes 中自带的、原生的那些 Pod、Deployment 是同样的对象资源。在 Kubernetes 的 API Server 看来,它们都是存在于 etcd 中的一等资源。同时,自定义资源和原生内置的资源一样,都可以用 kubectl  来去创建、查看,也享有 RBAC、安全功能。用户可以开发自定义控制器来感知或者操作自定义资源的变化。 Operator 在自定义资源基础上,如何实现自定义资源创建或更新时的逻辑行为,K8s Operator 提供了相应的开发框架。Operator 通过扩展 Kubernetes 定义 Custom Controller,list/watch 对应的自定义资源,在对应资源发生变…

Read More Read More

Kubernetes的三种外部访问方式:NodePort、LoadBalancer 和 Ingress

Kubernetes的三种外部访问方式:NodePort、LoadBalancer 和 Ingress

閱讀本文約花費: 7 (分鐘)【编者的话】本文分析了 NodePort,LoadBalancer 和 Ingress 这三种访问服务方式的使用方式和使用场景,指出了各自的优缺点,帮助用户基于自己的场景做出更好的决策。 最近有些同学问我 NodePort,LoadBalancer 和 Ingress 之间的区别。它们都是将集群外部流量导入到集群内的方式,只是实现方式不同。让我们看一下它们分别是如何工作的,以及你该如何选择它们。 注意:这里说的每一点都基于Google Kubernetes Engine。如果你用 minikube 或其它工具,以预置型模式(om prem)运行在其它云上,对应的操作可能有点区别。我不会太深入技术细节,如果你有兴趣了解更多,官方文档是一个非常棒的资源。 ClusterIP ClusterIP 服务是 Kubernetes 的默认服务。它给你一个集群内的服务,集群内的其它应用都可以访问该服务。集群外部无法访问它。 ClusterIP 服务的 YAML 文件类似如下: apiVersion: v1 kind: Service metadata:   name: my-internal-service selector:     app: my-app spec…

Read More Read More

UCloud优刻得容器Cube入选2020年度十大云原生创新技术方案

UCloud优刻得容器Cube入选2020年度十大云原生创新技术方案

閱讀本文約花費: 4 (分鐘)近日,由极客邦科技、InfoQ主办的首个年度榜单“2020中国技术力量年度榜单评选”结果揭晓,UCloud优刻得 Serverless容器实例Cube成功入选“2020年度十大云原生创新技术方案”。 顶尖专家阵容 优质项目交锋 UCloud云原生实力获得认可 此次极客邦科技、InfoQ主办的“2020中国技术力量年度榜单评选”,历经数月打磨,共有300+参评项目,100+入围项目,10000+开发者公开票选,20+顶尖专家评审,10+主编团打分。“2020 年度十大云原生创新技术方案”作为评选出的四大榜单之一,聚焦IT圈最炙手可热的“云原生”领域及优质技术方案,从研发实力、技术创新性、落地案例、市场潜力几方面综合评估,最终筛选出UCloud优刻得、华为云、腾讯云等10家入选方案。 轻量级Cube 秒级启动、最短1天完成部署 伴随云计算2.0时代的到来,越来越多企业开始拥抱云原生,容器作为云原生最基础的技术,在短时间也实现了快速普及,据权威机构的调查数据显示,2019年已有43.9%的用户采用了容器技术,另外有40.8%的用户计划采用容器技术。 UCloud作为云计算领域的核心玩家,持续关注云原生发展和用户需要,进行了多项技术、产品研发。在Kubernetes作为容器编排的事实标准在企业服务中被大量采用后,UCloud也于2018年推出了基于Kubern…

Read More Read More

从基础设施到云原生应用,全方位解读阿里云原生新锐开源项目

从基础设施到云原生应用,全方位解读阿里云原生新锐开源项目

閱讀本文約花費: 11 (分鐘)简介: 2020年11月19日,由 InfoQ 主办的“2020中国技术力量年度榜单盛典”隆重召开,阿里云技术专家罗毅荣获“十大开源杰出贡献人物”、Open Application Model(OAM)荣登“十大开源新锐项目”、由阿里云原生团队支撑的完美日记电商业务案例获评“2020年度十大云原生行业落地典范”,阿里云原生拿了一个分量十足的“大满贯”。 2020年11月19日,由 InfoQ 主办的“2020中国技术力量年度榜单盛典”隆重召开,并正式揭晓了“开源杰出贡献人物”、“开源新锐项目”和“云原生行业落地典范”三大重量级奖项。在此前的入围赛中,仅“开源新锐项目”单项,阿里云原生就入围了10多个开源项目,在创新能力、社区成就和用户反馈等多项指标中一骑绝尘,占据了参评项目整体近五分之一。而在本次揭晓的“2020中国技术力量年度榜单”决赛结果中,最终阿里云技术专家罗毅荣获“十大开源杰出贡献人物”、Open Application Model(OAM)荣登“十大开源新锐项目”、由阿里云原生团队支撑的完美日记电商业务案例获评“2020年度十大云原生行业落地典范”,阿里云原生拿了一个分量十足的“大满贯”。 在 2020 年,阿里不仅实现了双十一核心系统全面云原生化,一举成为全球规模最大、实力最硬核的云原生实践,并首次实现自研、开源、商业“三位一体…

Read More Read More

Kubernetes 社区是如何运作的系列之二——康威定律和SIG

Kubernetes 社区是如何运作的系列之二——康威定律和SIG

閱讀本文約花費: 10 (分鐘)生产关系能否决定生产力?为什么这个社会需要管理?Kubernetes 是如此的成功,它的开源治理和技术架构是有着非常密切的关系的。 Tue Feb 6, 2018 | 3000 Words | 大约需要阅读 6 分钟 | | 康威定律(Conway’s Law) 随着信息技术的发展,以及现实的IT公司的成功,如Amazon、Netflix,以及云计算的普及,微服务的实践正在走向很多传统用户,然而,实施微服务的过程中,和DevOps的理念一样,人们发现并非仅仅是技术所能够解决的。还要涉及到组织架构。于是,伴随着微服务的发展,一位很少被人提及的科学家被推到了前端,也是被人忽视而尘封的科学家。 时间要拨回到1967年,Melvin Conway 以独特的视角观察到一个组织的组织结构会对其开发的系统有很大的影响。并撰写了“How Do Committees Invent” 这样一篇影响深远的论文,其中被人们广为知道的结论: 设计系统【这里也不仅仅是指信息系统】的组织,其产生的设计和架构等价于组织间的沟通结构。 该定律基于这样一个推理:为了能够让软件之间的模块相互作用,软件的撰写者们必须相互频繁的进行沟通,因此,系统的软件界面结构将会反映出打造此系统的组织的社会边界,要知道跨边界的沟通是比较困难的。Conway 定律的目的是试图说明这是蛮常见的社会学…

Read More Read More

Kubernetes 社区是如何运作的系列之一——哲学及治理

Kubernetes 社区是如何运作的系列之一——哲学及治理

閱讀本文約花費: 6 (分鐘)开源社区治理,正在逐渐的成熟,Linux、CNCF、OpenStack、Apache基金会等俨然成为软件业的中流砥柱,本土是不是应该潜心学习这些先进的管理/治理方式?精英制还是完全民主化?是不是应该以实际行动和理性思考来作出正确的判断? Mon Feb 5, 2018 | 1900 Words | 大约需要阅读 4 分钟 | | 引子 在2017年,关于容器的管理和调度平台,战火的硝烟渐渐的平息,Kubernetes 以压倒性的优势占据了这个细分领域的霸主,如下图来自 thenewstack 的调查: 如果仅仅从纯技术的角度而言,Kubernetes 和其它平台是半斤八两,处于伯仲之间,那么在社区的运营和赢得人们信任的方面,Kubernetes绝对是No.1,没有哪家能够相提并论。即使是Docker本身拥有无数拥泵的情况下,是容器的默认事实标准,也无法抵挡透明、开放、协作的Kubernetes社区的魅力。开源之道在Kubernetes 之所以成功的背后神秘力量 进行过专门的表述。 在上个月的中旬,Software Engineering Daily 的Jeff 撰写了一篇非常棒的文章:Kubernetes 的“下沉”,意指Kubernetes已经像Linux在单机操作系统的地位一样,成为分布式系统平台的默认选择。成为了分布式系统事实…

Read More Read More

Service Mesh实践之Istio初体验

Service Mesh实践之Istio初体验

閱讀本文約花費: 16 (分鐘)微服务国内发展背景: 2014年,Martin Fowler撰写的《Microservices》使得许多国内的先行者接触到微服务这个概念并将其引入国内,2015年越来越多的人通过各种渠道了解到微服务的概念并有人开始在生产环境中落地,2016-2017年,微服务的概念被越来越多的人认可,带动了一大批公司以微服务和容器为核心开始技术架构的全面革新。 至今微服务已经历了两代发展,第一代以Spring Cloud为代表的微服务开发框架,该框架在微服务发展的前几年一度独领风骚,甚至在部分人群中成为微服务的代名词,但事实上该微服务框架并不是唯一实现微服务的方式;第二代微服务技术为服务网格(Service Mesh),它的出现解决了大部分开发人员在使用Spring Cloud中遇到的不足和痛点。 Service Mesh是如何解决这些问题的,又是何以赢得众多开发者的支持呢?笔者就这些问题给大家分享一篇以Istio为代表的第二代微服务实践。 一、微服务和Istio Service Mesh基本概念 服务网格是一个基础设施层,主要用于处理服务间的通信。云原生应用有着复杂的服务拓扑,服务网格负责在这些拓扑中实现请求的可靠传递。在实践中,服务网格通常实现为一组轻量级网络代理,它们与应用程序部署在一起,而对应用程序透明。 图1展示了服务网格的拓扑,当微服务数量增多达到几十上…

Read More Read More

如何在Kubernetes中管理有状态应用

如何在Kubernetes中管理有状态应用

閱讀本文約花費: 7 (分鐘)在Kubernetes中,StatefulSet被用来管理有状态应用的API对象。StatefulSets在Kubernetes 1.9版本才稳定。StatefulSet管理Pod部署和扩容,并为这些Pod提供顺序和唯一性的保证。与Deployment相似的地方是,StatefulSet基于spec规格管理Pod;与Deployment不同的地方是,StatefulSet需要维护每一个Pod的唯一身份标识。这些Pod基于同样的spec创建,但互相之间不能替换,每一个Pod都保留自己的持久化标识。 ———- 1、使用StatefulSet的场景 对于下面的应用场景,StatefulSets是有价值的: 稳定、唯一的网络标识 稳定、持久的存储 按照顺序、优雅的部署和扩容 按照顺序、优雅的删除和终止 按照顺序、自动滚动更新 上述的稳定是持久的同义词,如果应用不需要稳定的标识或者顺序的部署、删除、扩容,则应该使用无状态的副本集。Deployment或者ReplicaSet的控制器更加适合无状态业务场景。 2、StatefulSet的限制 在Kubernetes 1.9版本之前是beta版本,在Kubernetes 1.5版本之前是不提供的。 Pod存储由PersistentVolume(storage类或者管理员预先创建)提…

Read More Read More

Kubernetes集群搭建:基于Kubeadm

Kubernetes集群搭建:基于Kubeadm

閱讀本文約花費: 16 (分鐘)一,环境准备 * K8S版本为15.1 * Docker版本最高支持18.06.1 二,Docker环境构建及替换 1,清除原Docker环境,原版本为最新版 yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-selinux \docker-engine-selinux \docker-engine rm -rf /etc/systemd/system/docker.service.d rm -rf /var/lib/docker rm -rf /var/run/docker 2,如果清除后依旧包冲突错误 file /usr/share/man/man1/docker-manifest-annotate.1.gz from install of docker-ce-18.06.1.ce-3.el7.x86_64 conflicts with file from package docker-ce-cli-1:18.09.6-3.el7.x86_64 通过yum命令手动移除冲突包 yum erase docker-common-2:1…

Read More Read More

使用Istio治理微服务入门

使用Istio治理微服务入门

閱讀本文約花費: 20 (分鐘)近两年微服务架构流行,主流互联网厂商内部都已经微服务化,初创企业虽然技术积淀不行,但也通过各种开源工具拥抱微服务。再加上容器技术赋能,Kubernetes又添了一把火,微服务架构已然成为当前软件架构设计的首选。 但微服务化易弄,服务治理难搞! 一、微服务的“痛点” 微服务化没有统一标准,多数是进行业务领域垂直切分,业务按一定的粒度划分职责,并形成清晰、职责单一的服务接口,这样每一块规划为一个微服务。微服务之间的通信方案相对成熟,开源领域选择较多的有RPC或RESTful API方案,比如:gRPC、Apache Thrift等。这些方案多偏重于数据如何打包、传输与解包,对服务治理的内容涉及甚少。 微服务治理是头疼的事,也是微服务架构中的痛点。治理这个词有多元含义,很难下达一个精确定义,这里可以像小学二年级学生那样列出治理的诸多近义词:管理、控制、规则、掌控、监督、支配、规定、统治等。对于微服务而言,治理体现在以下诸多方面: 服务注册与发现 身份验证与授权 服务的伸缩控制 反向代理与负载均衡 路由控制 流量切换 日志管理 性能度量、监控与调优 分布式跟踪 过载保护 服务降级 服务部署与版本升级策略支持 错误处理 …… 从微服务治理角度来说,微服务其实是一个“大系统”,要想将这个大系统全部落地,绝非易事,尤其是之前尚没有一种特别优雅的技术方案。多数方案(…

Read More Read More

Scroll Up