自定义博客皮肤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)
  • 收藏
  • 关注

原创 基于Self-Hosted模式搭建K8S可观测平台Pixie(内附填坑方法)

Pixie是基于Ebpf技术构建的一套可观测性平台,Pixie默认已经集成了许多可观测性工具,例如:我们可以清晰的通过Pixie观测到K8S内部的流量情况、DNS解析时延、TCP丢包、掉包等,同时我们还可以通过Pixie多K8S内Namespace、Pod等进行监控,当然大名鼎鼎的Cilium(一款K8S的网络插件)也可以做到,但是如果您的K8S集群不是使用到Cilium的话,使用Pixie作为K8S可观测性平台是非常不错的选择。Pixie官方主要给出了两种搭建模式,第一...

2022-01-28 00:42:48 3825 20

原创 RedHat Openshift 3.9 网络流量模型简析

我们知道Kubernetes的网络插件多种多样,常见的有Calico、Fannel、Weave等,这些网络插件的核心思想主要解决跨宿主机之间Pod的通信,近期,在对RedHat Openshift 3版本进行学习的时候,大致谅解了下其网络实现方案,今天就跟大家做一个分享,若有不正确的地方,望各位指正。一、实验环境介绍首先介绍下实验环境(图1所示),我们通过ansible脚本部署了一套openshift,其中包括三个节点,一个Master节点和两个Node节点,这三个节点通过172.25.250...

2020-09-01 16:12:54 496

原创 Ceph入门实验笔记(1)-搭建、块存储、对象存储、文件系统的基本使用

前言:我是一个之前基本没有接触过Ceph的人,平时项目中只通过对象存储 S3 API向对象存储中存放数据,所以想学习下Ceph,网上许多文章都是从Ceph的原理讲起,对于没怎么实际操作和接触过的人来说比较抽象,故按照Ceph官网和Ceph Cookbook为蓝图进行Ceph集群的搭建,希望对Ceph有兴趣的朋友也可以跟着这个教程一步步来完成基本的搭建和使用操作。Ceph的搭建方式有很多种,本文选择了比较简单的Ceph deploy的方式,其它方式的部署请见Ceph官网。本文使用的Ceph集群版本如下:

2020-08-30 00:32:19 876

原创 笔记本也能玩转Openstack:DevStack实验笔记(10)-Openvswitch+Flat

一、在Controller和Compute上修改配置文件,同时添加一个名叫br-ens38的ovs,并且把ens38网卡添加到ovs上面,重启devstack的服务。二、创建flat网络三、创建实例,VM被调度到了compute node之上,可以看到vm的tap已经接到br-int上了。四、再创建了一台VM,两台VM处于flat网络中,能够相互ping通...

2020-08-28 16:36:06 231 2

原创 笔记本也能玩转Openstack:DevStack实验笔记(9)-Openvswtich+local网络

一、要将ml2 plugin修改为OpenVswitch,首先需要修改contrller和compute的Q_AGENT选项,将原有的linuxbridge修改为openvswitch,修改后重新执行构建openstack的命令(unstack.sh和stack.sh),构建完成以后就可以看到ml2 agent已经由原有的linuxbridge修改为了openvswitch的agent二、接下来修改下/etc/neutron/plugins/ml2/ml2_conf.ini,mechanism_

2020-08-28 16:33:08 189

原创 笔记本也能玩转Openstack:DevStack实验笔记(8)-LinuxBridge+Vxlan

一、为Controller和Compute设置的ens38网卡设置IP地址,该网卡用于建立vxlan通道,可以理解为VTEP地址。二、修改neutron网络插件配置,其中l2population是用于vxlan arp代答,[vxlan]选项中要配置local_ip为ens38对应的IP地址。三、在dashboard中创建网络,这时controller 上将会创建一个网桥,并且包含vxlan100和dhcp的tap四、查看vxlan 100的网卡,可以看到开启l2_p

2020-08-28 16:27:31 148

原创 笔记本也能玩转Openstack:DevStack实验笔记(7)-LinuxBridge+Floating IP

一、绑定浮动IP能够让VM能够获得一个专属的外部网络IP地址,从而外部网络可以通过改地址访问VM首选找到需要绑定浮动IP的VM,选择绑定浮动IP选择分配浮动IP选择分配浮动IP的公网段分配完成后点“关联”,即可完成浮动IP的分配二、从底层来看浮动IP并不是分配到了VM上,VM内看不到浮动IP对应的网卡三、vRouter分析查看vRouter的网卡配置,发现浮动IP已经分配到外网接口上vRouter通过iptables单独对浮动IP和绑定的VM进行了SN

2020-08-28 16:23:40 193

原创 笔记本也能玩转Openstack:DevStack实验笔记(6)-LinuxBridge+访问外网

一、访问外网的化,需要Controller有一张单独的网卡与外网相连,这里因为采用的是虚拟机方式部署的DevStack,在VMware Workstation里面Controller有一张网卡与笔记本电脑的无线网卡采用桥接的模式。二、在Controller节点进行配置操作,将external外部网络添加到/etc/neutron/plugins/ml2/ml2_conf.ini当中,具体配置如下:(注意需要开启ens39这块外部网络网卡)三、在Dashboard中新建外部网络,注意外

2020-08-28 16:20:18 235

原创 笔记本也能玩转Openstack:DevStack实验笔记(5)-LinuxBridge+Vlan间Routing

一、之前Vlan的网络已经搭建起来了,现在需要通过路由器将他们连接起来实现不同vlan间的路由二、本实验环境只能通过虚拟路由器来实现两个不通VLAN之间的路由功能,我们再安装openstack的时候已经再controller节点安装了l3 agent.三、创建一个虚拟路由器,并将vlan100和vlan200的interface加入到路由器当中四、网络拓扑变化成如下所示五、从vlan100的vm ping vlan 200的vm ,可以互相ping通六、观察vRo

2020-08-28 16:14:30 167

原创 笔记本也能玩转Openstack:DevStack实验笔记(4)-LinuxBridge+Vlan网络

一、首先要将Vmware Workstastion开启网卡混杂模式,开启方式如下:二、修改配置文件,并设置VLAN的网络三、创建VLAN 为100的网络,同时可以看到创建完成网络后,在controller节点创建了网桥四、Openstack中的实验拓扑相同vlan互相ping可以通信不通vlan之间不能互通(注意:要检查使用vlan的网卡是否启动,如果没有启动则需要通过sudo ifconfig ensxx up 来启动)...

2020-08-28 16:10:17 166

原创 笔记本也能玩转Openstack:DevStack实验笔记(3)-LinuxBridge+Flat网络

1、修改配置修改Controller Node和Compute Node 的配置文件,使用flat网络,/etc/neutron/plugins/ml2/ml2_conf.ini2、在Horizon上配置FLAT网络3、在FLAT网络上配置VM,从Controller Node和Compute Node观察,调度到Controller Node的VM,Controller Node会创建Linux Bridge和dhcp,如果VM被调用到Compute Node上,Compu

2020-08-28 16:05:04 194

原创 笔记本也能玩转Openstack:DevStack实验笔记(2)-LinuxBridge+Local网络

完成Devstack搭建以后来做第一个实验,使用Linux Bridge+Local方式构建网络注意:首先在启动VM的时候报错,需要进行如下调整创建虚拟机报错:Host is not mapped to any cellnova-manage cell_v2 discover_hosts --verbose1、首先修改Controller和Compute的配置文件( /etc/neutron/plugins/ml2/ml2_conf.ini)将租户级别创建的网络类型限定为local,Op

2020-08-28 15:57:41 265

原创 笔记本也能玩转Openstack:DevStack实验笔记(1)-安装和部署

一、实验环境介绍 本文通过Devstack重点来学习Openstack的网络模型,包括bridge模式下和openvswitch模式下网络流量模型,由于要搭建完整的openstack环境很复杂,同时需要很多物理资源,作为没有设备资源又想学习的同学,可以参考本文的模式进行搭建。 另外说一下,虽说目前大家都开始讨论和使用Kubernetes,但是Kubernetes和Openstack的网络模型还是有相似之处,学习Openstack流量模型还是有一定意义的。 在vmware workstati...

2020-08-28 15:52:09 669

原创 Apollo配置中心Client源码学习(二)-- 配置同步

上一篇文章(https://blog.csdn.net/crystonesc/article/details/106630412)我们从Apollo社区给出的DEMO开始逐步分析了Apollo客户端配置的创建过程,作为Apollo配置中心Client源码学习的第二篇文章,我们继续学习,来看看在通过ConfigFactory创建Config后,Config如何来获取配置信息的。 我们知道Apollo的DefaultConfigFactory会调用create方法来创建默认的DefaultCon...

2020-06-17 13:55:47 1529

原创 Apollo配置中心Client源码学习(一)--配置的创建和获取

随着越来越多的应用进行了微服务化改造以及相同的应用程序对不同环境(开发、测试、生产环境)、不同部署集群的需求,将应用中的配置与程序解耦变得越来越重要,在过去,我们的配置文件往往和程序捆绑在一起,当需要修改配置文件时,需要对应用程序进行重新打包的操作,从而导致了应用发布效率的降低。Apollo是携程开源的一套配置中心框架,也是目前使用较多的配置中心之一,本系列文章本着学习的态度,逐步由简单到复杂对Apollo配置中心源码进行学习,从而帮助需要了解配置中心和提高代码编写能力的朋友。废话不多说,我们接下来开始从A

2020-06-08 23:59:28 1540 2

原创 菜鸟学源码之Nacos v1.1.3源码学习-Client模块(2):NacosConfigService

上一篇博客我们基于Nacos源码中的example模块里的app类学习了NacosNamingService相关的内容:https://blog.csdn.net/crystonesc/article/details/100530292接下来我们继续以ConfigExample为入口,学习下Client模块中关于配置相关的类。首先把ConfigExample代码贴出来:public clas...

2019-09-14 23:26:16 3597 1

原创 菜鸟学源码之Nacos v1.1.3源码学习-Client模块(1):NacosNamingService初始化

一.源码下载1.首先Fork一份Nacos源码到自己的github账号下面。2.用git clone自己账号下的github项目到本地。3.本地创建一个用于学习的分支,方便自己对源码进行一些标注,同时不会污染到主干分支的源码。4.另外还可以创建一个开发的分支,以便进行一些源码的修改。5.在本地搭建一套Nacos的运行环境,以便进行运行测试和调试。二.从何入手1.Nacos的源码采用的...

2019-09-03 23:49:01 8128

原创 基于eNSP的企业PON入云网络模拟

当前运营商纷纷基于各自的网络推出企业上云方案,其中企业上云的第一步便是网络,如何将用户侧的网络与云端网络打通,本文推测并模拟了一种接入方案,该方案基于PON并通过VPLS接入云侧:如上图所示,User Client位于用户侧的内网中,通过User Switch上联到ONU,ONU进一步上联到接入侧的OLT设备上面,OLT与MSE进行连接,并通过城域网与核心路由器CR相连,CR通过PON网关与云...

2019-08-15 23:59:46 4365

原创 记一次因Druid数据库连接池配置引起的问题

阿里开源的数据库连接池Druid想必大家都听说过或者用过,最近公司有个项目用到了这个连接池,但是由于连接池配置不正确,导致连接池最大连接数采用了默认值,导致了应用响应慢以及响应大量超时的问题,以下记录阐述该问题:1.应用的同事告知,应用部署上线后,对应用进行请求测试,测试发现,对于用户的请求,响应非常的慢,甚至出现长时间无响应的情况。2.于是通过之于应用中的调用链工具,发现应用均请求超时而失败...

2019-05-17 00:03:38 5745 1

原创 Alpine-Linux中解决OpenJDK验证码无法显示(java.lang.NullPointerException at sun.awt.FontConfiguration.getVersion

前的文章介绍了基于Centos的OpenJDK验证码问题https://blog.csdn.net/crystonesc/article/details/86305466由于公司环境采用Alpine-Linux容器环境,如果按照之前的文章进行操作,在Alpine-Linux环境下仍然会出现无法显示验证码,今天仔细研究了下Alpine-Linux下如何解决OpenJDK验证码问题,解决方案如...

2019-05-15 00:18:06 3391 5

原创 Docker容器以及Kubernetes内应用日志采集方案介绍与实践

本文主要分为两部分,第一部分介绍容器内日志收集主要的解决方案和思路,并对各个解决方案的优劣进行比较。第二部分将分别详细介绍基于Fluentd的Sidecar模式日志采集部署方案和基于filebeat集成应用基础镜像的日志采集方案。注意:本文重心在于介绍容器内应用日志的收集方案,并不针对于对于容器引擎或者kubernetes本生系统日志收集。第一部分:容器内日志收集主要的解决方案和比较方案1.在...

2019-03-20 01:05:50 1609

原创 OpenJDK验证码无法显示(java.lang.NullPointerException at sun.awt.FontConfiguration.getVersion

之前开发的应用都是基于OracleJDK 1.8来做的,图片验证码显示正常,但是更换成OpenJDK1.8后,验证码无法显示,后台代码抛出异常,异常内容如下,java.lang.NullPointerException at sun.awt.FontConfiguration.getVersion(FontConfiguration.java 1264)可以看到,猜测是因为验证码的API用到了...

2019-01-11 16:28:35 25902 16

转载 CentOS 7搭建openldap+phpldapadmin

写在前面:本文引用http://blog.51cto.com/11555417/2065747内容,笔者依照该博客内容进行Openladp的搭建,遇到问题也记录下来,分享给大家.1.初始化准备系统centos7 64位配置yum源wget http://mirrors.aliyun.com/repo/Centos-7.repo cp Centos-7.repo /etc/yum....

2019-01-03 00:42:04 855

原创 ServieMesh框架Istio案例学习-1

ServiceMesh的理念从根本上将分布式框架中的服务注册/发现,服务治理,管理等内容从应用中分离出来,由SideCar来提供分布式框架中数据面的功能,让应用只关注其业务本身,简化了应用开发,其思想类似于SDN,我认为是未来分布式框架演进的方向。本文记录了笔者学习Istio官网文档中Example的过程,有误的地方请指出。首先给出Bookinfo Application的应用架构图,如图所示,...

2018-11-03 23:20:59 808

原创 Kubernetes CoreDNS Plugin/loop:Seen "HINFO IN xxxxxxx." more than twice,loop detected 问题解决方法

前几天在自己的实验室环境里面搭建了一个简单的k8s环境,该环境是基于kubeadm搭建的single master节点,并且有两台计算节点。可是环境搭建好了以后,CoreDNS一直存在报错,查看coredns日志,报错内容如下:于此同时我还观察到coredns的pod一直在不停的重启,如下图所示:折腾了两天,一直没找到原因,先前以为是k8s的网络插件的问题,后来换了calico和flann...

2018-10-25 22:28:56 6245 6

原创 Kubernetes基础学习笔记--基于kubeadm的部署(避坑大全)

  本文详细介绍了通过kubeadm来部署一个简单的k8s集群,集群只有一个master和3个node节点,这种部署方式应该只适用于测试环境,本文是依据k8s的官方文档而来,有兴趣的同学可以参考,本人因初学K8S,文中的纰漏还望各位大神指出

2018-06-07 00:59:09 3365 2

原创 Raft一致性框架_Copycat基础学习(一)

Copycat is a fault-tolerant state machine replication framework. Built on the Raft consensus algorithm, it handles replication and persistence and enforces strict ordering of inputs and outputs,

2017-11-12 13:40:05 4092 1

原创 SDN控制器Floodlight--容错部署(FT)

很久没写了,最近太忙没来及学习了。最近看了下Floodlight的容错部署方式,在官网上有专门的介绍: (https://floodlight.atlassian.net/wiki/spaces/floodlightcontroller/pages/36143107/How+to+Add+Fault+Tolerance+to+the+Control+Plane) 但是我在实际操作过程中还是遇到些

2017-11-01 16:15:44 1172 4

原创 SDN控制器Floodlight源码学习(八)--转发模块(Forwarding)

很久没更新了,今天来学习下Forwarding模块,先看看官网上对这个模块的说明: Description Forwarding will forward packets between two devices. The source and destination devices will be classified by the IDeviceService. How it wo

2017-08-04 14:19:43 2851 4

原创 SDN控制器Floodlight源码学习(七)--拓扑管理模块(TopologyManager)

之前学习了floodlight链路发现模块: http://blog.csdn.net/crystonesc/article/details/71157887今天来着手学习floodlight拓扑管理模块,实际上拓扑管理模块会在网络发生变动(例如新添加了交换机、交换机端口改变)的时候自动计算网络拓扑,并生成相应的拓扑结构,同时floodlight拓扑管理模块计算拓扑数据的来源是链路发现模块通过

2017-05-31 22:45:37 4702 1

原创 SDN控制器Floodlight源码学习(六)--链路发现模块(LinkDiscovery)

前面的文章我对Floodlight的模块加载、控制器与交换机通信、控制器分发数据包进行了探索,今天开始继续Floodlight源码探索之旅,今天研究下面这两个包,也就是控制器对链路的发现: net.floodlightcontroller.linkdiscovery net.floodlightcontroller.linkdiscovery.internal我们知道Flood

2017-05-04 09:09:41 4553

原创 SDN控制器Floodlight源码学习(五)--控制器和交换机交互(3)

上两篇诣在说明控制器和交换机的交互,但是感觉还是没有理的特别清楚 http://blog.csdn.net/crystonesc/article/details/70143117 http://blog.csdn.net/crystonesc/article/details/70170482今天打算结合openflow协议和代码来说明,openflow版本较多,我选了具有代表性的1.0和

2017-04-27 16:43:38 1243 2

原创 SDN控制器Floodlight源码学习(四)--控制器和交换机交互(2)

上一节学习了 SDN控制器Floodlight源码学习(三)–控制器和交换机交互(1) http://blog.csdn.net/crystonesc/article/details/70143117今天接着上一节的线索往下看,上一节我们看到这里,代码如下:class CompleteState extends OFChannelState{ CompleteState() {

2017-04-14 11:24:11 1255 3

原创 SDN控制器Floodlight源码学习(三)--控制器和交换机交互(1)

之前学习了Floodlight控制器工作机制: http://blog.csdn.net/crystonesc/article/details/69055341今天来学习控制器怎样与交换机进行交互的。 说到控制器如何来管理连接的交换机,Floodlight中有一个重要的类: net.floodlightcontroller.core.internal.OFSwitchManager 以下

2017-04-12 15:22:57 3906

原创 SDN控制器Floodlight源码学习(二)--控制器(1)

之前学习了Floodlight的模块加载: http://blog.csdn.net/crystonesc/article/details/68483960今天来看看控制器是怎么运行的,我们来看看FloodlightProvider这个模块,直接看这个类里面主要的一些代码:public class FloodlightProvider implements IFloodlightModule

2017-04-04 09:01:38 1559

原创 SDN控制器-POX学习(一)

本文实验环境: 1.VirtualBox 2.SDN Hub tutorial VM 64bit学习目标: 1.熟悉SDN Hub tutorial 2.学习POX提供的样例代码:tutorial_l2.hub.pySDN Hub tutorial就不多介绍,官方的介绍如下: All-in-one SDN App Development Starter VM 翻译成中文就是一款集所有SD

2017-03-31 21:38:33 1751

原创 SDN控制器Floodlight源码学习(一)-模块加载

**本文通过在代码中注释的方式对Floodlight源码进行学习,同时若遇到关键点,会对关键点进行单独的详细分析. Floodlight是一款开源的SDN控制器,我们从模块的加载开始学习,以下为加载模块的关键代码:** 分析1:main函数public static void main(String[] args) throws FloodlightModuleException {

2017-03-30 10:29:32 5048 3

原创 Algorithm 第四版课后习题1.4.15(2)

一.题目内容: 对已排序数组进行 three-sum-faster 二.实现方式: 首先将数组进行排序,然后设置三个指针,位置为数组头部(lo),数组尾部(hi)和数组尾部-1(k),然后计算三个数相加的结果: 1.如果相加的结果大于0,则说明右边的两个数之和明显大于左边的,则将k–. 2.如果相加的结果小于0,则说明左边的数负的太厉害,所以lo++.

2017-02-21 17:22:04 622

原创 Algorithm 第四版课后习题1.4.15(1)

1.题目内容:对已排序的数组进行2-Sum 实现方式:对数组进行排序,分别设置两个指针在数组头部和尾部,将两个数相加,观察相加后的结果 1.如果结果大于0,说明右边元素的绝对值大于左边元素的绝对值,则右边的指针-1 2.如果结果小于0, 说明左边元素的绝对值大于右边元素的绝对值,则左边的指针+1 3.如果结果等于0,则需要找到数组中有多少和左边元素和

2017-02-21 17:11:28 693

空空如也

空空如也

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

TA关注的人

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