自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

曾浩

专注运维

  • 博客(29)
  • 资源 (2)
  • 收藏
  • 关注

原创 client-go 重启k8s资源

client-go 操作k8s资源重启实现思路相关代码实现思路主要利用kubernetes 给资源打patch来实现资源的重启相关代码package mainimport ( "context" "encoding/json" "fmt" "time" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/types" initConfig "k8s/confi

2022-01-04 10:11:04 652

原创 Client-go -- dynamicClient 操作CRD 资源

操作CRD资源package mainimport ( "flag" "fmt" "log" "path/filepath" "k8s.io/apimachinery/pkg/api/meta" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" "k8s.io/apimachinery/pkg/runtime/schema" "k8s.i

2020-08-28 11:03:14 3034

原创 Istio Client-go -- ServiceEntry

查看ServiceEntrypackage mainimport ( "context" "log" "github.com/owenliang/k8s-client-go/common" "istio.io/api/networking/v1beta1" networkingv1beta1 "istio.io/client-go/pkg/apis/networking/v1beta1" versionedclient "istio.io/client-go/pkg/clientset/

2020-08-25 10:52:26 343

原创 Istio Client-go -- Gateway

查看Gatewaypackage mainimport ( "context" "log" "github.com/owenliang/k8s-client-go/common" networkingv1alpha3 "istio.io/api/networking/v1alpha3" "istio.io/client-go/pkg/apis/networking/v1alpha3" versionedclient "istio.io/client-go/pkg/clientset/ve

2020-08-25 10:09:14 570

原创 Istio Client-go -- DestinationRules

查看 DestinationRulespackage mainimport ( "context" "log" "github.com/owenliang/k8s-client-go/common" versionedclient "istio.io/client-go/pkg/clientset/versioned" v1 "k8s.io/apimachinery/pkg/apis/meta/v1")func main() { namespace := "bookinfo"

2020-08-24 16:57:14 355

原创 Istio Client-go -- VirtualServices

环境介绍服务版本istiov1.6.8kubernetes1.15.0go包版本istio.io/client-gorelease-1.6# 安装方式go get istio.io/[email protected] 查看清单package mainimport ( "context" "log" "github.com/owenliang/k8s-client-go/common"

2020-08-24 15:04:59 1111

原创 Kubernetes-源码研习社-Workqueue

Workqueue主要功能有序 根据添加顺序进行入队列去重 已经存在的的消息,只会处理一次并发 消费者和提供者并发处理标记 标记元素是否处理,处理异常可以重回队列通知 shutdown 方法告诉队列,不消费新元素延迟 支持延迟一段时间把消息加入队列metric 提供监控FIFO 先进先出队列delay 延迟队列rateLimit 限速队列FIFO队列数据结构type Type struct { // queue defines the order in which

2020-08-21 13:31:35 149

原创 Kubernetes-源码研习社- Informer 机制

Informer 机制informer 运行架构图Reflector 主要用于List 和watch 机制,List 用于获取indexer里面由controller缓存的数据,watch主要用于监听 api server获取 add update delete事件DeltaFIFO 主要由两部分组成,一分部是Delta,delta主要是一个资源存储对象(add update delete resync) ,另外一部分是FIFO 先进先出队列(Add、Update、Delete、List、Pop、

2020-08-17 15:58:43 293

原创 Kubernetes-源码研习社-(Client-go)客户端

Client-go 基础结构https://github.com/kubernetes/client-go目录备注kubernetes提供ClientSet客户端去接入 kubernetes apidiscovery从kubernetes API 里面发现支持的APISdynamic提供动态客户端可对自定义CRD进行操作ClientSet用于访问自定义资源,无法访问自定义CRDtools用于编写controllerinformerli

2020-08-16 10:23:08 341

原创 Kubernetes ServiceSpec SessionAffinity 会话保持

Service 回话亲和力选项SessionAffinity可选项Spec: apiv1.ServiceSpec{ SessionAffinity: "", },代码注释段 必选项ClientIP 和 None,默认是None,通过ClientIP来保持回话 // Supports "ClientIP" and "None". Used to maintain session affinity. // Enable client IP based session af

2020-06-28 09:38:49 4522

原创 kubernetes gitlab

kubernetes configMapPVC 用于每次启动job 会自动挂在PVC,pvc可以加速打包,用户maven的缓存文件,也可以用作编译后的包存放路径。挂在路径为maven的缓存路径host_path 主要用于kubernetes里面的job跑docker命令节点亲和力用于那些kubernetes node节点运行runnerapiVersion: v1kind: Conf...

2019-01-22 14:22:04 733

原创 Kubernets NetworkPolicy Ingress

仅允许NS内部请求拒绝所有非default的namespace请求 default 命名空间下面的资源apiVersion: extensions/v1beta1kind: NetworkPolicymetadata: name: deny-default namespace: defaultspec: ingress: - from: - podSelecto...

2018-12-17 16:08:13 449

原创 Kubernetes RBAC

Kubernetes RBAC查看系统存在的Roles 与ClusterRoles查看Roleskubectl get roles --all-namespaces查看ClusterRoleskubectl get clusterroles --all-namespaces创建michael命名空间里面只读用户hzeng创建ServiceAccountapiVersion:...

2018-12-17 10:10:33 189

原创 kubernetes 服务发现与注册个人想法

初衷最近调研k8s,k8s是一个不错的docker编排工具,其中考虑到了很多在运维过程中的痛点,比如,RC、scale、autoscale、rolling-update等一系列的运维比较关心的东西,但是在k8s的服务暴露方面该需要做一些改进,自身的使用的clusterip只能k8s内部访问,服务服务需要对外的话,需要使用nodeport或者ingress,期访问结构都是通过clusterip进行ip

2017-06-22 13:49:32 7037 1

原创 docker动态更新lb

第一种DNS方案容器里面通过向DNS做注册,然后nginx 里面配置upstream的时候写上域名,然后在添加nginx的resolver 来自动解析pass的域名,pass的域名通过dns轮训. Example: Nginx 代理配置 Upstream www { Server www.michael.com; } Proxy_pass http://www; 启动2个www

2017-01-10 10:49:18 970

原创 kafka与rabbitmq

kafka与rabbitmq 相关(个人总结有如有不对之处欢迎指正)

2016-12-16 11:05:47 438

原创 ambari 安装

ambari安装在线安装#VERSION_NUMBER=2.2.2.0-460[Updates-ambari-2.2.2.0]name=ambari-2.2.2.0 - Updatesbaseurl=http://public-repo-1.hortonworks.com/ambari/centos6/2.x/updates/2.2.2.0gpgcheck=1gpgkey=http://pu

2016-11-29 16:05:12 881

原创 延迟插件实现延迟队列

环境要求Github: https://github.com/rabbitmq/rabbitmq-delayed-message-exchange Rabbitmq版本要求: RabbitMQ 3.5.7 and later versions. Erlang版本要求: Erlang/OTP 18.0 and later versions 插件列表: http://www.rabbitmq

2016-10-20 14:10:26 2841

原创 rabbitmq 实现延迟队列(ttl+DLX)

实现原理利用死信队列加上生存时间,让信息在ttl完毕后到达指定队列. 所用到队列2个,一个是具有死信功能携带ttl属性的队列routingkey绑定到正常的队列里面.Rabbitmq 设置 发送消息到hello_delay里面,然后消费者监听hello队列.## 生产者 ##import pikacredentials = pika.PlainCredentials("michael","mic

2016-10-20 14:04:39 3317 2

原创 Rabbitmq HAproxy 集群设置

集群节点说明三个节点,两个内存节点一个磁盘节点,内存节点提供对外访问,磁盘节点用于作为备份节点. 集群为镜像集群,所有的queue所属的主为两个raw节点上. 客户端连接方式为长连接,配置有超时与重连.HAproxy配置frontend SOA_Rabbitmq_frontend bind 172.18.4.240:5672 mode tcp option

2016-09-21 09:50:54 1976

原创 rabbitmq监控

python实例#!/bin/env python# encoding: utf-8import sys, urllib2, base64, json#rabbitmq ip = "127.0.0.1"username = "guest"password = "guest"#monitor keyskeys = ('messages_ready', 'messages_unacknowle

2016-09-14 13:34:25 2147

原创 Rabbitmq AE换机

AE交换机作用使用Exchange,路由消息到对应的队列,当这个Exchange所绑定的queue的Routingkey都不匹配的时候就会进入AE交换机.设置AE交换机新建交换机的时候设置AE feature 设置AE交换机的类型为 internal表示只交换机到交换机的. 设置以后队列多带的feature列表 绑定交换机与queue的routingkey

2016-09-14 13:21:27 563

原创 Rabbitmq 流控

生产者流控当触发Rabbitmq的流控后,会限制生产者发送消息的频率,比如之前是2W/s限制后可能在一段时间内无法发送消息. 触发流控条件,达到内存这只的水位线(vm_memory_high_watermark )或者磁盘达到限制剩余量.一般在产生的原因是长期的生产者发送速率大于消费者消费速率导致.流控实验设置rabbitmqctl set_vm_memory_high_watermark 0.0

2016-09-14 13:09:16 4150

原创 Rabbitmq unack过多处理

在Rabbitmq有大量的unack,会极度影响Rabbitmq的性能,因为这些消息消费不出去,反复消费回退刷盘,设置消费者端的qos就可以避免这个问题. 未设置QOS = 1 设置QOS = 1 产生unack的原因:在队列里面取消息消费,在消费者端认为这个消息异常,会反复的回退在消费(一般有消费逻辑),这时候极度影响性能,可以根据TTL去处理(不建议,因为后续的消息会被误过期)或者根据

2016-09-14 13:02:18 21775 3

原创 Rabbitmq 队列属性

队列属性1,持久性:如果启用,队列将会在server重启前后都有效。 2, 自动删除:如果启用,那么队列将会在所有的消费者停止使用之后自动删除掉自身。 3, 惰性:如果没有声明队列,那么在执行到使用的时候会导致异常,并不会主动声明。 4,排他性:如果启用,队列只能被声明它的消费者使用。

2016-09-14 12:48:08 2928

原创 Rabbitmq Exchange使用建议

Exchange类型1,direct转发消息到RK指定的队列(严格匹配RK) 2,topic按RK规则转发(binding-key模糊匹配RK) 3,fanout 转发消息到所有绑定队列 4,headers 根据发送消息中的header属性进行匹配 5,system 匹配N(包含0)个关键字,*匹配一个关键字 binding key:*.michael.# routing-key:tt

2016-09-14 12:45:21 2239

原创 Rabbitmq消息可靠性保障

发送者发送这端利用confirm保证消息可以顺利达到rabbitmq,消息开启持久化(Delivery Mode = 2). 发送者发送一个消息,到达rabbitmq,然后rabbitmq认为此消息需要持久化,经过内存到磁盘的过程,然后把消息返回给发送者端.消息持久化申明交换机持久化和队列持久化 rabbitmq接收到消息,会把消息从内存刷到磁盘的存储文件中.消费者端设置消息的ack,当消费者消

2016-09-14 12:38:58 3628

原创 Rabbitmq消费失败死信队列

Rabbitmq 重消费处理一 处理流程图: 业务交换机:正常接收发送者,发送过来的消息,交换机类型topicAE交换机: 当业务交换机无法根据指定的routingkey去路由到队列的时候,会全部发送到AE交换机.发送到此队列的消息属于,业务垃圾消息,或者攻击消息类型,交换机类型fanout死信交换机:用于处理消费者,消费失败回退的消息,根据死信交换机的routingkey发送到死信队列,交换

2016-09-14 12:26:34 30499 1

原创 Rabbitmq消息发送接收Demo

Rabbitmq生产者Demo# encoding: utf-8import pika, sysrabbitmq_user = "michael"rabbitmq_passwd = "michael"rabbitmq_host = "192.168.2.188"'''创建连接'''credentials = pika.PlainCredentials(rabbitmq_user, rabbi

2016-09-14 11:21:54 696

rabbitmq消费失败处理

rabbitmq消费失败处理

2016-12-08

rabbitmq 操作手册

rabbitmq 操作手册

2016-12-08

空空如也

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

TA关注的人

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