自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(44)
  • 资源 (1)
  • 收藏
  • 关注

原创 Ingress 兼容https & http 跨域配置access-control-allow-origin

Ingress 兼容前端https & http 跨域配置access-control-allow-origin场景说明:前端域名a.com访问后端b.com域名,其中b.com使用Ingress配置,需要支持http://a.com和https://a.com两种前端域名跨域方式访问b.com。一、使用Ingress原生跨域Annotations配置只可满足其中一种情况注意,官方最新的文档cors-allow-origin支持配置多个域名,但在我们使用的比较旧的版本0.32中配置两个直接被

2022-03-29 15:39:25 6834

原创 AlertManager运行机制分析与配置文件分析

AlertManager运行机制总结与配置文件分析

2021-12-18 15:25:05 1132

原创 Dubbo-go Consumer调用Dubbo-java Provider

Dubbo-go Consumer调用Dubbo-java Provider一、必要说明需求: 实现golang客户端调用java服务端dubbo接口发送短信的功能服务端使用Java语言提供了短信发送的Dubbo接口(基于Dubbo 2.7.*)客户端基于dubbo-go 1.5.2-rc2调用以上Java提供的Dubbo Provider客户端要想使用dubbo-go 3.0,Provider也必须使用dubbo-java 3.0二、根据Java Provider Interface定义对

2021-09-19 16:50:45 1084

原创 Kubernetes JVM 默认参数验证

Kubernetes JVM 默认参数验证结论:默认最大、最小堆内存,最大年轻代内存的设置(Xmx/MaxHeapSize,Xms/InitialHeapSize,Xmn/MaxNewSize)只和Limit配置有关最小堆内存的默认值为Limit的 (1/64)最大堆内存的默认值为Limit的 (1/2)一、设置了Xmx Xms Xmn参数的情况[root@testsophon-v1-6cffc57fc6-lkhf7 java]# jps83 Jps27 jar[root@testso

2021-08-23 09:33:11 874 1

原创 client-go 之informer理解

Infromer类图概览:一、cache 包中的SharedInformer接口主要功能:给其客户端提供一个给定资源对象集合的最终一致性访问接口1、内部维护了一个本地缓存,通过GetStore()暴露,该接口的实现sharedIndexInformer同时通过GetIndexer()暴露,接口SharedIndexInformer包含了SharedInformer;2、本地缓存刚开始是空的,在调用Run()过程中被填充或更新,Run()保证本地缓存和ApiServer的最终一致性3、存放在St

2021-04-07 14:42:43 974

原创 Golang Option设置模式

Golang Option设置模式Kubernetes、etcd等开源golang项目中经常见到的设计模式之一,常在给应用启动设置参数中见到:type Client interface { Conn()}type DBClient struct { timeout int retryTimes int}func (c DBClient) Conn() { // Do SOMETHING}type ClientConnOption func(*ClientConnOptio

2021-03-24 19:37:01 587

原创 kubeedge 安装部署(适用于Ubuntu)

kubeedge 安装部署(适用于Ubuntu)基础环境:安装了Ubuntu 18.04操作系统的两台虚拟机 (查看操作系统版本命令:cat /etc/os-release)部署kubeedge1.1.0版本根据keadm源码安装部署步骤整理(无法直接使用keadm工具完成部署)一、配置源,写入以下内容到 /etc/apt/sources.listroot@ubuntu:...

2019-11-14 21:24:25 4811 3

原创 Harbor镜像清理(包含清理无tag的镜像)

Harbor镜像清理(包含清理无tag的镜像)背景:harbor镜像仓库中推送过很多相同tag的镜像,无法通过harbor的UI界面执行删除一、进入harbor安装目录,停止harbor服务root@ubuntu:/home/harbor/make# lscommon docker-compose.clair.yml harbor...

2019-08-02 20:31:10 4273

原创 golang将IP格式的掩码转换为整型数字

// 将ip格式的掩码转换为整型数字// 如 255.255.255.0 对应的整型数字为 24func ipMaskToInt(netmask string) (int, error) { ipSplitArr := strings.Split(netmask, ".") if len(ipSplitArr) != 4 { return 0, fmt.Errorf("netmask:...

2019-07-12 14:24:16 3516

原创 修改K8S Master节点IP后使用kubeadm join无法添加节点

修改K8S Master节点IP后使用kubeadm join无法添加节点背景: 目前接了一个需求:修改使用kubeadm部署好的K8S环境所在服务器IP。很明显,修改服务器IP后,kube-apiserver等服务是无法启动的。在使用脚本重新生成了apiserver证书等一系列操作后,将所有的服务恢复后,测试使用kubeadm join添加新的节点一直失败,看日志是kubeadm期间会使用到...

2019-07-11 16:15:44 11080 1

原创 configmap中json或者yaml文件内容格式问题

configmap中json或者yaml文件内容格式问题一、问题现象说明:比如我有一个yaml格式的配置文件config.yaml,内容如下:service: port: 8001 # release mode: release url: kube-prometheus.monitoring port: 9090common: file: upload: /...

2019-04-24 14:13:51 8157

原创 kubelet inotify 资源耗尽解决

kubelet inotify 资源耗尽解决日志现象: Failed to watch directory "/sys/fs/cgroup/blkio/system.slice": inotify_add_watch /sys/fs/cgroup/blkio/system.slice/var-lib-kubelet-pods-d111600d\x2dcdf2\x2d11e7\x2d8e6b...

2019-04-22 14:30:14 1057

原创 Go module机制

Go module机制从go1.11开始支持可以不需要gopath存在环境变量GO111MODULE,默认为auto项目存在go.mod则使用go module,否则使用GOPATH和vendor机制一、使用1.新建项目名目录mkdir mypro2.使用go mod初始化项目cd myprogo mod init mypro3.在项目代码中添加外部依赖...

2019-03-07 14:15:16 3433

原创 使用kubeadm升级K8S

使用kubeadm升级K8S作者:张先贵时间:2019年3月6日16:50:10注意:如下示例为1.11.2升级到1.11.7同样适用于1.11.x升级到1.12.x这种次级版本升级不支持1.11到1.13这种跨次版本升级方式环境说明:1.操作系统:Ubuntu 18.04 LTS2.K8S部署: Static Pod方式部署controll plane一、...

2019-03-07 10:08:15 3692 1

原创 CoreDNS 与 127.0.0.53 的仇恨

CoreDNS 与 127.0.0.53 的仇恨记一次CoreDNS故障1、问题现象2、根本原因3、解决办法4、问题定位相关知识点5、其他解决方案6、参考记一次CoreDNS故障1、问题现象K8S环境出现CoreDNS Pod无法正常启动,处于CrashLoopBackOff或者OOMKilled状态环境信息操作系统: Ubuntu 18.04 LTSK8S版本: 1.11.2部署...

2018-12-15 17:48:08 6396

原创 K8S 配置Docker镜像仓库密码

K8S 配置Docker镜像仓库密码一、创建指定命名空间下的账号密码kubectl create secret docker-registry default --docker-server=hub.harbor.com --docker-username=admin --docker-password=Harbor12345 --docker-email="[email protected]" --na...

2018-10-17 10:52:54 5576

原创 ETCD数据备份与恢复验证

ETCD数据备份与恢复验证一、单机说明:执行etcd备份数据的恢复的机器必须和原先etcd所在机器一致1、单机备份etcdctl --endpoints="https://10.25.72.62:2379" \ --cert=/etc/etcd/ssl/etcd.pem \ --key=/etc/etcd/ssl/etcd-key.pem...

2018-08-17 09:39:54 5396 3

原创 kubectl config配置示例

kubectl config操作详解kubectl config操作的是$HOME/.kube/config文件,eg:/root/.kube/config1、查看config文件[root@SZD-L0105331 kube-system-rbac]# kubectl config viewapiVersion: v1clusters: []contexts: []...

2018-08-14 18:58:15 22086

原创 Etcd集群CPU与Memory建议配置

Etcd集群CPU与Memory建议配置 官方文档 : https://github.com/coreos/etcd/blob/master/Documentation/op-guide/hardware.md1、小规模集群 Small Cluster小规模集群服务器少于100个客户端,每秒的请求数少于200,存储少于100MB的数据应用负载示例:(50个Node节点的...

2018-07-10 11:17:57 2406

原创 ETCD数据库异常:mvcc: database space exceeded解决

ETCD数据库异常:mvcc: database space exceeded解决问题来源:在k8s集群中给node打标签发现报错[root@master1]# kubectl label node 30.4.228.20 env=prodError from server: etcdserver: mvcc: database space exceeded原因分析:e...

2018-06-25 12:38:34 12291

原创 ConfigMap挂载导致容器目录覆盖的问题解决

ConfigMap挂载导致容器目录覆盖的问题解决问题表现:将configmap的配置项挂载到指定的容器目录中,导致容器的被挂载目录下的所有文件不可见,只可见通过configmap挂载的文件解决办法: 1、volumes中设置path 2、volumeMounts中这是subPathConfigMapapiVersion: v1kind: Confi...

2018-06-19 18:57:51 7089

原创 Etcd远程备份

配置文件{ "backup_base_dir":"/etcdBackupData", "compress": true, "etcd_zone":[ { &am

2018-06-18 10:18:20 746

翻译 Docker overlay存储驱动工作方式

Docker overlay存储驱动是如何工作的?原文链接 该内容仅仅适用于overlay存储驱动。Docker官方建议适用overlay2 驱动,overlay2工作方式不同于overlay。overlay2工作原理链接 【https://docs.docker.com/storage/storagedriver/overlayfs-driver/#how-the-overlay2-d...

2018-06-12 00:31:21 536

原创 记一次Docker主机根分区磁盘占满的事件

记一次Docker宿主机根分区磁盘占满的事件环境信息:Docker版本:1.12.6存储驱动:DeviceMapper负载情况:仅运行一个Nginx容器,已经运行14 weeks宿主机分区情况:根分区20G,全部被占满,/var/lib/docker/devicemapper/devicemapper占用7.2G空间排查过程1、使用以下命令查看,发现根分区已经全部被...

2018-06-07 23:17:51 2282

原创 K8S RollingUpdate 滚动升级机制实例

K8S RollingUpdate 滚动升级机制实例一、准备1、编写一个简单的http serverpackage mainimport ( "net/http" "log" "fmt")func sayHello(w http.ResponseWriter, r *http.Request) { fmt.P...

2018-05-25 09:09:24 10997

原创 docker 容器上编译 go 程序无法运行,提示找不到文件

dockerfile[root@SZB-L0010091 zxg]# cat DockerfileFROM scratchCOPY webdemo /EXPOSE 9999CMD ["/webdemo"]docker run 报错信息:[root@zxg]# docker run --rm -it -p 9999:9999 web:1.0panic: standar...

2018-05-23 15:31:28 3787

转载 看过最详细的Kube-proxy的iptables模式原理详解

Kubernetes如何利用iptables原文地址Linux内置的防火墙可以对IP数据包做一系列如过滤、更改、转发这样的操作,防火墙在对数据包做过滤决定时,有一套遵循的规则,这些规则存储在专用的数据包过滤表(table)中,而这些表集成在Linux 内核中。在数据包过滤表中,规则被分组放在我们所谓的链(chain)中。我们通常说的iptables就是指Linux内置的防火墙,它实际上...

2018-03-08 17:03:43 22965 1

翻译 CoreOS Torcx

What is Torcx?(Torcx到底是什么?)Torcx is a new boot-time addon manager designed specifically for Container Linux. Torcx是特意为CoreOS容器操作系统设计的新型系统启动时插件管理器。At the most basic level, it is a tool for applying ep

2018-02-01 17:13:30 370

翻译 CoreOS编译与定制

CoreOS 编译(not customized)

2018-01-20 16:47:23 511

转载 docker各进程的交互

docker各个进程交互

2018-01-05 12:40:23 1292

原创 Kubernetes 部署 Weave-Scope

Kubernetes 部署 Weave-Scope

2017-12-25 14:28:01 2956

原创 rpm包制作实例

文件目录结构└── neutron-vmware-ovs-agent-1.1 └── usr ├── bin │ └── neutron-vmware-ovs-agent └── lib ├── python2.7 │ └── site-packages │

2017-10-27 11:14:28 736

原创 Docker run运行容器报错Error ruuning deviceCreate(createSnapDevice) dm_task_run failed

问题背景重启k8s集群中的某主机(CentOS7),调度到该主机上的kubernetes的Pod一直处于ContainerCreating状态。通过 kubectl describe pod $PodName和使用docker run运行容器的方式均发现如下报错信息: Error ruuning deviceCreate(createSnapDevice) dm_task_run faile

2017-05-13 16:46:23 4887

原创 OpenSSL部分文档翻译

OpenSSL部分文档翻译 1. man req (查看req详细用法)req命令主要是用来以PKCS#10格式创建和处理证书请求。例如用作根证书认证机构root CAs的话,它也可以用来创建自签名证书openssl req 参数解释: -in filename 指定该项标识从文件中读取证书请求,否则从标准输入读取请求。只有当创建选项 `-new `和 `-newkey`

2017-04-28 15:04:02 839

原创 Docker方式搭建Gogs环境

Docker方式搭建Gogs环境

2017-04-24 14:18:14 8615 2

原创 企业级私有Docker仓库Harbor搭建

企业级私有Docker仓库Harbor搭建 根据 Harbor官网 整理1、请确认安装了Docker1.6以上版本并配置好Docker镜像源加速器 使用默认源几乎无法完成,以下为Docker1.10的Docker镜像源加速器配置示例 … ExecStart=/usr/bin/dockerd-current \ –registry-mir

2017-04-22 18:24:23 561

原创 Salt 多网卡集群环境 的坑

salt 使用的坑– 集群环境中多网卡惹的祸 1. 现象:使用 salt ‘*’ test.ping 集群环境测试指令会卡住正常情况,三个节点的集群执行完如上指令,会打印如下并正常退出:– 10.153.195.83:True10.153.195.82:True10.153.195.81:True– 但是, 网节点包含两块网卡是会发现,上述打印会多出一行另一块网卡的信息,比如:–

2017-03-27 09:39:57 758

原创 kubernetes单个pod运行两个容器yaml文件实践

kubernetes单个pod运行两个容器yaml文件实践-1. rc的yaml文件 apiVersion: v1 kind: Replicationtroller metadate: name: baolei-rc spec: replicas: 1 selector:

2017-03-18 20:31:14 16189

原创 k8s容器调度策略

当新增一个容器时,集群会在可用的集群节点中寻找最合适的节点来运行相应的容器。首先,集群会排出如下节点: a. 节点状态为不可用的“如节点不通或者k8s服务运行异常等”; b. 节点剩余的CPU,内存资源不足以运行容器的; c. 容器运行时占用的宿主机端口出现冲突的; d. 按照节点选择label不匹配的;在排除不符合的节idanzhihou,剩下的节点均为

2017-01-16 11:46:38 10405 5

原创 AIDL的Proxy-Stub理解:(以实际媒体播放器服务单独运行在一个进程中为例)

AIDL的Proxy-Stub理解:(以实际媒体播放器服务单独运行在一个进程中为例)使用流程 :一、从接口定义入手1、定义AIDL接口  AudioPlayerAidl.aidl文件interface AudioPlayerAidl { // 注意,这里不要使用public关键字/** 打开媒体,但不播放* @param path 文件路径*/

2016-08-04 16:54:03 1093

docker容器热迁移

docker criu 容器热迁移 meetup, 华为实现方案与现状

2018-03-22

空空如也

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

TA关注的人

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