Myluzh Blog

K8S 中的优雅终止:确保服务平稳关闭

2024-8-2 myluzh Kubernetes

0x01 什么是优雅停止? 优雅终止是 Kubernetes 中一个非常重要的概念,它关系到服务的稳定性和用户体验。通过合理配置和使用 Kubernetes 提供的工具,我们可以确保应用在终止时能够做到尽可能的平滑和优雅,这不仅提升了系统的可靠性,也增强了用户对服务的信任。 优雅终止指在终止应用或服务时,确保当前正在进行的操作能够正常完成,同时避免新请求的进入,使得服务能够平稳地关闭。在 Kubernetes 中,这通常涉及到 Pod 的终止流程。 0x02 Pod 终止流程 1、Pod 状态变为 Terminating Pod 被删除,API 层面上 metadata.deletionTimestamp 字段会被标记上删除时间。 2、更新转发规则 kube-proxy 发现 Pod 被删除,开始更新转发规则,将 Pod 从 service 的 endpoint 列表中摘除掉,新流量不再转发到该 Pod。 3、销毁 Pod kubelet 发现 Pod 被删除,开始销毁 Pod。 执行 PreStop Hook:如果 Pod 中有配置 preStop Hook,Kubernetes 会执行这些命令。 ...

阅读全文>>

标签: k8s kubernetes 优雅停止 PreStop Readiness SIGTERM Liveness

评论(0) (384)

K8S ingress-nginx中集成雷池WAF最佳实践

2024-7-24 myluzh Kubernetes

0x00 概述     关于雷池WAF:雷池(SafeLine)是由长亭科技开发的一种专业的 Web 应用防火墙(WAF)。WAF是指Web Application Firewall,工作在应用层,专门用于保护基于HTTP/HTTPS协议的Web系统免受各种网络攻击。雷池WAF利用先进的智能语义分析算法作为其核心检测技术。这种算法不依赖于预先定义的规则集,能够精准地检测恶意攻击,同时减少误报,有效应对未知特征的0day攻击。     很荣幸雷池社区版-官方手册已引用了该文章 标题:《K8S ingress-nginx中集成雷池WAF最佳实践 - 来自 23 群的 myluzh》 地址:https://docs.waf-ce.chaitin.cn/更多技术文档/K8S-ingress-nginx中集成雷池WAF最佳实践 0x01 手动安装雷池 雷池WAF可以安装在K8S集群或者任意一台与集群网络互通的机器上。 官网手册:手动安装雷池 1、创建雷池目录 mkdir -p "/data/safeline" 2、下载编排脚本 cd "/data/safeline" wget "ht...

阅读全文>>

标签: k8s Ingress waf ingress-nginx 雷池 safeline

评论(0) (445)

批量将Rancher镜像上传到私有仓库脚本

2024-7-22 myluzh Kubernetes

0x01 概述 国内拉镜像受限,公司集群是用rancher搭的,以防万一先把镜像都在私有仓存一下。 0x02 脚本 root@iZbp12bkuvg20e1j3y9gtxZ:~# vi upload_rancher_images.sh #!/bin/bash # 获取前缀rancher开头的镜像 images_info=$(docker images | grep '^rancher' | awk '{print $1, $2, $3}') registry='172.30.82.223:5443/' # 登录harbor私有仓 docker login "$registry" # 按行遍历镜像信息 echo "$images_info" | while read -r image_name image_version image_id; do # 打上标签 然后上传到私有仓 echo "镜像名: $image_name 版本: $image_version ID: $image_id" docker tag "$image_name:$image_version" "...

阅读全文>>

标签: docker rancher harbor push

评论(0) (190)

通过Rclone实现阿里云OSS挂载和文件同步

2024-7-12 myluzh CLOUD

0x01 安装rclone  # 安装rclone yum install -y rclone # rclone挂载FUSE文件系统所必需 yum install -y fuse 0x02 创建rclone配置文件 可以通过rclone config命令 交互式的配置一个 [root@iZbp151h65ix1x0tvaj1qxZ www]# rclone config n) New remote s) Set configuration password (optional) q) Quit config n/s/q> n name> myoss (你可以给它起一个你喜欢的名字) Storage> s3 provider> Alibaba env_auth> false access_key_id> (你的Access Key ID) secret_access_key> (你的Access Key Secret) region> (留空或者填写适当的区域,如 cn-hangzhou) endpoint> (如oss-c...

阅读全文>>

标签: ecs oss rclone

评论(0) (333)

K8S istio-ingressgateway 简单的路由实例演示

2024-7-8 myluzh Kubernetes

0x01 前置条件 默认已经安装好了istio,并且已经有了确保已经安装 Istio 并配置了 istio-ingressgateway。由于我已经之前安装了ingress-nginx 已占用 80 和 443 端口。所以我 istio-ingressgateway 从默认的 LoadBalancer 类型改为 NodePort 类型。istio-ingressgateway 使用端口 http 30058 和 https 30605 root@iZbp12bkuvg20e1j3y9gtxZ:~/# kubectl get svc -n istio-system | grep ingress istio-ingressgateway NodePort 10.43.160.137 <none> 15021:31016/TCP,80:30058/TCP,443:30605/TCP,31400:32117/TCP,15443:32636/TCP 87d 0x02 实例演示 1、创建命名空间并自动注入边车代理 kubectl create ns myluzh kubec...

阅读全文>>

标签: k8s Ingress istio istio-ingressgateway gateway virtualservice

评论(0) (207)

Docker镜像管理:掌握save/load与export/import的精髓

2024-6-7 myluzh Docker

0x01 Docker Save & Load docker save: 用于将Docker镜像保存为.tar文件。这个过程会保存镜像的所有层、元数据和历史记录,因此生成的文件较大。当你需要备份或者迁移某个镜像时非常有用,尤其是当你需要保留镜像的全部构建历史以便将来在其他地方恢复时。 docker save -o my_image.tar my_image:tag docker load: 用来载入由docker save创建的镜像文件,将其恢复到本地镜像库中。这个过程不会允许你为导入的镜像指定新的名称,如果本地已有同名镜像,它会被覆盖。 docker load -i my_image.tar 0x02 Docker Export & Import docker export: 用于将运行中的Docker容器导出为一个 tar 归档文件。与save不同,export只导出容器当前的状态(即最终的文件系统层),不包含容器的元数据或历史记录,因此导出的文件通常比用save导出的镜像文件要小。 docker export my_container > my_container.tar docker impo...

阅读全文>>

标签: docker import save export load

评论(0) (419)