自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【kubernetes】Deployment中的pod如何进行域名解析

背景假设一个名为ws的无状态服务,在业务代码中,服务需要根据hostname解析本机ip,并绑定端口启动监听进程, 例如:import socketdef get_hostname(): with open("/etc/hostname") as f: return f.read().strip()ip = socket.gethostbyname(get_hostname())server = socket.socket(socket.AF_INET, soc

2021-04-25 21:37:45 288

原创 【kubernetes】k8s利用coredns解析集群外部域名

kube-dns简介众所周知,在一个kubernetes集群中,各服务之间可以通过各自的FQDN互相访问,而集群中的kube-dns服务为此提供了域名解析的功能, 使用如下的命令可以看到root@cxy:~# kget svc -n kube-systemNAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGEkube-dns ClusterIP 10....

2021-04-08 22:23:33 421

原创 【kubernetes】Ubuntu16.04.5下kubernetes高可用集群搭建

基本参数系统版本: Ubuntu 16.04.5 执行用户: root 必须的软件包及版本ii kubeadm 1.20.4-00 amd64 Kubernetes Cluster Bootstrapping Toolii kubectl 1.20.4-00

2021-02-27 14:24:38 66

原创 [杂记]odoo14 自定义Module搜索不到的问题

版本: odoo 14问题:按照官网提示步骤无法找到对应路径,且无法搜索出自定义的Module “academy”。按照文档运行下面的命令后,在页面上搜索不到academy./odoo-bin scaffold Academy my-modules./odoo-bin --addons-path addons,my-modules解决方案:先任意安装一个Module, 如CRM:安装后,点击左上角的settings在General Settings选项最下面,点击“A

2020-12-03 16:38:55 240

原创 【网络】叶脊(Spine-Leaf)网络拓扑下全三层网络设计与实践(七) - 负载均衡及高可用

7.负载均衡及高可用7.1 本节目标理解spine leaf网络下,服务高可用及负载均衡原理; 学习在leaf交换机和服务器上进行相关配置;7.2 方案对比在二层网络中,长长采用主备的方式保证服务的高可用,而spine leaf网络下则是采用多活的方式,克服了在全三层网络中不能使用keepalived等HA软件的缺陷,还且实现了负载均衡和高可用。7.2.1 主备方式...

2020-03-12 20:54:01 1680

原创 【网络】叶脊(Spine-Leaf)网络拓扑下全三层网络设计与实践(六) - 虚拟机路由方案及配置

6.虚拟机路由方案及配置在虚拟化的数据中心中,虚拟机承载着关键业务,其相互之间的通信必不可少,虚拟机的网卡桥接在宿主机的网桥上,以宿主机的IP地址作为默认网关,同一物理机上的虚拟机之间的通信,直接通过宿主机网桥可二层互通,不同宿主机上的虚拟机通信经过三层转发互通。6.1 本节目标理解VM直接的通信过程; 学习在leaf交换机上配置VM的路由; 学习在VM及其宿主机上配置VM的路由...

2020-03-12 17:54:17 2348

原创 【网络】叶脊(Spine-Leaf)网络拓扑下全三层网络设计与实践(四) - 物理服务器互联

4.物理服务器互联4.1 本节目标理解在spine leaf网络中,物理服务器之间通信方式; 了解如何在leaf交换机上配置下联物理机的接口; 了解如何在物理机上配置上联物理网卡;4.2 拓扑结构在上一节的基础上,加入4台服务器,以下图的拓扑连接到leaf交换机上,leaf交换机没两个分为一对,连接一组物理服务器,如下图,leaf01/02为一对,leaf03/04为一对。...

2020-03-12 17:31:02 1860

原创 【网络】叶脊(Spine-Leaf)网络拓扑下全三层网络设计与实践(三) - 交换设备互联

3. 交换机互联3.1 本节目标了解Spine Leaf网络基本拓扑结构; 网络设备互联接口配置; 网络设备bgp配置;3.2 拓扑结构:如下图所示, 本节使用的Spine Leaf网络拓扑,由2台Spine和4台Leaf组成,Spine和Leaf之间两两互联。为方便管理,加入一台linux主机用于管理各交换机设备,则拓扑如下:3.3 测试环境6台交换机(即Sp...

2020-03-12 16:42:28 2380

原创 【网络】linux网口bond的链路检测及恢复机制

近期的项目中遇到了这样一个问题,引发了笔者对linux bond和lacp协议的一些研究:情景:如上图所示,server有两张网卡配置了bond0, 工作在mode4负载均衡模式下, 现在从client对server进行持续的ping测试,发现:插拔server端物理网口的网线时, ping一直正常,无丢包; 用ifconfig down enp4s0f0/1 来关闭物理网口时...

2020-03-11 17:59:07 1798

原创 【网络】叶脊(Spine-Leaf)网络拓扑下全三层网络设计与实践(五) - 物理服务器路由方案及配置

2.2 路由方案设计2.2.1 物理设备路由方案大道至简,本着这个原则,本文的设计只采用了静态路由和BGP两种路由协议。其中,静态路由配置在每个leaf上,调度目的地址为本leaf上所接服务器的业务IP的流量,每个leaf与其相连接的spine之间建立eBGP链接,将leaf上配置的静态路由同步到spine上,各leaf通过spine,也互相学习到了各自的静态路由,这样一来,每个leaf和...

2019-08-26 16:37:29 4975

原创 【网络】叶脊(Spine-Leaf)网络拓扑下全三层网络设计与实践(二) - 网络规划

2. 全三层架构设计思路采用全三层网络架构设计的出发点是:使用尽量少的交换机高级功能,可以尽可能减少由于功能bug故障造成的问题; 使用尽量少的网络协议,以兼容不通厂商的网络设备 实现简单,易于维护,绝对可靠的路由协议; 通过控制路由来调度流量,尽量减少设备或协议的故障域; 牺牲高级功能带来的便捷,得到更高的可用性和性能;由上述原则,本文的设计选择只使用静态路由和BGP...

2019-08-22 10:51:05 9833

原创 【内核】Linux内核参数ignore_routes_with_link_down-忽略已断开连接的路由

需解决的问题在上图的拓扑中,我们希望达到的效果是:对于除了两个网卡的ip所在网段的路由,全部作为默认路由,以ECMP(等价多路径)的方式,从两张网卡发送出去; 当其中一张网卡link down时,忽略该网卡的路径,流量只从link up的网口发出去;服务器的两张网卡分别属于两个不同的三层网络,分别是:2: eth0: <BROADCAST,MULTICAST,UP,L...

2019-08-01 17:42:18 391

原创 【网络】叶脊(Spine-Leaf)网络拓扑下全三层网络设计与实践(一) - 叶脊网络架构简介

1. 叶脊网络架构简介天地万物,应运而生。传统的三层网络架构,在发展了多年后,终于也命数将尽了,替代它的,将是叶脊网络架构。究其原因,是因为传统三层网络架构自身存在一些无法突破的限制与弊端,在当今云计算风起云涌,虚拟化如火如荼,数据中心越来越大,网络规模需要无限扩展的时代,叶脊网络架构应运而生。1.1 传统三层网络的弊端如上图是传统三成网络架构的典型拓扑结构:接入层:接入交换...

2019-08-01 15:32:08 24990

原创 【内核】Linux内核参数group_fwd_mask-设置bridge过滤MAC地址范围

笔者在利用gns3模拟器搭建网络实验时,发现交换机设备和服务器之间无法成功协商LACP协议,CISCO NEXUS 9K互相之间却可以成功协商LACP, 在交换机和服务器上抓包发现,Nexus 9K发出的LACP报文中的目的MAC地址为00:01:02:03:04:05(而标准LACP协议中规定的是01:80:c2:00:00:02),服务器发出的LACP报文的目的MAC是01:80:c2:00:...

2019-07-23 17:11:51 1024

原创 Keepalived虚拟ip不漂移问题

Keepalived主要是通过虚拟路由冗余来实现高可用功能。本文将不对keepalived的基本原理进行阐述,可参考文章Keepalived详细介绍简介、keepalived vip漂移基本原理及选举算法。本文记录了在实践过程中使用keepalived时,在weight值变化的情况下vip不漂移的问题及解决方法。场景3个keepalived节点, vip为172.31.23.6...

2019-04-21 11:35:24 6923 1

原创 Jenkins触发远程Job的几种方式

本文叙述基于以下假设前提,将介绍三种在不同的jenkins服务器之间触发Job的方法:本地Jenkins Server local.jenkins.com 远程Jenkins Server remote.jenkins.com 本地Jenkins Job名 local_job 远程Jenkins Job名 remote_job 需求 ...

2018-09-25 16:12:34 19242

原创 【容器】Docker之Mac下host与container之间Volume映射问题

问题描述:Mac下运行docker容器时,其卷挂载方式与在普通Linux上不同,普通Linux上host与container之间Volume映射关系可参考这篇文章。本文中container的名字是graphite,用命令行查看container的volume挂载情况:➜ ~ docker inspect graphite......"Mounts": [ ...

2018-09-20 15:38:35 7797 6

原创 从Synthesize安装Graphite步骤

问题按照Graphite官网上用Synthesize安装Graphite的步骤(或Synthesize Github上的安装步骤)安装后,Graphite的Web UI不能正常工作,经过尝试,发现需要一些额外配置错误详情及解决方法:1. 从synthesize安装,github地址: https://github.com/obfuscurity/synthesize/➜ ~ g...

2018-09-20 13:36:09 201

原创 TCP代理的python实现(包括客户端/服务器/TCP代理三部分代码)

最近一直跟随《Python黑帽子》一书学习网络编程,在实现TCP代理功能的这一节,书中是直接使用FTP客户端和服务器进行测试,为了更深刻的理解通信过程,我们可以自己编写一个socket服务端和客户端来进行测试,同时需要对书中的代码进行一些改动,以适应我们自己编写的服务端和客户端。1.TCP代理用socket方式实现TCP代理,代理方作为客户端和服务端之间通信的桥梁,连接建立过程大致

2017-12-10 21:37:54 3884

原创 如何SSH登录Kali Linux

普通的Linux版本开启ssh功能:只需要修改/etc/ssh/sshd_conf文件,搜索PasswordAuthentication,将这一行注释去掉,改成PasswordAuthentication yes搜索PermitRootLogin,将这一行注释符号#去掉,改为PermitRootLogin yes重启ssh服务:service sshd restartKal

2017-12-09 22:01:16 383

原创 Mezzanine怎样为BLOG创建分级目录

使用Mezzanine制作个人BLOG时,进入ADMIN页面会发现只能简单的添加Blog Post, 所有添加的Blog Post都会在Blog这个页面下显示,但实际情况下,我们往往希望将BLOG进行分类,每个分类的Blog在对应的分类目录下显示,那么怎么在Mezzanine中实现这个功能呢,本文将介绍笔者实现的方法。Step1 创建分类目录分类目录是BLOG目录的子目录,因此,在

2017-12-07 20:08:33 910

原创 Mezzanine多site管理问题

在学习mezzanine的过程中遇到了多site管理的问题。本地服务器ip地址为192.168.0.105,端口为9000. 在浏览器中输入192.168.0.105可以正常访问网页。做了端口映射后通过域名(owenchenxy.vicp.io)访问站点则出现404错误。图1 站点选择为owenchenxy.vicp.io时的page内容图2

2017-12-07 20:07:40 312

原创 使用uwsgi代理mezzanine站点发生import error的解决办法

尝试用uwsgi代理mezzanine站点时Server internal error,查看服务器命令行发现Import Error,比如:ImportError: No module named mezzsite.settingsImportError: No module named mezzsite.urls这是因为,在创建mezzanine项目时,会有一个问题,比如我们

2017-12-07 20:07:02 312

原创 django+nginx+uwsgi+virtualenv部署站点示例

按照uwsgi官方文档部署nginx-uwsgi-django的过程中遇到了很多问题,官方文档可能存在错误或不全,比如:nginx配置文件没有写http{}和event{}部分,是无法启动nginx服务的nginx配置文件中也没有指定用户和MIME格式,这会导致网页不能正确加载静态文件(css/js);官方给出的例中使用了virtualenv,如果是在真实环境中运行uwsgi,将出现Imp

2017-12-07 20:05:47 3080

原创 Web部署到Nginx后静态文件加载不正常(MIME TYPE问题)

问题:在没有将网站部署到nginx之前,一切运行正常,将网站部署到nginx之后,网页可以打开,但样式全都没有加载,浏览器里按下F12键,console有报错:Resource interpreted as Stylesheet but transferred with MIME type text/plain证明文件已经被找到,但是解析的格式不正确,由于这个问题是部署到n

2017-12-07 20:04:25 21244 5

原创 Mezzanine多site管理问题

在学习mezzanine的过程中遇到了多site管理的问题。本地服务器ip地址为192.168.0.105,端口为9000. 在浏览器中输入192.168.0.105可以正常访问网页。做了端口映射后通过域名(owenchenxy.vicp.io)访问站点则出现404错误。图1 站点选择为owenchenxy.vicp.io时的page内容图2  站点选择为192.168时的

2017-12-01 00:32:25 616

翻译 【容器】Docker之应用数据管理(volume/bind mount/tmpfs)

英文原文链接:https://docs.docker.com/engine/admin/volumes/#tips-for-using-bind-mounts-or-volumes虽然我们可以在docker容器中保存写入的数据,但还是有这样几个不足:容器中的数据会随着容器的停止运行而消失, 而且当其他的进程需要这些数据时,很难将这些数据从容器中提取出来;容器的数据写入层是紧密地对应

2017-11-26 10:05:51 4182

原创 【容器】Docker之docker-compose部署django+mysql示例

本文介绍如何用docker-compose部署django+mysql搭建网站。Step1: 安装docker-compose,并为docker-compose添加执行权限:[root@localhost docker]# sudo curl -L https://github.com/docker/compose/releases/download/1.17.0/docker-compo

2017-11-24 17:48:58 2039

原创 【容器】Docker之django+mysql简单部署示例

拓扑:1. 在CentOS7上,django项目目录为/smb/public/eclipse-workspace/DjangoProj/djcode/mysite, 映射到容器django中的目录为/tmp2. 在CentOS7上,mysql数据库对应的目录为/var/lib/docker/volumes/mysql,映射到容器mysql中的目录为/var/lib/mysql步

2017-11-24 15:47:26 1896

原创 【容器】Docker之mysql容器数据库更改不生效的解决方法

问题:在docker中启动mysql容器,在mysql容器中对数据库的更改(如创建数据库,更改数据等),在commit后再次进入容器发现之前的更改全部没有保存,如:步骤如下:1.后台运行mysql容器,设置容器名称为mysql:[root@localhost ~]# docker run --name=mysql -p 3306:3306 -d owenchen1992/mysql

2017-11-24 12:03:29 6542 6

原创 【容器】Docker之创建并进入mysql容器

本文介绍docker如何创建并进入MYSQL容器。1.运行“docker pull mysql”获取mysql镜像[root@localhost ~]# docker pull mysqlUsing default tag: latestlatest: Pulling from library/mysql85b1f47fba49: Pull complete 5671503d4f...

2017-11-24 09:46:57 24418 3

原创 MySQL导出performance_schema

问题:迁移MySQL时导出performance_schema数据库报错:[root@cncshuangb11d2c ~]# mysqldump -u root -p performance_schema>performance_schema.sqlEnter password: mysqldump: Got error: 1142: SELECT, LOCK TABLES command

2017-11-23 20:21:59 716

原创 CentOS 7 安装Oracle VirtualBox

在学习docker的过程中,如果是Linux操作系统,创建docker machine 时需要在linux下安装virtualbox的驱动,有如下命令:docker-machine create --driver virtualbox myvm1安装步骤如下:1.运行下面的shell,将ol7_addons(Oracle Linux的源)添加到yum源:cat << EOF | sud

2017-11-22 12:21:34 6017 1

空空如也

空空如也

空空如也

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

TA关注的人 TA的粉丝

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