- 博客(239)
- 收藏
- 关注

原创 为什么内核中TCP连接在第一次握手后没有进入SYN_RECV状态?
注:本文分析基于3.10.0-693.el7内核版本,即CentOS 7.4背景之前梳理TCP建链的过程时,发现一个问题,百思不得其解。各种文章和书籍里说的都是服务端在接收到客户端的SYN报文后就进入SYN_RECV状态,然而当我看内核源码时,发现却不是这样的。连接在第一次握手后还是保持LISTEN状态,只是请求被放入了半连接状态。等到第三次握手后,服务端才根据半连接队列里的请求重新构造一个s...
2018-09-21 17:14:31
1884

原创 TCP 的backlog详解及半连接队列和全连接队列
注:本文分析基于3.10.107内核版本问题1:backlog是什么? 问题2:backlog怎么设置? 问题3:backlog怎么影响TCP的建链? 问题4:如何验证backlog的设置?以上就是我的疑问,因此我开始去从代码中了解backlog。man手册首先,要知道这个backlog是listen()函数里的第二个参数。int listen(int sockf...
2017-10-27 21:26:36
4492
5
原创 helm push文件到ChartMuseum
helm默认是不带push功能的,因此无法直接将本地的chart文件直接上传到ChartMuseum中。
2023-06-05 14:41:52
105
原创 Kafka中offset的相关操作
offset用于记录消息消费的进度,主要有以下几种,Current offset,Committed offsets,LogEndOffset
2023-03-13 22:05:16
1503
1
原创 unable to open connection to broker - kafka
在准备使用kowl来作为kafka管理面板时,发现一直无法连接到broker,提示机器hostname无法解析。
2022-12-29 22:22:51
449
原创 grafana导出和导入dashboard
除了从官网获取一些dashboard,在日常使用中,如果看到其他人自己创建的dashboard很符合自己的需求,我们也可以直接导出到我们自己的环境使用。
2022-11-24 08:59:25
3568
原创 K8S node-shell
对于云上K8S node我们一般会禁止ssh登录,但有时又不得不登录到node节点查看和debug,这时就可以通过node-shell的方式获得对应node的root shell。
2022-10-13 23:30:42
578
原创 K8S删除卡在Terminating状态的namespace
由于一些未知原因,一些namespace在删除时会一直处于Terminating状态,无法彻底删除。
2022-10-10 22:12:31
569
原创 AWS EC2
EC2(Elastic Compute Cloud)是AWS提供的计算能力可扩展的机器,也是云计算的最基本服务之一。但是它仅提供计算能力,也就是CPU和内存,存储能力需要借助于其他服务实现,比如EBS。
2022-08-25 21:30:03
1272
原创 K8S策略引擎Kyverno
Kyverno是专为k8s设计的策略引擎,有以下特性,- policy作为k8s原生资源,不需额外语言支持,面向yaml编程即可- 可以校验,修改或者生成任何资源- 可以审计镜像来源和元数据- 可以使用label和通配符来选择资源- 可以通过admission controls阻止不符合规范的资源,并给出报告信息- 可以在应用到集群前进行测试
2022-08-19 19:47:08
461
原创 AWS EKS
EKS(Elastic Kubernetes Service),是AWS提供的一个云上弹性K8S集群,无需自己安装和配置,控制平面和数据平面的资源都由AWS提供。
2022-08-19 10:59:42
897
原创 cert-manager使用
在使用Let’sEncrypt时,我们知道由它颁发的证书有效期只有90天,因此最好是使用自动化方式去申请和续期。而cert-manager可以将certificates和certificateissuers作为资源类型添加到k8s集群中,这样就能简化证书的申请,续期等操作,它可以确保证书有效并在证书过期前一段时间(可配置)对证书进行续期。cert-manager除了支持Let’sEncrypt,还支持HashiCorpVault,Venafi以及私有PKI。...
2022-07-31 18:10:13
1988
原创 Let‘s Encrypt 使用
Let’sEncrypt是一个非盈利的自动证书颁发机构(CA),我们可以免费的从Let’sEncrypt获取自己网站域名的证书,只需要在我们的web主机上运行使用ACME协议的软件来获取Let’sEncrypt证书。
2022-07-29 23:05:12
1143
原创 AWS VPC
VPC(Virtual Private Cloud),即虚拟私有云,是一个逻辑上独立的数据中心,公有云服务提供商基于overlay网络(比如VXLAN和GRE),将网络分割为一个个独立的个体,提供给不同租户。租户则可以在这个独立的网络中部署自己的应用和资源而不受其他用户干扰。同时再配合一些加密和隧道协议,保证用户数据和通信安全,这就是云服务商提供的虚拟网络。aws的VPC有两种类型,default VPC和nondefault VPC,主要有两种方式,security groups和network ACLs
2022-06-29 21:53:01
659
原创 Istio安装与使用
Istio是Service Mesh模式的一种实现,多用于微服务的治理。Kubernetes能够覆盖服务的部署、升级、扩容等运行管理能力,但对于服务治理,如服务的熔断、限流、动态路由、调用链追踪就无能为力。因此Istio就能和Kubernetes互补,成为微服务管理的最佳实践之一。Istio的核心思想就是将服务治理的功能从业务服务中独立出来,作为一个sidecar容器,解耦的同时也能够兼容不同语言,无需和业务服务使用同一套语言。公共的治理能力独立后,所有组件都可以接入...
2022-06-06 22:34:32
2233
1
原创 AWS IAM基本概念
IAM Identity and Access Management,身份和访问管理identity/principal user、role、federated User、application
2022-05-20 22:11:14
2801
原创 External-DNS安装与使用
k8s中的服务通过ingress暴露给外部后,我们就能访问该服务。但是此时我们只能基于ingress暴露的ip来访问,这肯定不是个好主意,此时我们就需要将域名绑定到IP上。一般来说这里都需要手动到DNS服务商配置,对于ip变化频繁的话,还是很繁琐的。这时我们就可以考虑使用external-dns服务。
2022-05-05 22:30:00
1095
原创 kubeadm重新生成admin.conf
一条指令搞定,kubeadm init phase kubeconfig admin 如果有多个网卡,需要用–apiserver-advertise-address指定apiserver监听地址,证书地址可以用–cert-dir指定,默认/etc/kubernetes/pki,生成的admin.conf默认为/etc/kubernetes/admin.conf...
2022-03-28 22:45:20
3048
原创 MongoDB replication
MongoDB的副本集能保证数据库服务的冗余性和高可用,这也是生产环境的必要配置。每个副本集都保存相同的数据,保证主节点异常时能接替主节点继续提供服务。
2022-03-12 23:23:35
1163
原创 kafka简单上手
注:本文基于kafka 2.13编写1 关于kafkakafka是一个开源的分布式流处理平台,基于zookeeper协调,支持分区、多副本、多订阅者,主要用做日志手机系统或者是消息队列系统。
2022-02-13 13:16:35
1542
原创 Prometheus指标
注:1 指标类型prometheus的指标有四种类型,分别是Counter,Gauge,Histogram,Summary。Counter只增不减的计数器,用于描述某个指标的累计状态,比如请求量统计,http_requests_total通过这个计数器我们可以利用PromQL的聚合函数rate,来获取指标的增长速率,比如统计过去5分钟内5xx响应的增长率,rate(http_requests_total{status=~"5[0-9]+"}[5m])Gauge可增可减的计量器,
2022-01-16 23:01:59
4119
原创 Calico网络策略原理
注:本文基于Calico v3.20.1版本编写1 calico支持网络策略的基础calico网络插件中,所有pod的网络设备并没有像flannel一样连接到网桥docker0上,这样每个pod的网络都有独立的链路,而这就是支持网络策略的基础。如果都连接到网桥,那所有pod都互通,并且没有办法做隔离。
2021-12-23 22:46:02
999
原创 Calico网络策略
相比于k8s网络策略,calico网络策略对其进行了扩展,能支持更多的功能,比如可以对流量进行allow, deny, log, pass,而在k8s网络策略中只能对匹配的流量进行allow,而deny只能通过default的方式,灵活度不够。
2021-12-18 22:58:58
1090
原创 K8S网络策略
注:本文基于K8S v1.21.2版本编写1 关于网络策略k8s的网络能力主要表现在两个方面,一个是连通性,保证pod之间能够互通,另一个就是隔离性,考虑安全、流量限制等业务需求。而默认情况下,k8s集群的网络没任何限制,集群中的所有pod都是互通的,这对于一些业务来说是不符合安全需求的。同时如果考虑多租户的场景,这就更不能接受了,因此需要有方法能对集群网络进行限制,这就有了Network Policy。但有一点,并不是所有网络插件都支持Network Policy,比如flannel就不支持网络策
2021-11-30 22:07:04
1609
原创 K8S调试工具之--kubectl debug
容器调试,kubectl debug,EphemeralContainers,shareProcessNamespace
2021-11-22 22:17:47
2126
原创 K8S调试工具之--nsenter
nsenter就是namespace enter的意思,它可以进入到目标程序所在的namespace中,因此可以用来调试容器程序。我们都知道目前存在的几个namespace,比如网络,用户,pid等,nsenter都有对应的参数可以指定,从而进入该namespace
2021-10-18 22:25:34
2269
原创 K8S Calico网络插件之BGP模式
注:本文基于K8S v1.21.2版本编写1 切换到BGP模式因为按照官网的配置文件部署calico时,默认使用的是IPIP模式,如果需要使用BGP模式,就要做一些修改。主要有两种方式,修改IPPool中的ipipMode为Never,也就是禁用IPIP模式[root@master home]# kubectl edit ippool ipipMode: Never也可以使用calicoctl或者kubectl命令修改,[root@master home]# kubectl get
2021-10-17 17:37:50
4368
原创 K8S Calico网络插件之IPIP模式
注:本文基于K8S v1.21.2版本编写1 关于Calicoflannel是overlay网络, 主要工作在L2(VXLAN),calico主要是L3,通过BGP路由协议在机器之间传送报文。2 安装Calico(IPIP模式)因为之前有安装flannel,因此需要先删除,kubectl delete -f kube-flannel.yml同时需要删除flannel.1和cni0这两个网络设备,ip link delete cni0ip link delete flannel.1之后就
2021-10-10 22:58:49
3522
原创 Linux下查看网络设备类型
注:本文基于CentOS 7.4编写1、网络设备类型linux网络设备的抽象类型有:Bridge、VLAN、VETH、TAP等,我们可以通过ip命令查看系统支持的类型,[root@master ~]# ip link help...TYPE := { vlan | veth | vcan | dummy | ifb | macvlan | macvtap | bridge | bond | team | ipoib | ip6tnl | ipip | sit | vxlan |
2021-09-27 21:43:07
3202
原创 kube-proxy模式之iptables
注:本文基于K8S v1.21.2版本编写1 默认模式2 关于iptables3 针对一个特定服务分析数据流
2021-09-18 22:11:14
1827
原创 K8S dashboard登录超时时间修改
注:本文基于K8S dashboard v2.2.0编写k8s dashboard默认的登录超时时间是900s,也就是15分钟,对于需要频繁查看修改集群信息是非常不便的,需要频繁重新登录。为了增加超时时间,可以修改dashboard启动参数,增加以下配置,即超时时间为1天,- '--token-ttl=86400'直接在dashboard上修改对应的deployment文件即可。...
2021-08-24 08:55:37
1507
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人