k8s之dnsPolicy应用场景
转自: https://help.aliyun.com/document_detail/188179.html?utm_content=g_1000230851&spm=5176.20966629.toubu.3.f2991ddcpxxvD1#title-b7y-d6a-bcy DNS原理和配置说明本文介绍Kubernetes集群中集群DNS服务原理,并针对不同场景介绍如何进行DNS策略配置。 背景信息K8S集群默认部署了一套DNS服务,通过kube-dns的服务名暴露DNS服务。你可执行以下命令查看kube-dns的服务详情。 1kubectl get svc kube-dns -n kube-system 预期输出: 12NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGEkube-dns ClusterIP 172.24.0.10 <none> 53/UDP,53/TCP,9153/TCP 27d K8S部署的D...
缓存的使用,开启gzip以及各种header的操作
Nginx里Header修改 修改Nginx默认Header 修改普通请求的HeaderNginx内置的模块暂时仅支持修改响应头,使用add_header。其中: add_header 来自内置模块ngx_http_headers_module,用于设置response header。参考:http://www.cnblogs.com/linxiong945/p/4174262.html 如果需要设置普通请求的request header,则需要单独安装headers-more-nginx-module模块。该模块提供了more_set_headers,more_set_input_headers分别用于设置请求、响应头。 示例: 12345678910location ~ .*\.(php|php5)?$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param LOG_ID $request_id; more_set_input_headers "...
自定义监控指标开发(五):整合Springboot和Prometheus实现自定义指标
我在第二章中有介绍使用koa整合Prometheus自定义指标,这里记录下整合Springboot和Prometheus实现自定义指标 要在Spring Boot中使用Micrometer-registry-prometheus记录QPS和响应时间,可以按照以下步骤操作 Spring-boot-starter-actuatorSpringBoot中的spring-boot-starter-actuator依赖已经集成了对Micrometer的支持,其中的metrics端点的很多功能就是通过Micrometer实现的,prometheus端点默认也是开启支持的,实际上actuator依赖的spring-boot-actuator-autoconfigure中集成了对很多框架的开箱即用的API,其中prometheus包中集成了对Prometheus的支持,使得使用了actuator可以轻易地让项目暴露出prometheus端点,使得应用作为Prometheus收集数据的客户端,Prometheus(服务端软件)可以通过此端点收集应用中Micrometer的度量数据。 整合M...
京东混沌演练实践
摘自: https://developer.jdcloud.com/article/2725 https://developer.jdcloud.com/article/2953 混沌工程介绍什么是混沌工程混沌工程是通过主动制造故障场景并根据系统在各种压力下的行为表现确定优化策略的一种系统稳定性保障手段,简单说就是通过主动注入故障的方式、提前发现问题,然后解决问题规避风险。 为什么要进行混沌演练随着互联网业务发展,微服务架构、分布式架构和虚拟化容器技术的广泛普及,软件架构的复杂度在不断提升,服务之间的依赖所带来的不确定性也成指数级增长,在这样的服务调用网中,任何一环出现的正常或者异常的变化,都有可能对其他服务造成类似蝴蝶效应一般的影响。目前营销体系的服务量级不断增加,整体链路增长以及数据流转复杂,对整个系统的可用性、稳定性挑战也越来越大,所以引入混沌演练,主动找出系统中的脆弱环节,然后针对性地进行加固、防范,从而避免故障发生时所带来的严重后果,进一步提升业务系统的高可用,提高业务系统应急保障能力。 混沌演练的价值应用混沌演练可以对系统抵抗扰动并保持正常运作的能力进行校验和评估...
自定义监控指标开发(一):基于Docker搭建Prometheus+Grafana
摘自:https://juejin.cn/post/7097166804044218405 安装运行Prometheus(docker版)Grafana是一个开源的功能丰富的数据可视化平台,通常用于时序数据的可视化。它内置了多种数据源的支持 下载镜像包123docker pull prom/node-exporterdocker pull prom/prometheusdocker pull grafana/grafana 启动node-exporter12345docker run -d -p 9100:9100 \ -v "/proc:/host/proc:ro" \ -v "/sys:/host/sys:ro" \ -v "/:/rootfs:ro" \ prom/node-exporter 访问url: http://127.0.0.1:9100/metrics 效果如下: 这些都是收集到的数据,有了它就可以做数据展示了。 启动prometheus新建目录 prometheus,编辑配置文件p...
自定义监控指标开发(六):精简Prometheus指标减少资源占用
前言随着 Prometheus 监控的组件、数量、指标越来越多,Prometheus 对计算性能的要求会越来越高,资源占用也会越来越高。 在这种情况下,要优化 Prometheus 性能, 优化存储占用. 第一时间想到的可能是各种 Prometheus 的兼容存储方案, 如 Thanos 或 VM、Mimir 等。但是实际上虽然集中存储、长期存储、存储降采样及存储压缩可以一定程度解决相关问题,但是治标不治本。 真正的本,还是在于指标量(series)过于庞大。 治本之法,应该是减少指标量。有 2 种办法: 解决高基数问题 根据实际使用情况,只保留(keep)展示(Grafana Dashboards)和告警(prometheus rules)会用到的指标。 高基数问题什么是基数(Cardinality)?基数的 基本定义 是指一个给定集合中的元素的数量。 在Prometheus中指代series 的基数 (High Cardinality) 在 Prometheus 和可观察性的世界里,标签基数 是非常重要的,因为它影响到你的监控系统的性能和资源使用。 下面这张...
分布式块存储-longhorn
官方文档 记录下longhorn的使用 - rancherlab提供的开源分布式块存储方案 Longhorn 支持以下架构: AMD64 ARM64(实验性) longhotn需要open-iscsi,curl,findmnt,grep,awk,blkid,lsblk的依赖(是否需要单独安装可以使用这个脚本进行验证,centos7有可能需要单独安装下jq和open-iscsi) 利用rancher安装: 在rancher ui上选择自己的集群,然后找到对应app安装即可,v2.6.3测试没问题(尝试用kubectl安装的时候告诉我缺少NODE_NAME ENV,但是rancher就正常): https://longhorn.io/docs/1.2.3/deploy/install/install-with-rancher/查看对应几个node是否正常创建longhorn(默认数据路径)ls /var/lib/longhorn界面 创建应用进行测试应用 yaml 创建 PVC 和 pod pvc.yaml1234567891011apiVersion: v1kind: P...
Quarkus结合oidc及hibernate的上手试验
Quarkus结合oidc及hibernate的上手试验quarkus官方文档 介绍123456专为OpenJDK HotSpot和GraalVM量身定制的Kubernetes本机Java堆栈,采用最佳Java库和标准精制而成。--QUARKUS 1.8.3Quarkus为GraalVM和HotSpot量身定制您的应用程序。惊人的快速启动时间,极低的RSS内存(不仅是堆大小!)在容器编排平台(如Kubernetes)中提供了近乎即时的向上扩展和高密度的内存利用率。我们使用一种称为编译时启动的技术。Quarkus是开源的。该项目的所有依赖项都可以在Apache Software License 2.0响应式编程-- jdk9之后的Publisher/Flow -- 关于quarkus的快,官方写了几个例子:https://quarkus.io/vision/continuum 开始适用 jdk:9+ maven:362+ ide:idea 下载支持quarkus的插件 idea本身集成的几个插件还有QuarkusIntegration 安装完插件之后创建就和springboot大...
aliyun OSS-分布式存储
结合之前学习一个开源项目的时候,重新写一下关于oss的文章(修改api使用及开通流程部分) 使用oss作为文件存储 关于oss作为文件存储的一个叙述 文件上传在系统中用的很频繁,所以我们需要将上传的文件进行存储,传统的将文件上传到本机已不适用分布式系统。自己搭建文件服务器有复杂性和维护成本。所以我们可以采用市面上成熟的文件存储服务,如阿里云的OSS对象存储服务 每个 OSS 的用户都会用到上传服务。Web 端常见的上传方法是用户在浏览器或 APP 端上传文件到应用服务器,应用服务器再把文件上传到 OSS。具体流程如下图所示。 和数据直传到 OSS 相比,以上方法有三个缺点: 上传慢:用户数据需先上传到应用服务器,之后再上传到OSS。网络传输时间比直传到OSS多一倍。如果用户数据不通过应用服务器中转,而是直传到OSS,速度将大有提升。而且OSS采用BGP带宽,能保证各地各运营商之间的传输速度。 扩展性差:如果后续用户多了,应用服务器会成为瓶颈。 费用高:需要准备多台应用服务器。由于OSS上传流量是免费的,如果数据直传到OSS,不通过应用服务器,可以省下几台...
linux各种系统更换国内软件源
alpine1234567891011set -eux \&& sed -i 's/dl-cdn.alpinelinux.org/mirrors.ustc.edu.cn/g' /etc/apk/repositories \&& apk update# 切换时区set -eux \&& apk add --no-cache tzdata \&& cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \&& echo "Asia/Shanghai" > /etc/timezone \&& apk del tzdata ubuntu 镜像中文?乱码现象 1234# 在 Dockerfile 中添加ENV LANG C.UTF-8# ENV LANGUAGE C.UTF-8 #可不配置# ENV LC_ALL C>UTF-8 #可不配置 阿里云镜像 12345678# 替换<...
