Nginx应用与运维——Nginx在Kubernetes中的应用(二)

从Linux到K8s:Docker容器化与Kubernetes集群实战指南 容器化技术通过操作系统级虚拟化实现应用与运行环境的隔离,其核心原理是基于Linux内核的命名空间和控制组机制。这种技术为现代软件部署带来了革命性价值,显著提升了资源利用率、部署效率和跨环境一致性。在微服务架构、持续集成和云原生应用等场景中,容器化已成为基础支撑技术。Docker作为最流行的容器运行时,简化了镜像构建和容器管理流程;而Kubernetes则进一步解决了容器编排、服务发现和自动扩缩容等分布式系统难题。本文聚焦Docker镜像管理和Kubernetes集群搭建等热词内容,通过完整实战演示帮助读者掌 阅读详情

2、Nginx Ingress

Kubernetes通过kube-proxy服务实现了Service的对外发布及负载均衡,它的各种方式都是基于传输层实现的。在实际的互联网应用场景中,不仅要实现单纯的转发,还有更加细致的策略需求,如果使用真正的负载均衡器更会增加操作的灵活性和转发性能。基于以上需求,Kubernetes引入了资源对象Ingress, Ingress为Service提供了可直接被集群外部访问的虚拟主机、负载均衡、SSL代理、HTTP路由等应用层转发功能。Kubernetes官方发布了基于GCE和Nginx的Ingress控制器,Nginx Ingress控制器能根据Service中Pod的变化动态地调整配置,结合Nginx的高稳定性、高性能、高并发处理能力等特点,使Kubernetes对集群中运行于容器的应用程序具有了更加灵活的应用层管理能力。

Nginx Ingress因使用Nginx的不同版本,分为Nginx官方版本和Kubernetes社区版。Nginx官方版本提供其基于Go语言开发的Ingress控制器,并与Nginx集成分为Nginx开源版和Nginx Plus版;开源版仅基于Nginx的原始功能,提供了Nginx原生配置指令的支持,相较于Nginx Plus版功能简单且不支持Pod变化的动态变更。Nginx Plus版则提供了诸多完善的商业功能,其支持Nginx原生配置指令、JWT验证、Pod变化的动态配置及主动健康检查等功能。Kubernetes社区版是基于Nginx的扩展版OpenResty及诸多第三方模块构建的,其基于OpenResty的Lua嵌入式编程能力,扩展了Nginx的功能,并基于balancer_by_lua模块实现了Pod变化的动态变更功能。本章将基于Kubernetes社区版的Nginx Ingress进行介绍。

2.1、Nginx Ingress原理

Nginx Ingress由资源对象Ingress、Ingress控制器、Nginx三部分组成,Ingress控制器用以将Ingress资源实例组装成Nginx配置文件(nginx.conf),并重新加载Nginx使变更的配置生效。当它监听到Service中Pod变化时通过动态变更的方式实现Nginx上游服务器组配置的变更,无须重新加载Nginx进程。工作原理如图所示。
在这里插入图片描述

  • Ingress,一组基于域名或URL把请求转发到指定Service实例的访问规则,是Kubernetes的一种资源对象,Ingress实例被存储在对象存储服务etcd中,通过接口服务被实现增、删、改、查的操作。
  • Ingress控制器(Ingress controller),用以实时监控资源对象Ingress、Service、End-point、Secret(主要是TLS证书和Key)​、Node、ConfigMap的变化,自动对Nginx进行相应的操作。
  • Nginx,实现具体的应用层负载均衡及访问控制。

Ingress控制器通过同步循环机制实时监控接口服务Ingress等资源对象的变化,当相关Service对应的端点列表有变化时,会通过HTTP POST请求将变化信息发送到Nginx内部运行的Lua程序进行处理,实现对NginxUpstream中后端Pod IP变化的动态修改。每个后端Pod的 IP及targetPort信息都存储在Nginx的共享内存区域,Nginx对每个获取的请求将使用配置的负载均衡算法进行转发,Nginx的配置中应用Lua模块的balancer_by_lua功能实现upstream指令域的动态操作,Pod IP变化及资源对象Ingress对upstream指令域相关注解(annotation)的变化无须执行Nginx的reload操作。

当Ingress控制器监控的其他资源对象变化时,会对当前变化的内容创建Nginx配置模型,如果新的配置模型与当前运行的Nginx配置模型不一致,则将新的配置模型按照模板生成新的Nginx配置,并对Nginx执行reload操作。Nginx配置模型避免了Nginx的无效reload操作。为避免因Nginx配置语法错误导致意外中断,Ingress控制器为Nginx的配置内容提供了冲突检测及合并机制,Ingress控制器使用了准入控制插件(Validating AdmissionWebhook)做验证Ingress配置语法的准入控制,验证通过 的Ingress资源对象才会被保存在存储服务etcd中,并被Ingress控制器生成确保没有语法错误的Nginx配置文件。

2.2、集成的第三方模块

Kubernetes的Nginx Ingress当前版本是0.25.1,其集成了Nginx的扩展版本Open-Resty的1.15.8.1版本,OpenResty的最大特点是集成了Lua脚本的嵌入式编程功能,基于Nginx的优化,使Nginx具有更强的扩展能力。Nginx Ingress通过Lua脚本编程,利用OpenResty的balancer_by_lua模块,可通过nginx-ingress控制器动态地修改Nginx上游服务器组的配置,无须Nginx进程的热加载,有效地解决了因Pod调度带来的Pod IP变化的问题。Kubernetes的Nginx Ingress在OpenResty基础上还集成了诸多的第三方模块,模块功能介绍如下。

  • (1)Ajp协议模块(nginx_ajp_module)
    Ajp协议模块是一个使Nginx实现Ajp协议代理的模块,该模块可以使Nginx通过Ajp协议连接到被代理的Tomcat服务。

    模块网址:https://github.com/nginx-modules/nginx_ajp_module

  • (2)InfluxDB输出模块(nginx-influxdb-module)
    InfluxDB输出模块可以使Nginx的每次请求记录以InfluxDB作为后端进行存储,其以非阻塞的方式对每个请求进行过滤,并使用UDP协议将处理后的数据发送到InfluxDB服务器。可以通过该模块实时监控Nginx的所有请求,获得每个请求的连接类型、请求状态,并通过InfluxDB实现相关故障状态的报警。

    模块网址:https://github.com/influxdata/nginx-influxdb-module

  • (3)GeoIP2数据库模块(ngx_http_geoip2)
    MaxMind的GeoIP数据库已经升级到第二代,GeoIP2数据库提供了准确的IP信息,包括IP地址的位置(国家、城市、经纬度)等数据。该模块增加了GeoIP2数据的支持。

    模块网址:https://github.com/nginx-modules/ngx_http_geoip2_module

  • (4)摘要认证模块(nginx-http-auth-digest)
    摘要认证模块使Nginx的基本认证功能增加了摘要认证(Digest Authentication)的支持,这是一种简单的身份验证机制,是对基本认证的一种安全改进,仅通过服务端及客户端根据用户名和密码计算的摘要信息进行验证,避免了密码的明文传递,增加了认证过程的安全性。

    模块网址:https://github.com/nginx-modules/nginx-http-auth-digest

  • (5)内容过滤模块(ngx_http_substitutions_filter_module)
    内容过滤模块是一个内容过滤功能的模块,其相对于Nginx自带的内容过滤模块(ngx_http_sub_module,参见4.3.4节)增加了正则匹配的替换方式。

    模块网址:https://github.com/nginx-modules/ngx_http_substitutions_filter_module

  • (6)分布式跟踪模块(nginx-opentracing)
    OpenTracing由API规范、实现该规范的框架和库以及项目文档组成,是一个轻量级的标准化规范,其位于应用程序和跟踪分析程序之间,解决了不同分布式追踪系统API不兼容的问题。OpenTracing允许开发人员使用API向应用程序代码中添加工具,实现业务应用中的分布式请求跟踪。分布式请求跟踪,也称分布式跟踪,是一种用于分析和监视应用程序的方法,特别是那些使用微服务体系结构构建的应用程序。分布式跟踪有助于查明故障发生的位置以及导致性能低下的原因。该模块是将Nginx的请求提供给OpenTracing项目的分布式跟踪系统用于应用的请求分析和监控。Nginx Ingress中集成了jaeger和zipkin两种分布式跟踪系统的OpenTracing项目插件,用户可根据实际情况进行选择使用。

    模块网址:https://github.com/opentracing-contrib/nginx-opentracing

  • (7)Brotli压缩模块(ngx_brotli)
    Brotli是Google推出的侧重于HTTP压缩的一种开源压缩算法,它使用lz77算法的现代变体、Huffman编码和基于上下文的二阶建模的组合来压缩数据。在与Deflate相似的压缩与解压缩速度下,增加了20%的压缩密度。在与gzip的测试下,因压缩密度高其消耗的压缩时间要比gzip多,但在客户端解压的时间则相当。

    模块网址:https://github.com/google/ngx_brotli

  • (8)ModSecurity连接器模块(ModSecurity-nginx)
    ModSecurity是一个开源的Web应用防火墙,其主要作用是增强Web应用的安全性并保护Web应用免受攻击。模块ModSecurity-nginx是一个Nginx的ModSecurity连接器,其提供了Nginx和libmodsecurity(ModSecurity v3)之间的通信通道。Nignx Ingress中已经集成了ModSecurity和OWASP规则集,在Nginx配置文件目录可以查看相关配置。

    模块网址:https://github.com/nginx-modules/ModSecurity-nginx

  • (9)lua-resty-waf模块
    lua-resty-waf是一个基于OpenResty的高性能Web应用防火墙,它使用Nginx Lua API及灵活的规则架构分析和处理HTTP请求信息,并不断开发和测试一些自定义的规则补丁来应对不断出现的新的安全威胁。lua-resty-waf提供了ModSecurity兼容的规则语法,支持ModSecurity现有规则的自动转换,用户无须学习新的语法规则就可以扩展lua-resty-waf的规则。

    模块网址:https://github.com/p0pr0ck5/lua-resty-waf。

2.3、安装部署

Helm是一个非常方便的Kubernetes应用部署工具,支持Nginx Ingress的快速部署和卸载。通过Helm可快速将Nginx Ingress部署在Kubernetes集群中,Helm中NginxIngress的1.19.1版本Chart部分参数如表所示。
在这里插入图片描述
在这里插入图片描述
Nginx Ingress的默认部署方式是Deployment,只会部署一个副本,Service对外发布类型是LoadBalancer,安装参数如下:

helm install --name nginx-ingress stable/nginx-ingress --set rbac.create=true
  • Helm安装的应用名称为nginx-ingress。
  • rbac.create参数用以为nginx-ingress创建RBAC资源,获取与接口服务的访问授权。
2.3.1、Nginx Ingress部署

Nginx Ingress以Pod形式运行在Kubernetes集群中,用户可根据Kubernetes的网络通信特点以及实际场景选择灵活的部署方式进行Nginx Ingress的部署,此处分别以基于资源对象Service的NodePort方式和Pod的hostNetwork方式举例介绍。

  • (1)Service的NodePort方式
    以NodePort类型部署Nginx Ingress,需要使用参数进行指定controller.service.type为NodePort。为便于管理,可以为Nginx Ingress创建单独使用的命名空间nginx-ingress,部署拓扑如图所示。
    在这里插入图片描述
    部署命令如下:

    # 安装nginx-ingress
    helm install --name nginx-ingress \
                 --namespace nginx-ingress \
                 stable/nginx-ingress \
                 --set "rbac.create=true,controller.autoscaling.enabled=true,controller. autoscaling.minReplicas=2,controller.service.type=NodePort,con-troller.service.externalTrafficPolicy=Local"
    
    # 也可以在创建后调整副本数
    kubectl scale --replicas=3 deployment/nginx-ingress
    
    • Helm安装的应用名称为nginx-ingress,命名空间为nginx-ingress。
    • 以默认的Deployment方式部署,设置Pod副本数为2,并以Service的NodePort方式对外发布服务,设置流量调度策略为Local。
    • Kubernetes将为nginx-ingress Service随机创建范围在30000~32767之间的Node-Port端口。
    • 用户将Kubernetes中节点IP和NodePort手动添加到传输层负载均衡中的虚拟服务器集群中。
    • 外部请求发送到传输层负载均衡虚拟服务器,传输层负载将请求数据转发到Kubernetes集群节点的NodePort。
    • NodePort类型的Service将请求负载到对应的NginxPod。
    • Nginx将用户请求进行应用层负载转发到配置的应用Pod。
    • 在该部署方式下,Nginx Pod需要使用Local的流量调度策略,获取客户端的真实IP。
  • (2)Pod的hostNetwork方式
    主机网络(hostNetwork)方式可以使Pod与宿主机共享网络命名空间,外网传输效率最高。因Pod直接暴露外网,虽然存在一定的安全问题,但不存在客户端源IP隐藏的问题,部署拓扑如图所示。
    在这里插入图片描述
    部署命令如下:

    # 以Deployment方式部署
    helm install --name nginx-ingress \
                 --namespace nginx-ingress \
                 stable/nginx-ingress \
                 --set "rbac.create=true,controller.service.type=ClusterIP,controller. hostNetwork=true"
    
    • Deployment方式部署时,Nginx Ingress的Service设置类型为ClusterIP,仅提供内部服务端口。
    • 用户将Kubernetes中节点IP及80、443端口手动添加到传输层负载均衡中的虚拟服务器集群中。
    • 用户请求经传输层负载均衡设备转发到Nginx, Nginx将用户请求负载到Kubernetes集群内的Pod应用。

    也可以使用DaemonSet部署方式,在集群中的每个节点自动创建并运行一个Nginx Ingress Pod,实现NginxIngress的自动扩展。

    # 以DaemonSet方式部署nginx-ingress并成为集群唯一入口
    helm install --name nginx-ingress \
                 --namespace nginx-ingress \
                 stable/nginx-ingress \
                 --set "rbac.create=true,controller.kind=DaemonSet,controller.service.type=ClusterIP,controller.hostNetwork=true"
    
  • ** (3)SSL终止(SSL Termination)和SSL透传(SSLPassthrough)**
    SSL终止模式下,客户端的TLS数据会在代理服务器Nginx中解密,解密的数据由代理服务器直接或再次TLS加密后传递给被代理服务器,这种模式下,相对增加代理服务器的计算负担,但方便了SSL证书的统一管理。

    SSL透传模式下,Nginx不会对客户端的HTTPS请求进行解密,加密的请求会被直接转发到后端的被代理服务器,这种方式常被应用到后端的HTTPS服务器需要对客户端进行客户端证书验证的场景,相对也会降低Nginx对TLS证书加解密的负担。由于请求数据是保持加密传输的,HTTP消息头将无法修改,所以消息头字段X-forwarded-*的客户端IP无法被添加。Nginx Ingress默认部署方式没有开启SSL透传的支持,需要在部署时使用参数–enable-ssl- passthrough进行开启。

    # 修改部署资源对象nginx-ingress-controller
    kubectl edit Deployment/nginx-ingress-controller -n nginx-ingress
    
    # 在规范部分添加容器启动参数--enable-ssl-passthrough
        spec:
            containers:
            - args:
              - /nginx-ingress-controller
              - --default-backend-service=nginx-ingress/nginx-ingress-default-backend
              - --election-id=ingress-controller-leader
              - --ingress-class=nginx
              - --configmap=nginx-ingress/nginx-ingress-controller
              - --enable-ssl-passthrough
    
  • (4)卸载Nginx Ingress
    Nginx的配置是以资源对象ConfigMap和Ingress方式存储在etcd服务中的,所以即便删除或重新部署Nginx Ingress也不会影响之前的配置。

    helm delete --purge nginx-ingress
    
2.3.2、管理工具

Nginx Ingress提供了基于kubectl工具的管理插件ingress-nginx,用于Nginx Ingress的日常维护。插件ingress-nginx安装方法如下:

# 安装插件ingress-nginx
kubectl krew install ingress-nginx

常见命令参数如下:

# 显示所有的Ingress实例摘要
kubectl ingress-nginx ingresses

# 查看所有的后端Service配置
kubectl ingress-nginx backends -n nginx-ingress

# 查看Nginx的所有配置
kubectl ingress-nginx conf -n nginx-ingress

# 查看指定主机名的Nginx配置
kubectl ingress-nginx conf -n nginx-ingress --host auth.nginxbar.org

# 查看Nginx服务器的配置目录
kubectl ingress-nginx exec -i -n nginx-ingress -- ls /etc/nginx

# 查看Nginx服务器的日志
kubectl ingress-nginx logs -n nginx-ingress

2.4、日志管理

Nginx Ingress是以Pod方式运行的,在默认配置下,Nginx的日志输出到stdout及stderr。Kubernetes下有很多日志收集解决方案,此处推荐使用Filebeat进行容器日志收集,并将容器日志实时发送到ELK集群,ELK环境部署可参见9.2节,日志收集方案逻辑如图所示。

在这里插入图片描述

  • Docker的默认日志驱动是json-driver,每个容器的日志输出到stdout及stderr中时,Docker的日志驱动会将容器日志以*-json.log的命名方式保存在/var/lib/docker/containers/目录下。
  • 在Kubernetes集群中以DaemonSet方式部署Filebeat应用,会在每个Node节点运行一个Filebeat应用Pod,进行每个Node节点的容器日志采集。
  • Filebeat采集的日志可以直接发送给Logstash服务器,也可以发送给Kafka后由Logstash服务器进行异步获取。
  • 所有日志被Logstash转到Elasticsearch集群进行存储。
  • 使用者通过Kibana进行日志查看和分析。

  • (1)部署Filebeat
    # 获取官方的Filebeat资源配置文件
    curl -L -O https://raw.githubusercontent.com/elastic/beats/7.3/deploy/kubernetes/filebeat-kubernetes.yaml
    
    # 修改filebeat输出目标为Logstash
    sed -i "s/   cloud.id/          #cloud.id/g" filebeat-kubernetes.yaml
    sed -i "s/   cloud.auth/        #cloud.auth/g" filebeat-kubernetes.yaml
    
    sed -i "s/    output.elasticsearch:/    output.logstash:/g" filebeat-kubernetes.yaml
    sed -i 's/    hosts:.*/     hosts: ["10\.10\.4\.37:5045"]/g' filebeat-kubernetes.yaml
    sed -i "s/    username/ #username/g" filebeat-kubernetes.yaml
    sed -i "s/    password/ #password/g" filebeat-kubernetes.yaml
    
    kubectl create -f filebeat-kubernetes.yaml
    
  • (2)配置Logstash
    按照kubernetes.labels.app创建容器日志在Elasticsearch中的索引,配置文件内容如下:
    cat>logstash/pipeline/k8s.conf<<EOF
    input {
        beats {
            port => 5045
            codec =>"json"
        }
    }
    filter {
        mutate {
            # 添加字段kubernetes_apps默认值为kubernetes_noapps
            add_field => { "kubernetes_apps" => "kubernetes_noapps" }
        }
        if [kubernetes][labels][app] {
            mutate {
                # 当存在kubernetes.labels.app时,将该字段复制为字段kubernetes_apps
                copy => { 
                "[kubernetes][labels][app]" => "kubernetes_apps"
                }
            }
        }
    }
    output {
        elasticsearch {
            # 将log输出到ES服务器
            hosts => ["http://10.10.4.37:9200"]
            # 根据字段kubernetes_apps的值创建ES索引
            index => "k8slog-%{kubernetes_apps}-%{[@metadata][version]}-%{+YYYY.MM.dd}"
        }
    }
    EOF
    
    Helm默认会为安装的应用添加app标签,通过Helm安装Nginx Ingress的app标签值为nginx-ingress,因此Elasticsearch中自动创建的索引名前缀为k8slog-nginx-ingress-*。

2.5、监控管理

Nginx Ingress中已经集成了Nginx的PrometheusExporter,可以直接使用Prometheus或Zabbix获取监控数据。Nginx监控支持可以在部署的时候使用部署参数controller.metrics.enabled=true启用。Prometheus及Zabbix的部署和使用可参见10.4节。

# 启用监控
helm install --name nginx-ingress \
             --namespace nginx-ingress \
             stable/nginx-ingress \
             --set "rbac.create=true,controller.kind=DaemonSet,controller.service.type=ClusterIP,controller.hostNetwork=true,controller.metrics.enabled=true"

curl http://节点IP:9913/metrics
深入探讨:Kubernetes Ingress 与 Nginx 的异同 Kubernetes Ingress 是 Kubernetes 集群中的一种 API 资源,用于管理外部访问集群内服务的 HTTP 和 HTTPS 路由。通过定义 Ingress 资源,您可以控制哪些外部请求能够访问集群中的哪些服务,以及如何路由这些请求。主要特点:声明式配置:通过 YAML 文件定义路由规则,易于版本控制和管理。与 Kubernetes 深度集成:直接利用 Kubernetes 的原生资源和控制器,简化运维。支持多种 Ingress 控制器。 阅读详情

相关推荐

Kubernetes集群部署Nginx服务_kubesphere nginx(1)

为了做好运维面试路上的助攻手,特整理了上百道,让你面试不慌心不跳,高薪offer怀里抱!这次整理的面试题,本份面试集锦涵盖了1、什么是运维?2、在工作中,运维人员经常需要跟运营人员打交道,请问运营人员是做什么工作的?3、现在给你三百台服务器,你怎么对他们进行管理?4、简述raid0 raid1raid5二种工作模式的工作原理及特点5、LVS、Nginx、HAproxy有什么区别?工作中你怎么选择?6、Squid、Varinsh和Nginx有什么区别,工作中你怎么选择?

m0_55030688的博客 479

《K8S集群运维指南》

《K8S集群运维指南》

东城绝神 8176

Linux云计算运维实战:Docker与Kubernetes从入门到精通

容器化技术作为现代云计算架构的核心基础,通过操作系统级别的虚拟化实现应用隔离与资源高效利用。其技术原理基于Linux内核的命名空间和控制组机制,为微服务架构提供标准化的部署单元。在工程实践中,Docker作为容器运行时标准,解决了环境一致性和依赖管理问题,而Kubernetes则提供容器编排能力,实现服务发现、负载均衡和自动扩缩容等关键功能。这套技术栈特别适用于企业级应用部署、持续集成流水线和混合云管理场景。本课程聚焦Docker镜像管理和Kubernetes集群运维实战,涵盖Ansible自动化部署和KV

weixin_30781775的博客 317

k8s搭建运维监控一体化教程:全面掌握 Kubernetes 技术的实践指南

k8s搭建运维监控一体化教程:全面掌握 Kubernetes 技术的实践指南 【下载地址】k8s搭建运维监控一体化教程 本项目提供了一份全面的k8s搭建与运维监控一体化教程,从环境规划到具体组件的搭建与配置,涵盖ETCD、Nginx、Keepalived等核心技术的部署。教程详细讲解了K8S集群的搭建过程,并介绍了Har...

gitblog_06765的博客 875

Docker与Kubernetes实战速通:Linux云计算运维核心技术教程

这次我们来看一套针对 Linux 云计算运维核心技术的实战教程。这套教程以“Docker + Kubernetes”为核心,目标是让零基础的学习者通过一期视频课程,快速掌握从入门到实战的关键技能,并附带了配套的课件资料。对于想快速进入运维领域,或希望系统化补强容器化与集群管理能力的技术人员来说,这是一个结构清晰的学习路径。 教程的核心价值在于其“速通”定位,它不追求面面俱到,而是聚焦于能立刻上手操作的核心工作流。你会学到如何在 Linux 环境下部署 Docker、构建镜像、运行容器,再到搭建 K8S 集群

CURSED! 452

【Kubernetes系列】K8s下部署前端Vue应用

K8s下部署前端Vue应用

邓邓子的博客 3034

K8S日常运维命令详解:IT运维人员必备的Kubernetes工具箱

Kubernetes 提供了强大的容器编排功能,而掌握 K8s 的运维命令是保障集群稳定运行的基础。通过掌握本文中的常见命令和解决方案,你能够高效地管理和维护 Kubernetes 集群。如果你遇到其他问题或者需要更深入的帮助,欢迎留言讨论。

码上飞扬的博客 1356

LTC3783 LED驱动控制器设计与效率优化详解

开关电源控制器是现代LED照明的核心器件,通过电流模式控制实现高效能量转换。其核心原理是通过采样电阻检测负载电流,配合误差放大器形成闭环调节,在汽车电子、显示背光等场景中确保±3%的电流精度。LTC3783作为典型代表,集成升压/降压-升压多拓扑支持,配合PWM调光技术可实现3000:1的无色偏调光范围。在工程实践中,需重点考量功率电感选型、MOSFET开关损耗与热管理设计,例如在38W功率方案中采用10μH/5A电感和4.5mΩ MOSFET可达成95%效率。该方案特别适用于需要应对9-36V宽输入电压波

weixin_36231030的博客 400

Kubernetes(K8s)详解

Kubernetes(K8S)是一个开源的容器编排引擎,用于自动化部署、扩缩和管理容器化应用。其核心架构包括Master Node(含API Server、Scheduler、Controller Manager等组件)和Worker Node(含Kubelet、Kube-Proxy等)。K8S提供核心特性如服务发现、存储编排、自我修复等,支持通过kubectl命令行工具进行资源管理。Namespace用于隔离资源,Pod是最小部署单元,而Deployment则管理Pod的多副本和自愈能力。通过YAML文件

Java资料站 2011

Docker部署FRP实现内网穿透

FRP是一款开源内网穿透工具,通过在公网服务器部署服务端(FRPS),内网设备运行客户端(FRPC)实现外部访问。支持TCP、UDP、HTTP等多种协议。部署时需配置服务端(如群晖NAS使用Docker)和客户端(如Windows下载可执行文件)。服务端需设置监听端口、控制面板及Token认证,客户端需指定服务器地址和相同Token。完成配置后可通过公网IP或域名访问内网资源,并在控制面板监控连接状态。

波哥技术栈 1601

文本→图像→视频:AIGC跨模态转换全流程解析

本文旨在系统性地解析AIGC领域中跨模态内容生成的技术原理和实现方法,特别聚焦于从文本到图像再到视频的完整转换流程。跨模态表示学习的基本原理文本到图像生成的核心技术图像到视频转换的关键算法端到端跨模态生成系统的构建方法实际应用场景和性能优化策略背景介绍:建立基本概念和知识框架核心概念:解析跨模态转换的关键技术和原理算法细节:深入讲解文本到图像、图像到视频的核心算法数学模型:提供必要的数学基础和公式推导项目实战:通过完整案例展示实现过程应用场景:探讨技术的实际应用可能性。

AI天才研究院 1353

Kubernetes(k8s)运行nginx应用

1.部署与运行nginx应用 # kubectl run nginx --image=nginx --replicas=2 --port=8080 --hostport=80 kubectl run --generator=deployment/apps.v1 is DEPRECATED and will be removed in a future version. Use kubectl ...

路~可以走过 3316

【顾邦小讲堂】第十九期 RC Snubber吸收电路详解:抑制MOSFET振铃现象与过冲的设计技巧!

通过RC Snubber电路有效抑制MOSFET DS端的过冲及振铃现象,帮助工程师们在设计中提升电路的稳定性和可靠性

GBupupup的博客 3789

一本书带你吃透Nginx应用与运维

新书速递导读:Nginx作为一款优秀的开源Web服务器软件,因具有性能稳定、高并发能力强、资源耗用低及高性能的负载均衡等特点,被众多互联网公司广泛应用于实际生产项目中。因此,它也成为每个...

华章IT官方博客 1583

深入解析进化算法中的选择与多样性

在计算科学的世界里,最优雅的解决方案往往源于最古老的智慧——大自然。进化算法(Evolutionary Algorithms, EAs)正是这样一种受达尔文自然选择学说启发的强大工具。它们通过模拟“适者生存”的过程,在庞大的可能性海洋中搜寻最优解。。:指的是深入挖掘和优化已知的优质解。这就像在一片已知的沃土上精耕细作,力求获得最高产量。强大的选择压力会促进这一过程。:指的是在整个搜索空间中寻找全新的、可能更优的解。这好比派遣探险队去发现新大陆,充满了未知与机遇。保持种群的多样性是探索的关键。

weixin_62533513的博客 717

第3章 基于三电平空间矢量的中点电位平衡策略

本文档深入探讨了基于三电平空间矢量的中点电位平衡策略。重点在于NPC型三电平逆变器的中点电位平衡问题,由于三电平结构的特点,使得直流侧两个电解电容器的充放电不均匀导致中点电压不均衡。文章通过对不同矢量作用下电流、电压的变化进行了详细的定量和定性分析,并提出了利用冗余小矢量的合理配置以及引入调制因子来解决中点电位偏移的方法,确保中点电压在一个完整的开关周期内的稳定性,进而提高系统的可靠性。

嵌入式老牛的博客 2182

Kubernetes(K8s)入门与实践指南

Kubernetes,简称,是一个开源的容器编排平台,用于自动化部署、扩缩容、负载均衡和管理容器化应用。它已经成为云原生应用的核心技术,被广泛应用于生产环境。本文将从到,帮你快速理解 Kubernetes 的整体框架与使用方法。

Linlichaoblms的博客 1040

【系统安全】Windows内核权限提升漏洞(CVE-2024-30088)

CVE-2024-30088是Windows内核提权漏洞,由越南安全研究员@Bùi Quang Hiếu详细分析。漏洞发生在AuthzBasepCopyoutInternalSecurityAttributes函数中,该函数在复制SecurityAttributesList时会使用用户提供的指针,在校验及复制期间存在时间差,导致存在TOCTOU漏洞。

李同學AI安全 1325

Nginx应用与运维——Nginx在Kubernetes中的应用(三)

Nginx的各种功能设置都是在配置文件中修改相关配置指令实现的,Nginx Ingress为实现对Nginx自动化的管理和操作,它对Nginx原始配置文件使用了模板化的方式进行管理,并为用户提供了通过资源配置进行Nignx配置修改的方法。Nginx Ingress配置映射是由Nginx Ingress控制器提供相关的预置键值对,这些键值对与Nginx的配置指令或实现某一特定功能的指令集相对应,提供给用户对Nginx进行相关配置。配置映射的配置为全局负载均衡的配置,详见本章的注解负载均衡说明。

吴声子夜歌的博客 222

2026年Java 开发工程师常见面试简答题

本文整理了Java开发工程师面试常见简答题及详细解析,涵盖Java基础、集合框架、并发编程、JVM等核心考点。主要内容包括:1. Java基础概念:JDK/JRE/JVM区别、面向对象特性、重载与重写、接口与抽象类、String特性等 2. 集合框架:ArrayList/LinkedList区别、HashMap实现原理、线程安全方案、集合类型对比 3. 并发编程:synchronized原理、volatile作用、线程创建方式、线程池参数与策略、死锁处理 4. JVM相关:内存区域划分、垃圾回收算法、类加载

不务正业的猿 371

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

Nginx应用与运维——Nginx在Kubernetes中的应用(一)

Kubernetes是分布式容器管理系统,它提供了对容器快速部署、网络规划、负载调度及宿主机节点自动化更新和维护的管理机制,使容器自动化按照用户期望的方式运行。与大多数分布式系统一样,Kubernetes集群由主节点(Master)和多个从节点(Node)组成,集群中运行多个应用组件,是计算、存储、网络资源的集合,为运行的各种应用提供资源管理、调度和维护等功能。Kubernetes架构如图所示。具体说明如下。

吴声子夜歌的博客 193

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

一文读懂 Kubernetes(K8s):从核心概念到组件交互

摘要: Kubernetes(K8s)是云原生时代的容器编排标准,通过主从架构实现自动化运维、跨环境一致性和资源高效利用。核心组件包括Master节点(kube-apiserver、etcd等)负责决策,Worker节点(kubelet、kube-proxy等)负责执行,配合附加组件(如CoreDNS)增强功能。用户通过定义Pod、Service等资源对象描述需求,K8s基于“声明式API”自动调整状态。典型部署流程涵盖请求提交、调度、容器创建等环节,最终实现基础设施的代码化管理。理解K8s的核心在于掌握其

weixin_62782025的博客 5210

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

kubernetes(Jenkins、kubernetes核心、K8s实战-KubeSphere、)

手动部署# 1:表示stdout标准输出 2:表示stderr标准错误 &:等效于标准输出# 2>&1,意思是错误输出等同于标准输出。把标准输出和错误输出全部导入日志xxx.log里。创建没有任务的容器 不停止docker run -d --name 容器名称 -p 端口号:端口号 镜像名称 sleep infinityDevOps:Development和Operations的组合词,它是一种重视软件开发人员(Dev)和IT运维技术人员(Ops)之间沟通合作的文化、运动或惯例。

小丁的博客 2479

Kubernetes部署实战:使用Python Project Blueprint将应用部署到k8s集群

Python Project Blueprint是一个功能强大的Python项目模板,它提供了完整的Kubernetes部署配置,帮助开发者快速将Python应用部署到K8s集群。本文将详细介绍如何使用该模板实现应用的容器化部署,从环境准备到最终验证,让你轻松掌握K8s部署技巧。 ## 📋 准备工作:环境与工具 在开始部署前,请确保你的环境中已安装以下工具: - Docker:用于构建应用镜

gitblog_00337的博客 1128

新书速览|云原生Kubernetes自动化运维实践

云原生Kubernetes自动化运维实践》从Kubernetes的基本概念讲起,结合大量实例演示,逐步深入到高级应用,如Ingress-Nginx服务网关、存储与持久化解决方案、配置和密钥管理、调度和认证策略等。在Linux相关技术领域拥有深厚的造诣,尤其在容器化、虚拟化、自动化运维、系统监控、脚本编写以及服务网格等方面具备丰富的实践经验和深入的研究。通过Prometheus与Grafana的集成监控,以及Istio服务网格的实践,读者将能够建立起强大的监控和流量管理体系。

quanzhankaifaqua的博客 1316

nginx 动态代理_一本书带你吃透Nginx应用与运维

新书速递导读:Nginx作为一款优秀的开源Web服务器软件,因具有性能稳定、高并发能力强、资源耗用低及高性能的负载均衡等特点,被众多互联网公司广泛应用于实际生产项目中。因此,它也成为每个互联网技术人员的必备技能。今天为大家介绍一本新书《Nginx应用与运维实战》这是一部基于Nginx新版本和云原生应用场景系统讲解Nginx的著作,是作者十余年运维经验的总结。本书从应用、运维以及与Kube...

weixin_39805409的博客 408
上一篇: Nginx应用与运维——Nginx在Kubernetes中的应用(一)
下一篇: Nginx应用与运维——Nginx在Kubernetes中的应用(三)
吴声子夜歌
博客等级 码龄9年 2688粉丝 2268原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值