实验:MySQL 客户端SocketTimeout 抓包分析 中间件连接问题,本质上都是 TCP/IP 的通信问题,抓包之下一切无所遁形。做技术当然要对很多具体的知识点做掌握,但更重要的是底层内功的修炼,可以提高自己在不熟悉的问题场景下蹚出一条路的能力。
技术学习周刊第 3 期:Linux& 容器网络扫盲 简单来说,所有的隧道本质上都是在 IP 包里带上另外一个包,这个包可能是另一个 IP 包,也可能是 UDP 或者其他包,传输时通过外层的 IP 做路由,到达目的地后再解析出内部的包在做一次路由。这一篇是非常详细的介绍容器网络,尤其是其提供了在线的 Playground 帮助自己边读边练,手把手创建网桥设备、veth 对,弄 iptables。这些硬核基础知识始终应该是我们学习的重点。周志明老师《凤凰架构》一书中的章节,对容器网络的技术做了整体性的梳理,可以看到上面文章中提到的技术是如何应用在容器网络中的。
技术学习周刊第 2 期 从传统的 HTTPS 加密通信,到云原生架构下零信任网络所要求的 mTLS 双向认证,TLS 协议已经是服务通信的必备要求了。号称一年读完了 MIT 4 年课程的哥们写的另一本书,都是一些优化日常效率的实用小技巧,整本书也就三万多字,1 小时就读完了,可以参考来提升自己的日常效率。关于 TLS 两篇非常好的文章,如果对 TLS 了解不多的话看上面两篇本章就够了。一系列密码学相关的知识,算是对上述两篇文章很好的补充。生命短暂,当然让提高效率,尽可能的去体验、创造才行。
技术学习周刊第 1 期 除了生死,都是擦伤。之前滴滴故障据说就是 K8s 升级跨度过大导致的,K8s 为了解决容器的运维编排而生,但本身的运维又成了令人头大的问题,有种屠龙勇士变恶龙的既视感了。之前学习阅读的很多资料都没有好好沉淀,因此决定恢复之前每周打卡的习惯,参考阮一峰老师的技术爱好者周刊,每周将自己读过的好的文章、资料做整理分享。
一些有趣的Git学习资料 Git 可以说是程序员必备的技能之一了,基于 Github/Gitlab 以及相关工作流的使用,Git 已经融入到了我们的日常工作中,这里分享一些有趣的 Git 学习资料,希望可以帮助大家更好的理解 Git。
Kubernetes笔记(十) Kubernetes 监控 & 调试 一. Metrics ServerMetrics Server 是 Kubernetes 提供的监控工具,主要用来收集 Node 和 Pod 的 CPU、内存使用情况。其本质就是通过 kube-aggregator 实现的一个 server。图片来自 https://www.jetstack.io/blog/resource-and-custom-metrics-hpa-v2/Kubelet 内置了 cAdvisor 服务运行在每个节点上收集容器的各种资源信息,并对外提供了 API 来查询这些信息。
Kubernetes笔记(九) Kubernetes 应用封装与扩展 文章目录1. Kustomize2. Helm2.1 应用安装2.2 应用创建3. CRD & Operator3.1 CustomResourceDefinition3.2 创建部署 Operator1. Kustomize当我们需要在 Kubernetes 部署应用时,往往是编写许多 yaml 文件来部署各种资源对象,并且同一个应用针对不同的环境可能需要编写不同的 yaml 文件,这个过程往往非常繁琐。为了解决这个问题 Kubernetes 推出了 Kustomize 工具,官方称为 K
Kubernetes笔记(八) Kubernetes 安全 文章目录1. mTLS2. 认证2.1 ServiceAccount2.2 用户生成私钥与 CSR创建 Certificate Signing Request批准 Certificate Signing Request3. Kubeconfig4. 授权4.1 RBAC4.1.1 Roles & ClusterRoles4.1.2 RoleBinding & ClusterRoleBinding4.1.3 命令行工具5. 准入控制5.1 动态准入控制5.1.1 WebHook Server5
Kubernetes笔记(七) Kuberetes调度 文章目录1. 手动调度2. NodeSlector3. Node & Pod Affinity4. Resource Request5. Taints & Tolerations6. Pod 驱逐7, 调度过程8. 自定义调度器所谓调度就是按照一系列的需求、规则,将 Pod 调度到合适的 Node 上。下面是 Kubernetes 提供的一些调度方式:1. 手动调度Pod 的定义中有 nodeName 属性,调度器就是在选择出最合适的节点后修改 Pod 的 nodeName 来指定 P
Kubernetes笔记(六) Kubernetes 存储 文章目录1. Volumes2. PV & PVC3. Storage Class4. PV 挂载过程5. CSI 插件操作系统中有 Volume 和 Mount 的概念。Volume: 表示物理存储的逻辑抽象Mount:将外部存储挂载到系统、容器中。为了解决容器的数据存储,Kubernetes 也引入 Volume 的概念。Kubernetes 将 Volume 存储分为了普通的非持久化 Volume 和持久化的 PersistentVolume 两类。1. Volumes普通非持
Kubernetes笔记(五) 配置管理 文章目录1. ConfigMap2. Secret1. ConfigMapConfigMap 是一种 API 对象,用来将非机密性的数据保存到健值对中。使用时可以用作环境变量、命令行参数或者存储卷中的配置文件。ConfigMap 可以让配置信息和容器镜像解耦,便于应用配置的修改。每次应用需要修改配置时,只需要修改 ConfigMap 然后按需重启应用 Pod 即可,不用像修改代码那样还需要重新编译打包、制作镜像等操作。Kubernetes 支持基于字面量、文件、目录等方式创建 ConfigMap,下面
Kubernetes笔记(四) Kubernetes 网络 文章目录1. 网络基础知识1.1 Linux Network Stack1.2 Netfilter1.3 Iptables1.4 IPSet2. Kubernetes CNI3. Container To Container4. Pod To Pod4.1 跨主机的网络通信4.2 Flannel UDP4.3 Flannel VXLAN4.4 Flannel host-gw4.5 Calico 路由5. Service To Pod5.1 Service 简介5.2 Service 分类5.2.1 Clus
Kubernetes笔记(三) 控制器 文章目录1. 副本控制器2. Deployment2.1 基本使用2.2 水平伸缩与升级1) 水平伸缩2) 更新镜像3) 升级策略4) Rollover1) 回滚2) 暂停或继续2.3 Canary Deployment2.4 AutoScaling & HPA3. Job/CrobJob3.1 Job3.2 CronJob4, StatefulSet4.1 Pod 通信4.2 数据存储5. DaemonSet在 Kubernetes 中,Controller 就是那些观察 cluster 状态
Kubernetes笔记(二) Pod 使用简记 1. 为什么需要 PodPods 是 K8s 中最小的可部署和管理单元,是一个逻辑概念。一个 Pod 包含一个或多个 container,它们可以共享网络和存储,可以把 Pod 看作是一个虚拟的逻辑主机,里面包含了一个或多个紧密关联的 container,Pod 同时也告知系统如何去运行它所描述的容器。Pod 的存在主要是为了解决两个问题:对“进程组”的抽象,满足容器共享 namespace 的需求。协同调度容器本身是单进程模型,其应用本身的 PID 为 1,本身没有管理多个进程的能力。在实际
Kubernetes笔记(一) Kubernetes 集群架构 1. Kubernetes 集群架构Kuberetes 本身是由一系列组件组成的容器编排系统,每个组件各司其职从而实现容器的调度、部署以及自动伸缩等功能。Kubernetes 整体的架构图1.1 Master (Control Plane)节点集群中的控制节点,为单数数量,运行集群中的控制面板逻辑的相关组件。kube-system namespace 下的资源都会在这一个或者多个Master 节点上运行,且默认会有node-rule.kubernetes.io/master:NoSchedule
Nexus 搭建 Maven、Docker 私服详解 一. 安装 Nexus1. 下载并启动2. 修改配置3.纳入 systemd 管理二. Nexus Maven 仓库简介三. 配置从 Nexus 私服拉取库1. 项目中配置2. settings.xml 统一配置3. 配置镜像四. 部署库到 Nexus 私服最近 Java 项目监控需要引入一些 PaaS 团队同学开发的 SDK,为了方便引入于是利用 Nexus 搭建了 Maven 私服,将所需依赖都部署到了私服中供项目使用,简单记录下搭建过程作为梳理与备忘,也希望对需..
CKA 认证笔记 - CKA 认证经验帖 文章目录一. 报名 & 预约1. 报名2. 预约二. 考试简介 & 备考建议1. 考纲介绍2. 考官检查事项1. 开启摄像头 & 电脑桌面分享2. 检查办公桌面 & 房间环境3.考试界面简介4. 考试建议【1】准备好 VPN【2】快速浏览题目【3】注意题目要求的上下文【4】启用 kubectl 自动提示【5】提前整理好文档收藏三. 考试题目简记四. 备考资料推荐一. 报名 & 预约1. 报名报名地址为 https://www.cncf.io/certificat
修改 K8S 证书默认有效期 通过 kubeadm 创建集群后,其默认生成的证书有效期为 1 年,目测很多同学都遇到过证书过期的坑。之前写了一篇博客 K8S 证书过期后,kubeadm 重新生成证书 介绍如何在过期后重新生成证书。但重新生成后的证书有效期依然只有一年,每年都重新生成一遍的话未免太过麻烦,本篇博客就介绍下如何一劳永逸的解决证书签名有效期的问题。修改默认有效期的方法很简单,其一年的有效期是在源码中写死的,因此我们只需要下载源码将默认有效期修改一下,然后重新编译生成 kubeadm 命令就可以了。这里麻烦的是 K8S 不
LeetCode 题解 - 02.Add Two Numbers 一. 题目要求You are given two non-empty linked lists representing two non-negative integers. The digits are stored in reverse order and each of their nodes contain a single digit. Add the two numbers and return it as a linked list.You may assume the two numbe