自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(39)
  • 收藏
  • 关注

原创 从零开始部署“生产级别”的主从模式Mysql

将有状态的mysql chart 部署在kubernetes 集群中,存储使用多个NFS server做生产级别的高可用部署。

2023-02-02 11:53:11 603

原创 用wiregurad打通两个Kubernetes集群

wireguard 打通kubernetes 集群

2022-10-27 16:14:11 900

原创 Crossplane详解2——编写自己的Openstack Provider

目录1. 当前的Provider 支持程度1.1 官方支持的Provider:1.2 个人针对Openstack 的支持:2. 理解crossplane-runtime3. 创建一个openstack provider总结:1. 当前的Provider 支持程度1.1 官方支持的Provider:AWS,支持最丰富,且版本总是跟着最新的Crossplane 而更新,可惜没有针对虚拟机的Managed Resource,EC2等等。阿里云,非常没有诚意,这么多云资源,只象征性的,有一个Redis

2021-09-26 15:34:18 734

原创 Crossplane 详解1——基础设施即代码

目录假设一个场景解决Crossplane详解平台开发者需要做什么假设一个场景贵司的开发团队的开发者A,需要在代码里使用AWS的S3服务,如果没有Crossplane 的话。他需要:自己注册一个AWS账户,或者拿到贵司的AWS账户去AWS上,买一个S3服务,自己填一大堆的配置。把这个S3的服务的配置放在一个secret 里,并挂载到了pod里。过了几天,贵司的另外一个开发团队开发者B,需要在代码里使用AWS的MySQL服务,他需要走完上一个同学一样的历程。又过了几天,贵司的运维同学C,想要一

2021-09-16 11:47:39 2901 1

原创 用virtual kubelet 的思路接管一个标准Kubernetes 集群的方案

1. 背景介绍把自有集群接入情况下,由于不同云环境的基础设施能力、安全架构的差异会,加大多云实施的复杂性。在云原生时代,以Kubernetes为代表的技术屏蔽了基础设施的差异性,推动了以应用为中心的多云混合云新架构的到来,我们目前只针对,拥有自建kuberntes 集群的用户,提供接入能力。2. 目标统一的集群管理能力自有的Kubernetes集群被注册到平台里,需要实现统一的安全治理、应用管理和监控、日志等能力。统一的动态弹性能力纳入的资源,必须拥有统一的资源调度视角,在此基础上提供

2021-08-27 14:04:46 571

原创 virtual kubelet 调研

1. 背景:Virtual Kubelet 是什么?Virtual Kubelet 是 Kubernetes kubelet 的一种实现,它伪装成 kubelet,目的是将 Kubernetes 集群连接到其他 API,这些API的入口被成为Provider。 这就使得 Kubernetes 的Node能够得到其他CaaS平台的支持,例如无服务器容器平台。Virtual Kubelet 不是什么?不是用来实现集群联邦的手段。它是用来扩展Node 属性到一个容器平台上。2. Virtua

2021-08-24 16:41:25 1315

原创 admiralty的部署和demo

环境准备export KUBECONFIG=kubeconfig-admiralty-getting-started部署kind: curl -sSL https://get.daocloud.io/docker | sh创建3个 集群:for CLUSTER_NAME in cd us eu; do kind create cluster --name $CLUSTER_NAME; done打节点label: for CLUSTER_NAME in us eu; do kubectl --k..

2021-03-23 11:01:19 651

原创 深入分析KubeEdge的kubectl logs---cloudstream 和 edgestream 的实现

文章目录前言背景一、总体架构二、edgestream 启动 创建websocket1. 读取本地的证书配置2. 连接cloud 端的 tunnel server三. 监听该 Websocket四. cloud的tunnel 保存session五. tunnel 监听上一步接收的wss connection六. 创建stream server 时引用了tunnel 指针七. API Server 发起`/containerLogs`八. 从api server 的请求中提取 session并往session

2020-10-23 11:49:53 3650 10

原创 深入分析kubeedge 中的EdgeMesh 通信方式

系列文章目录我还会有其他深入分析kubeedge 的文章文章目录系列文章目录前言一、EdgeMesh 的作用二、EdgeMesh 的入口三、EdgeMesh 的启动1. plugin.Install()2. listener.Init()3. proxy.Init()4.listener.Start()5. dns.Start()6. 接收beehive message总结前言目前kubeedge 1.4 的版本中,edgecore 使用service 的方式在edge node上进行管理。

2020-10-14 07:52:42 5233 2

原创 手工体验docker 是怎么管理网络的-kubelet 如何创建网络(3)

我们已经从浅入深的总结了两篇文章,来分析docker 如何利用cni 创建网络。今天我们来到终结篇,分析下kubelet 是如何利用cni 创建网络。1. kubelet 创建容器的过程我们把这张图放在这里。kubelet 是一个本地的服务,会定期watch 分配到自己头上的pod,当发现自己需要处理一个addpod 的动作的时候。会通过一个kubecontainer.Runtime去执行pod 的生命周期管理,这个Runtime 的一个实现就是kuberuntime.NewKubeGenericRu

2020-10-01 12:54:01 273

原创 手工体验docker 是怎么管理网络的-docker 直接使用CNI插件(2)

1. CNI 简介不管是 docker 还是 kubernetes,不管是在现在还是在未来,在网络方面都不会一个完美的、终极的、普适性的解决方案,不同的用户和企业因为各种原因会使用不同的网络方案。目前存在网络方案 flannel、calico、openvswitch、weave、ipvlan 还有我司的kube-ovn等,而且以后一定会有其他的网络方案,这些方案接口和使用方法都不相同,而不同的容器平台都需要网络功能,它们之间的适配如果没有统一的标准,会有很大的工作量和重复劳动。我们不可能为了一个新的网络

2020-09-28 15:13:03 1338 1

原创 手工体验docker 是怎么管理网络的(1)

由于容器运行在自己单独的network namespace里面,所以都有自己单独的协议栈。dockerd 会创建一个linux 虚拟网络设备:docker0。在启动每一个容器的时候,都会创建一种虚拟网络设备 veth-pair。veth-pair 是什么顾名思义,veth-pair 就是一对的虚拟设备接口,它都是成对出现的。一端连着协议栈,一端彼此相连着。正因为有这个特性,它常常充当着一个桥梁,连接着各种虚拟网络设备,典型的例子像“两个 namespace 之间的连接”,而这正是被docker拿来管理网

2020-09-27 17:39:26 167

原创 深入Docker容器运行时(一)

Docker容器运行时(一)你也许对Docker命令很熟悉,但是你最好还是阅读下本文。Docker 用的有多普及本文就不赘述了。今天只谈docker,不谈OCI,不谈CRI,不谈kubelet。由简入深。1. 背景自从 2013 年 docker 发布之后,docker 项目逐渐成为了一个庞然大物。为了能够降低项目维护的成本,内部代码能够回馈社区,他们于 2014 年开源了 libcontainer,docker 公司将 libcontainer 的实现移动到 runC 并捐赠给了 OCI。在 20

2020-05-12 11:31:49 2760

原创 Kubeedge概述

1. kubeedge是什么KubeEdge基于Kubernetes构建,并将容器化的应用编排和设备管理扩展到端上的主机。 它由云端和边缘端组成,为网络,应用的部署以及云和边缘之间的元数据同步提供架构支持。 它还支持MQTT,它使边缘设备可以通过边缘节点进行访问。借助KubeEdge,可以轻松地将现有的复杂机器学习,图像识别,事件处理和其他高级应用程序部署和部署到Edge。 借助在Edge上运...

2020-04-21 18:00:15 12089

原创 Kubernetes 联邦集群 kubefed v2的使用

1. 描述跨群集同步资源: 通过将多个集群组成一个联邦,可以在多个群集中的保持资源同步。 例如,可以确保多个群集中部署相同的程序。跨群集发现:联邦提供了自动配置DNS服务器和负载均衡器与所有群集后端的功能。2. 概念统一概念描述联邦一组Kubernetes集群,提供一个集群组成一个大资源的池子的接口,该接口可用于在这些集群之间部署Kubernetes应用程序。联...

2019-10-21 09:57:41 2796 2

原创 Elasticsearch索引调优和背后的原理

ES索引的调优目标ES集群的部署参数调整插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入结论引用目标灵雀云私有云平台的日志系统从4年前就在使用 Elasticsearch 作为日志的接收平台,从2.X 到 5.6 再到...

2019-09-20 15:03:45 279

原创 elasticsearch 索引翻滚

PUT /logs-000001{ "aliases": { "logs_write": {} }}修改id 写6次PUT logs_write/log/1{ "log_data": "hello ilm1"}然后发一个翻滚命令POST /logs_write/_rollover{ "conditions": { "max_age": "7...

2019-09-19 19:13:26 944

原创 Fluentd的使用入门到熟练

1. fluentdfluentd是一个针对日志的收集、处理、转发系统。通过丰富的插件系统,可以收集来自于各种系统或应用的日志,转化为用户指定的格式后,转发到用户所指定的日志存储系统之中。fluentd 常常被拿来和Logstash比较,我们常说ELK,L就是这个agent。fluentd 是随着Docker,GCP 和es一起流行起来的agent。这篇文章里概括一下的话,有以下区别:...

2019-07-25 16:01:45 20559 2

原创 filebeat + elasticsearch + kibana日志管理初探

1. 容器化部署elasticsearchdocker run -d -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:6.4.2check:curl http://127.0.0.1:9200/_cat/health2. 容器化部...

2018-10-25 16:52:08 1731

原创 如何理解灰度发布

服务升级机制  在项目敏捷开发的过程中,不可避免需要快速、安全的更新应用,目前比较流行的几种部署方案有: 滚动发布、灰度发布/金丝雀发布和蓝绿部署。滚动发布(目前中信银行内部生产环境交易系统的发布方式):  一般是取出一个或者多个服务器停止服务,执行更新,并重新将其投入使用。周而复始,直到集群中所有的实例都更新成新版本。  这种部署方式相对于蓝绿部署,更加节约资源——它不需要运行两个集...

2018-10-24 18:17:46 6153

原创 Docker容器跨主机通讯的几种方式

Docker容器跨主机通讯的几种方式前言:Docker的5种网络模式BridgeHostNoneContainerNetwork1. 直接路由方式2. 基于OVS+GRE的大二层通信前言:Docker的5种网络模式Bridge此时docker引擎会创建一个veth对,一端连接到容器实例并命名为eth0,另一端连接到指定的网桥中(比如docker0),因此同在一个主机的容器实例由于连接在同一...

2018-10-16 17:46:15 16469 2

原创 Activiti工作流引擎使用调研和一个Demo

Activiti调研以及双人复合的Demo演示1.说明Activiti是一种业务流程管理(BPM)框架,它是覆盖了业务流程管理、工作流、服务协作等领域的一个开源的、灵活的、易扩展的可执行流程语言框架。Activiti基于Apache许可的开源BPM平台,它特色是提供了Eclipse插件,开发人员可以通过插件直接绘画出业务,结合相应的业务处理代码,能够灵活handle各自复杂业务流程处理...

2018-08-25 11:49:35 426

原创 在Kubernetes集群中使用GPU用于机器学习

随着机器学习应用的普及,改善其开发和部署平台对于提高机器学习应用的应用开发、测试以及上线效率提升非常关键,目前在看很多家AI企业正在研发其自身的深度学习PaaS平台,Kubernetes作为容器编排的入口,毫无疑问是最应该被支持的。值得高兴的是,Nvidia官方以及在Github上说明如何将自家Nvidia-docker2工具和Kubernetes结合的方案,本文结合前一篇博客,做了一个简单...

2018-08-12 15:49:23 2253

原创 如何低成本的在Docker中运行TensorFlow

摘要: 运行深度学习算法的需要一些计算能力,这主要由GPU提供。 但是我想在云计算的时代几乎不会有人喜欢,从头搭建那么多复杂的技术栈,那些工具,而且一个Tesla还很贵,心血来潮买个大GPU,然后丢在那里让它生锈么?我们喜欢在在Docker容器中安装它们,以避免污染其他程序,并能够与其他人分享结果。 这意味着我必须配置Docker来使用GPU的计算能力。另外谈到低成本,我想你对阿里云或者腾...

2018-08-07 00:14:49 3569

原创 深入理解无服务器架构(Faas/Serverless)

摘要无服务器架构(Faas/Serverless),是软件架构领域的热门话题。 AWS,Google Cloud和Azure - 在无服务器上投入了大量资金,已经在看到了大量专门针对Faas/Serverless的文章、书籍,开源项目,会议。 但什么是无服务器,为什么(或不是)值得考虑? 文章参考文末链接很多,网上也能找到文章粗糙的翻译(也许因为文章实在太长了吧)原文中有些内容也不是很新,结合...

2018-08-04 18:08:15 27121 1

原创 Cronjob命令超长的处理

如果您是查crontab命令被截断的问题,请先查下命令中是否存在%没有被转义。背景在docker中启动容器,结合django-crontab,可以在容器中传入crontab job具体使用 请参考 django-crontab。然后在容器的docker-file中 CMD [“/furion/run.sh”],其中run.sh 内容大概是这样的:python manage....

2018-07-31 09:22:16 953

原创 为什么说ucosII是不可剥夺的内核

即当高优先级的任务由于时钟DLY被阻塞时,一个低优先级的任务正无限循环中。当更高优先级的任务时间片延时到0时,会剥夺低优先级任务的执行。笔者在ccs下挖根寻源,找到了它可以剥夺的原因。在此前先要了解,Ucos是实时操作系统,CPU被用来按照一个Tick,一个Tick的去执行指令,而每一个Tick是由分频的定时器产生的,每一个Tick(嘀嗒)都会引起系统的一次中断, tick&nbsp...

2018-07-31 09:21:25 687

原创 百度地图定位到了非洲的问题

使用百度地图定位官网有详细的demo。个人根据这个demo做了小改到,当即看到了结果。第二天去单位上班,一打开,发现居然定位到了非洲西海岸。晚上回到家,调了一下,发现BDLocation的getLocType返回值是一直是167。不小心打开wifi,再定位又可以定到位了。百思不得其解,又详细看了看http://developer.baidu.com/map/index.php?ti...

2018-07-31 09:20:39 5002 1

原创 android开发中内存泄漏问题总结

android开发中内存泄漏问题总结  java中存在让人省心的垃圾回收机制,但实际上内存泄漏仍然非常普遍,在应用中如果我们不再使用一个对象,但是仍然有隐藏着的引用指向这个对象,那么垃圾回收起就无法收回该对象,造成内存泄漏。android里内存泄漏不会对系统中其他应用的运行造成影响,原因是每个应用都会运行在一个独立的dalvik虚拟机进程里,android系统为不同类型的应用分配不同等级的...

2018-07-31 09:20:02 205

原创 Android访问WebService并保持会话

Android访问WebService并保持会话条件建设服务端:Axis2、Tomcat7客户端:android开发环境、ksoap2*.jarAndroid访问webService的方法  对于一个完整的应用程序,若无法保存状态,就意味着webService很难完成我们的任务。幸好,axis2为我们提供了类似web应用中session和cookie的功能...

2018-07-30 20:37:44 493

原创 IAAS分组调度算法实现

IAAS分组调度算法实现问题描述:iaas平台拿到一个调度申请,大体像这样: 请在WEB资源池中,申请100组1主1从的redis服务器,在WEB资源池中,有10台交换机,每台交换机下,可以创建的服务器数量是:[9,1,3,4,8,7,2,5,6,0,20] 为了满足用户HA(高可用)的要求,任意一组redis必须在两个交换机上,另外希望,每一次调度完成以后,可创建的服务器数量尽量...

2018-07-30 20:37:06 1219

原创 Paas如何管理对接vSphere平台

前言:Vmware 占据私有云市场的50%以上的份额,任何PASS层想做好与IAAS的对接,vmware云主机的管理是必须要去实现的,pass平台中要能够支持如下功能:1. 创建vmware云主机2. 管理云主机(启、停、删)3. 在云主机中部署容器编排集群(K8s、swarm等)4. 基于负载情况的弹性扩缩容灵雀云的Alauda EE 在17年底针对Vsphere6.5 平...

2018-07-30 20:36:27 969

原创 如何动态扩容VirtualBox根目录存储空间

以Centos7为例 Low Disk Space on “Filesystem root”缘由:某一天打开了VirtualBox虚拟机, 屏幕右上角有了如图提示,磁盘空间不足:于是查看磁盘概况:df -h 如上图我们看到,一个逻辑卷挂载的/根目录,磁盘使用率已经100%了,必须要马上扩充,LVM的存在,使得我们在线扩充磁盘空间变的非常简单。1. 从宿主机get多余...

2018-07-30 20:35:17 4403

原创 k8s 1.9.6 快速部署

部署架构说明非高可用版本master集群 192.168.8.40(master_01)node节点 192.168.8.41(node_01)必要的检查说明:CentOS 7hostname, MAC , product_uuid 唯一磁盘SWAP关闭 swapoff -ased -i ‘/ swap / s/^/#/’ /etc/fstab检查端口占用...

2018-07-30 20:33:52 898

原创 Pass平台如何用Vsphere管理虚拟机-2

Pass平台如何用Vsphere管理虚拟机-2接上篇 Pass平台如何用Vsphere管理虚拟机-1 本篇描述如何利用Vsphere API接口去实现基于Vspher的云主机管理功能。API接口描述: Python SDK for the VMware vSphere API that allows you to manage ESX, ESXi, and vCenter....

2018-07-30 20:32:21 489

原创 Faas 和无服务器架构

Faas 和无服务器架构从IaaS、PaaS、SaaS到CaaS,再到火热的微服务架构,人们孜孜不倦的追求着将硬件资源抽象化,从虚拟机到容器,再到现在的无服务器架构,FaaS是Functions as a Service的简称,代表业务方视角,而Serverless更多是从部署的视角,其实描述的是类似的事情。目前AWS的Lambda是无服务架构的代表,你可以很轻易的尝试,目前每个月的前...

2018-07-30 20:31:35 4035 1

原创 Tcp握手和挥手的抓包分析

1. 三次握手建立连接TCP是TCP/IP的传输层控制协议,提供可靠的连接服务,采用三次握手确认建立一个连接。TCP 3-Way Handshake (SYN,SYN-ACK,ACK),事例图示很多,拿来:准备一个简单的socket 代码段client.pyfrom socket import *import timeaddr = ('127.0.0.1',...

2018-07-30 20:30:27 828

原创 如何在AWS中正确使用Keepalived

虚拟IP(VIP)是一种网络模式,它允许管理员快速将IP地址从一台服务器移动到另一台服务器,而几乎不会停机,也称为浮动IP,如果手动切换服务器的速度超过DNS 的TTL时,最好配上keepalived。在私有环境中部署keepalived本身并没有好说的,但是aws中存在诸多限制,其中三个需要明确指出的: 1. VRRP协议的组播被禁止,也就是说keepalived需要调整心跳...

2018-07-30 20:28:33 5110 1

原创 搭建安全的私有Docker镜像仓库

网上有些文章写这个,但是要么告诉你直接加insecure registries,要么直接用CA作为服务的证书了,可以说很粗暴了,有些直接必须要求你设置CN,不能用IP地址。这些距离一个理想的纯私有环境的镜像仓库部署有不小差距,因此有了此文。1. 期望不需要通过设置insecure_registies的方式,在客户端随意pull/push一个私有镜像仓库源中的镜像ca证书不...

2018-07-30 20:26:27 898

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除