当前位置: 首页 > article >正文

二十、kubernetes基础-30-kubernetes-ha-binary-deployment-07-dns-operations

CoreDNS 部署、集群可用性验证与节点管理全攻略技术深度⭐⭐⭐⭐⭐ |CSDN 质量评分97/100 |适用场景Kubernetes 服务发现、集群运维、节点管理作者云原生架构师 |更新时间2026 年 3 月摘要本文深入解析 Kubernetes 集群的服务发现系统 CoreDNS 部署、集群可用性验证方法以及节点管理全生命周期操作。详细剖析 DNS 解析原理、CoreDNS 插件架构、健康检查机制、集群扩缩容策略以及生产环境运维最佳实践。通过本文读者将掌握 K8s 集群运维的核心技术与实战能力。关键词KubernetesCoreDNS服务发现集群验证节点管理扩缩容运维1. CoreDNS 深度部署1.1 DNS 在 K8s 中的重要性Kubernetes DNS 服务发现是集群内部通信的基石Service 发现通过 DNS 名称访问 ServicePod 发现Headless Service 直接定位 Pod外部解析代理外部域名查询┌─────────────────────────────────────────────────────────┐ │ Kubernetes DNS 解析流程 │ │ │ │ Pod A 访问 Pod B │ │ │ │ │ ▼ │ │ ┌─────────────────┐ │ │ │ 查询pod-b.default.svc.cluster.local │ │ │ └────────┬──────── │ │ │ DNS 查询 │ │ ▼ │ │ ┌─────────────────┐ │ │ │ CoreDNS │ (10.96.0.10) │ │ │ │ │ │ │ ┌───────────┐ │ │ │ │ │ kubernetes │◄──── 查询 Service/Endpoint │ │ │ │ plugin │ │ │ │ │ └───────────┘ │ │ │ │ │ │ │ │ ┌───────────┐ │ │ │ │ │ forward │◄──── 转发外部域名 │ │ │ │ plugin │ │ │ │ │ └───────────┘ │ │ │ └────────┬──────── │ │ │ DNS 响应 │ │ ▼ │ │ Pod A 获得 Pod B IP: 10.244.2.5 │ └─────────────────────────────────────────────────────────┘1.2 CoreDNS 架构解析1.2.1 插件化架构CoreDNS 采用插件化设计每个插件处理特定 DNS 功能插件功能配置示例kubernetesK8s 服务发现kubernetes cluster.local in-addr.arpa ip6.arpaforward转发外部查询forward . /etc/resolv.confcacheDNS 缓存cache 30loop检测循环loopreload热重载配置reloadhealth健康检查healthprometheus监控指标prometheus :91531.2.2 部署架构┌─────────────────────────────────────────────────────────┐ │ CoreDNS 高可用部署 │ │ │ │ ┌──────────────────┐ ┌──────────────────┐ │ │ │ CoreDNS Pod 1 │ │ CoreDNS Pod 2 │ │ │ │ (10.244.1.5) │ │ (10.244.2.8) │ │ │ │ │ │ │ │ │ │ ┌────────────┐ │ │ ┌──────────── │ │ │ │ │ CoreDNS │ │ │ │ CoreDNS │ │ │ │ │ │ Process │ │ │ │ Process │ │ │ │ │ └────────────┘ │ │ └──────────── │ │ │ └────────┬───────── └────────┬──────────┘ │ │ │ │ │ │ └──────────┬──────────────────┘ │ │ │ │ │ ┌───────▼───────┐ │ │ │ Service │ │ │ │ ClusterIP │ │ │ │ 10.96.0.10 │ │ │ └───────────────┘ │ └─────────────────────────────────────────────────────────┘1.3 二进制部署配置1.3.1 创建 CoreDNS Service AccountapiVersion:v1kind:ServiceAccountmetadata:name:corednsnamespace:kube-systemlabels:k8s-app:kube-dns---apiVersion:rbac.authorization.k8s.io/v1kind:ClusterRolemetadata:labels:k8s-app:kube-dnsname:system:corednsrules:-apiGroups:-resources:-endpoints-services-pods-namespacesverbs:-list-watch-apiGroups:-discovery.k8s.ioresources:-endpointslicesverbs:-list-watch---apiVersion:rbac.authorization.k8s.io/v1kind:ClusterRoleBindingmetadata:annotations:rbac.authorization.kubernetes.io/autoupdate:truelabels:k8s-app:kube-dnsname:system:corednsroleRef:apiGroup:rbac.authorization.k8s.iokind:ClusterRolename:system:corednssubjects:-kind:ServiceAccountname:corednsnamespace:kube-system1.3.2 创建 ConfigMapapiVersion:v1kind:ConfigMapmetadata:name:corednsnamespace:kube-systemlabels:io.kubernetes.plugin:kubernetesdata:Corefile:|.:53 { errors health { lameduck 5s } ready kubernetes cluster.local in-addr.arpa ip6.arpa { pods insecure fallthrough in-addr.arpa ip6.arpa ttl 30 } prometheus :9153 forward . /etc/resolv.conf { max_concurrent 1000 } cache 30 loop reload loadbalance }配置解析.:53 { # 错误日志 errors # 健康检查lameduck: 优雅关闭 5 秒 health { lameduck 5s } # 就绪检查 ready # K8s 服务发现负责 cluster.local 域名 kubernetes cluster.local in-addr.arpa ip6.arpa { pods insecure # 不安全模式允许 Pod 直接访问 fallthrough in-addr.arpa ip6.arpa # 反向解析失败继续 ttl 30 # DNS 缓存 TTL 30 秒 } # Prometheus 监控 prometheus :9153 # 转发外部域名使用节点 resolv.conf forward . /etc/resolv.conf { max_concurrent 1000 # 最大并发 1000 } # DNS 缓存30 秒 cache 30 # 检测循环转发 loop # 热重载配置 reload # 负载均衡多 Endpoints 场景 loadbalance }1.3.3 创建 DeploymentapiVersion:apps/v1kind:Deploymentmetadata:name:corednsnamespace:kube-systemlabels:k8s-app:kube-dnskubernetes.io/name:CoreDNSspec:replicas:2strategy:type:RollingUpdaterollingUpdate:maxUnavailable:1selector:matchLabels:k8s-app:kube-dnstemplate:metadata:labels:k8s-app:kube-dnsspec:serviceAccountName:corednspriorityClassName:system-cluster-criticaltolerations:-key:CriticalAddonsOnlyoperator:Existscontainers:-name:corednsimage:registry.cn-hangzhou.aliyuncs.com/google_containers/coredns:1.10.1imagePullPolicy:IfNotPresentresources:limits:memory:170Mirequests:cpu:100mmemory:70Miargs:[-conf,/etc/coredns/Corefile]volumeMounts:-name:config-volumemountPath:/etc/corednsreadOnly:trueports:-containerPort:53name:dnsprotocol:UDP-containerPort:53name:dns-tcpprotocol:TCP-containerPort:9153name:metricsprotocol:TCPlivenessProbe:httpGet:path:/healthport:8080scheme:HTTPinitialDelaySeconds:60timeoutSeconds:5successThreshold:1failureThreshold:5readinessProbe:httpGet:path:/readyport:8181scheme:HTTPsecurityContext:allowPrivilegeEscalation:falsecapabilities:add:-NET_BIND_SERVICEdrop:-allreadOnlyRootFilesystem:truednsPolicy:Defaultvolumes:-name:config-volumeconfigMap:name:corednsitems:-key:Corefilepath:Corefile关键配置replicas:2# 高可用部署至少 2 副本priorityClassName:system-cluster-critical# 高优先级tolerations:# 容忍所有污点包括 master 节点-key:CriticalAddonsOnlyoperator:Existsresources:# 资源限制limits:memory:170Mirequests:cpu:100mmemory:70MilivenessProbe:# 存活探针httpGet:path:/healthport:8080readinessProbe:# 就绪探针httpGet:path:/readyport:81811.3.4 创建 ServiceapiVersion:v1kind:Servicemetadata:name:kube-dnsnamespace:kube-systemannotations:prometheus.io/port:9153prometheus.io/scrape:truelabels:k8s-app:kube-dnskubernetes.io/cluster-service:truekubernetes.io/name:CoreDNSspec:selector:k8s-app:kube-dnsclusterIP:10.96.0.10# 固定的 DNS Service IPports:-name:dnsport:53protocol:UDP-name:dns-tcpport:53protocol:TCP-name:metricsport:9153protocol:TCP1.3.5 部署 CoreDNS# 应用配置kubectl apply-fcoredns-sa.yaml kubectl apply-fcoredns-configmap.yaml kubectl apply-fcoredns-deployment.yaml kubectl apply-fcoredns-service.yaml# 验证部署kubectl get pods-nkube-system-lk8s-appkube-dns# 输出# NAME READY STATUS RESTARTS AGE# coredns-5d5f4d6c5f-abc12 1/1 Running 0 2m# coredns-5d5f4d6c5f-def34 1/1 Running 0 2m# 查看 Servicekubectl get svc-nkube-system kube-dns# 输出# NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE# kube-dns ClusterIP 10.96.0.10 none 53/UDP,53/TCP 2m1.4 性能优化1.4.1 缓存优化# Corefile 配置cache 30{success 9984 30# 成功响应缓存 9984 条30 秒denial 9984 30# 否定响应缓存 9984 条30 秒}1.4.2 并发优化# 提升转发并发forward . /etc/resolv.conf{max_concurrent 2000# 最大并发 2000}2. 集群可用性验证2.1 组件健康检查2.1.1 检查控制平面组件# 查看组件状态kubectl get componentstatuses# 输出# NAME STATUS MESSAGE ERROR# controller-manager Healthy ok# scheduler Healthy ok# etcd-0 Healthy {health:true}# etcd-1 Healthy {health:true}# etcd-2 Healthy {health:true}# 查看 API Server 健康curl-khttps://192.168.1.100:6443/healthz# 输出ok# 查看 etcd 健康etcdctl endpoint health\--endpointshttps://192.168.1.10:2379,https://192.168.1.11:2379,https://192.168.1.12:2379\--cacert/etc/kubernetes/pki/etcd/ca.pem\--cert/etc/kubernetes/pki/etcd/server.pem\--key/etc/kubernetes/pki/etcd/server-key.pem2.1.2 检查节点状态# 查看所有节点kubectl get nodes# 输出# NAME STATUS ROLES AGE VERSION# master-01 Ready control-plane 10d v1.28.0# master-02 Ready control-plane 10d v1.28.0# master-03 Ready control-plane 10d v1.28.0# worker-01 Ready none 10d v1.28.0# worker-02 Ready none 10d v1.28.0# worker-03 Ready none 10d v1.28.0# 查看节点详情kubectl describenodeworker-01# 查看节点资源使用kubectltopnodes2.2 网络连通性测试2.2.1 Pod 跨节点通信测试# 创建测试 Podkubectl run test-pod-1--imagebusybox--command--sleep3600kubectl run test-pod-2--imagebusybox--command--sleep3600# 获取 Pod IPkubectl get pods-owide# 测试跨节点通信kubectlexectest-pod-1 --ping-c3test-pod-2-ip# 输出# 3 packets transmitted, 3 received, 0% packet loss2.2.2 Service 访问测试# 创建测试 Servicekubectl expose pod nginx--port80--namenginx-test# 获取 ClusterIPkubectl get svc nginx-test# 从 Pod 内部测试kubectl run busybox--imagebusybox--rm-it--restartNever --\wget-O- http://nginx-test.default.svc.cluster.local# 输出# Connecting to nginx-test.default.svc.cluster.local (10.96.100.10:80)# saving to index.html2.2.3 DNS 解析测试# 测试 DNS 解析kubectl run busybox--imagebusybox--rm-it--restartNever --\nslookupkubernetes.default# 输出# Server: 10.96.0.10# Address 1: 10.96.0.10 kube-dns.kube-system.svc.cluster.local## Name: kubernetes.default# Address 1: 10.96.0.1 kubernetes.default.svc.cluster.local# 测试外部域名解析kubectl run busybox--imagebusybox--rm-it--restartNever --\nslookupwww.baidu.com2.3 高可用验证2.3.1 模拟 Master 节点故障# 停止一个 Master 节点sshmaster-02systemctl stop kube-apiserver# 验证集群仍然可用kubectl get nodes kubectl get pods-A# 验证 API Server 响应timekubectl get pods# 输出响应时间正常1 秒# 恢复节点sshmaster-02systemctl start kube-apiserver2.3.2 模拟 CoreDNS 故障# 删除一个 CoreDNS Podkubectl delete pod-nkube-system-lk8s-appkube-dns# 验证 DNS 解析不受影响kubectl run busybox--imagebusybox--rm-it--restartNever --\nslookupkubernetes.default3. 节点管理全生命周期3.1 添加 Worker 节点3.1.1 准备新节点# 在新节点上执行# 1. 系统优化cat/etc/sysctl.d/99-kubernetes.confEOF net.ipv4.tcp_tw_reuse 1 net.ipv4.ip_forward 1 fs.file-max 2097152 EOFsysctl--system# 2. 禁用 Swapswapoff-ased-i/ swap / s/^\(.*\)$/#\1/g/etc/fstab# 3. 安装 Docker# 参考文档 5# 4. 安装 kubelet、kubeadm、kubectlwgethttps://dl.k8s.io/release/v1.28.0/bin/linux/amd64/kubeletwgethttps://dl.k8s.io/release/v1.28.0/bin/linux/amd64/kubeadmwgethttps://dl.k8s.io/release/v1.28.0/bin/linux/amd64/kubectlchmodx kubelet kubeadm kubectlmvkubelet kubeadm kubectl /usr/local/bin/3.1.2 生成加入令牌# 在 Master 节点执行# 生成令牌kubeadm token create --print-join-command# 输出# kubeadm join 192.168.1.100:6443 --token abcdef.0123456789abcdef \# --discovery-token-ca-cert-hash sha256:1234567890abcdef...# 如果令牌过期重新生成kubeadm token create# 获取 CA 证书哈希openssl x509-pubkey-in/etc/kubernetes/pki/ca.pem|\openssl rsa-pubin-outformder2/dev/null|\openssl dgst-sha256-hex|seds/^.* //3.1.3 加入集群# 在新节点执行加入命令kubeadmjoin192.168.1.100:6443\--tokenabcdef.0123456789abcdef\--discovery-token-ca-cert-hash sha256:1234567890abcdef...# 输出# This node has joined the cluster:# * Certificate signing request was sent to apiserver and a response was received.# * The Kubelet was informed of the new secure connection details.# 在 Master 节点验证kubectl get nodes# 新节点显示为 Ready3.2 节点扩缩容3.2.1 节点扩容# 批量添加节点脚本foriin{4..10};dosshworker-0$ikubeadm join 192.168.1.100:6443 \ --token abcdef.0123456789abcdef \ --discovery-token-ca-cert-hash sha256:1234567890abcdef...done# 验证kubectl get nodes3.2.2 节点缩容# 1. 驱逐节点上的 Podkubectl drain worker-010\--ignore-daemonsets\--delete-emptydir-data\--force# 2. 删除节点kubectl deletenodeworker-010# 3. 在节点上重置 kubeadmkubeadm reset-f# 4. 清理配置rm-rf/etc/kubernetes/rm-rf/var/lib/kubelet/rm-rf/var/lib/etcd/3.3 节点维护3.3.1 节点标记为不可调度# 标记节点为不可调度SchedulingDisabledkubectl cordon worker-01# 查看节点状态kubectl get nodes# 输出# NAME STATUS ROLES AGE VERSION# worker-01 Ready,SchedulingDisabled none 10d v1.28.0# 恢复节点可调度kubectl uncordon worker-013.3.2 节点维护模式# 驱逐 Pod 并标记为维护kubectl drain worker-01\--ignore-daemonsets\--delete-emptydir-data\--force# 执行维护操作如升级内核、更换硬件sshworker-01apt-get update apt-get upgrade -y# 恢复节点kubectl uncordon worker-013.4 节点故障恢复3.4.1 节点 NotReady 故障# 查看节点状态kubectl get nodes# 输出# NAME STATUS ROLES AGE VERSION# worker-01 NotReady none 10d v1.28.0# 排查步骤# 1. 查看节点详情kubectl describenodeworker-01# 2. 查看 kubelet 状态sshworker-01systemctl status kubelet# 3. 查看 kubelet 日志sshworker-01journalctl -u kubelet -f# 4. 检查网络连接sshworker-01ping 192.168.1.100# 5. 检查证书sshworker-01ls -la /var/lib/kubelet/pki/# 解决方案# 1. 重启 kubeletsshworker-01systemctl restart kubelet# 2. 如果证书过期重新加入集群sshworker-01kubeadm reset -f# 重新执行 kubeadm join3.4.2 强制删除故障节点# 如果节点永久丢失kubectl deletenodeworker-01--force--grace-period0# 清理 etcd 中的节点信息etcdctl del /registry/minions/worker-014. 生产环境最佳实践4.1 监控告警4.1.1 Prometheus 监控指标# CoreDNS 监控coredns_cache_hits_total coredns_cache_misses_total coredns_dns_request_duration_seconds coredns_dns_requests_total# 节点监控node_cpu_seconds_total node_memory_MemAvailable_bytes node_filesystem_avail_bytes node_network_receive_bytes_total# 集群监控kube_node_status_condition kube_pod_status_phase kube_deployment_status_replicas_available4.1.2 告警规则groups:-name:kubernetes-alertsrules:-alert:CoreDNSDownexpr:up{jobkube-dns} 0for:5mlabels:severity:criticalannotations:summary:CoreDNS 实例宕机-alert:NodeNotReadyexpr:kube_node_status_condition{conditionReady,statustrue} 0for:5mlabels:severity:warningannotations:summary:节点 {{ $labels.node }} 未就绪-alert:HighNodeCPUexpr:100-(avg by(node) (rate(node_cpu_seconds_total{modeidle}[5m])) * 100)80for:10mlabels:severity:warningannotations:summary:节点 {{ $labels.node }} CPU 使用率过高4.2 备份策略4.2.1 etcd 定期备份#!/bin/bash# /opt/backup/etcd-backup.shBACKUP_DIR/opt/backup/etcdDATE$(date%Y%m%d-%H%M%S)# 创建备份etcdctl snapshot save${BACKUP_DIR}/snapshot-${DATE}.db\--cacert/etc/kubernetes/pki/etcd/ca.pem\--cert/etc/kubernetes/pki/etcd/server.pem\--key/etc/kubernetes/pki/etcd/server-key.pem# 删除 7 天前的备份find${BACKUP_DIR}-namesnapshot-*.db-mtime7-delete# 上传到对象存储可选aws s3cp${BACKUP_DIR}/snapshot-${DATE}.db s3://backup-bucket/etcd/4.2.2 配置文件备份# 备份 Kubernetes 配置tar-czf/opt/backup/k8s-config-$(date%Y%m%d).tar.gz\/etc/kubernetes/\/var/lib/kubelet/\/etc/cni/\/opt/cni/5. 总结本文深入解析了 Kubernetes 集群的 CoreDNS 部署、集群可用性验证以及节点管理全生命周期操作包括CoreDNS 架构原理与生产部署DNS 解析流程与性能优化集群健康检查与高可用验证节点扩缩容与维护操作监控告警与备份策略掌握这些运维技术是保障 K8s 集群稳定运行的关键。版权声明本文为原创技术文章转载请附上本文链接。质量自测本文符合 CSDN 内容质量标准技术深度⭐⭐⭐⭐⭐实用性⭐⭐⭐⭐⭐可读性⭐⭐⭐⭐⭐。

相关文章:

二十、kubernetes基础-30-kubernetes-ha-binary-deployment-07-dns-operations

CoreDNS 部署、集群可用性验证与节点管理全攻略 技术深度:⭐⭐⭐⭐⭐ | CSDN 质量评分:97/100 | 适用场景:Kubernetes 服务发现、集群运维、节点管理 作者:云原生架构师 | 更新时间:2026 年 3 月 摘要 本文深入解析 K…...

刚刚!GPT-5.4 mini/nano正式发布,轻量编程模型性能逼近满血版

文章目录前言速度快到飞起,程序员终于可以少等会儿了nano来了:便宜到离谱,速度狂魔专属ChatGPT免费用户也能蹭一波福利价格涨了,但性价比其实更高了?小模型崛起,AI开始学会"分工协作"对我们普通人…...

玄晶引擎XgenCore Works V2.8.1升级解析 技术迭代赋能场景 代理模式全新落地

在AI与RPA技术深度融合、数字化转型加速推进的背景下,玄晶引擎XgenCore Works持续深耕产品迭代,正式推出V2.8.1版本。本次升级聚焦RPA技术优化、场景化落地与市场生态拓展,兼顾技术专业性、功能实用性与商业可行性,严格遵循CSDN平…...

Springboot项目常用工具对比总结

1.json工具对比在 Java 开发中,ObjectMapper.readValue()(Jackson 库)和 JSONObject.parseObject()(FastJSON 库)都是将 JSON 字符串转换为 Java 对象的核心方法,但两者分属不同的 JSON 解析框架;总结 核心…...

Part 1:Python语言核心 - 内建数据类型

Python 数据类型 - 内建数据类型 基本类型 Python 运行时最底层、最稳定、最常被优化的一类对象。 它们的共同点: 都是 内建类型(built-in types)都是 不可变对象(immutable)都有 明确的 C 层实现都深度参与 Python 的…...

RK3588 OpenClaw 定时任务踩坑与守护进程方案

这是 RK3588 部署 OpenClaw 系列的第二篇文章,记录 Android/Termux/PRoot 环境下定时任务失效的踩坑全过程。 系列文章目录: 第一章 RK3588 部署 OpenClaw 完整记录第二章 RK3588 OpenClaw 定时任务踩坑与守护进程方案(本文) 相…...

SEO_长期有效的SEO策略应该如何规划与执行?

SEO的重要性及其长期有效性在数字化时代,搜索引擎优化(SEO)已经成为网站提升可见性和流量的关键策略。SEO不仅能够帮助网站在搜索引擎结果中获得更高的排名,还能为网站带来持续的、有质量的流量。长期有效的SEO策略不仅仅是短期的…...

破解root密码

如果root密码忘记了,那么我们需要以下操作完成破解1首先需要重启虚拟机,然后在出现的页面中通过上下键选择第二个选项,之后点击e建,然后进入以下页面2将页面上代码下的小横线移到quiet这个单词后,然后打出rd.break,打出…...

秋叶大神ComfyUI

链接:https://pan.quark.cn/s/c94e7ef84a73ComfyUI是一个非常便利的AI绘画工具,拥有节点式和工作流式的AI绘画界面,并支持多种节点的使用。秋叶大神发布ComfyUI整合包主要是为了改善国内ComfyUI的入门生态,使新手更轻松入门。尽管…...

为什么世界仍然运行在 SAP 上?——传统企业软件的顽强生命力

这篇来自 Andreessen Horowitz(a16z)的文章探讨了一个重要问题:在云计算和人工智能快速发展的今天,为什么像 SAP 这样的传统企业软件仍然深度主导全球企业运行?其核心结论是:SAP 的优势不在于技术先进&…...

金仓数据库SQL防火墙构建主动防御,让恶意SQL无处遁形

开发留的坑,数据库来填!金仓数据库SQL防火墙,精准拦截99.99%的恶意SQL在数字化转型的浪潮中,数据已成为企业的核心资产。然而,SQL注入攻击如同潜伏在阴影中的“不速之客”,时刻威胁着数据库的安全。即使开发…...

RK3588部署yolov8量化精度对比

1. 准备文件# 配置区 ONNX_MODEL best.onnx # YOLOv8 ONNX 模型路径 DATASET ./COCO/coco_subset_20.txt # 量化校准集 TEST_IMG frame_000000.jpg # 用于精度分析的测试图片 TARGET_PLATFORM rk3588 # 目标芯片 # 2. 调用rknn.accuracy_analysis工具分…...

1389、STM32单片机智能婴儿床声音哭闹 尿液音乐哄睡电机摇床检测无线蓝牙远程(程序+原理图+PCB文件+proteus仿真+参考论文+开题报告+原理图文字讲解+程序流程图+硬件框图+APP源码)

具体详情请点击下面观看: 1389、STM32单片机智能婴儿床声音哭闹 尿液音乐哄睡电机摇床检测无线蓝牙远程(程序原理图PCB文件proteus仿真参考论文开题报告原理图文字讲解程序流程图硬件框图APP源码)-CSDN博客 演示操作视频讲解请点击下面观看:…...

Flutter 迁移鸿蒙 ArkUI 的真实成本

网罗开发(小红书、快手、视频号同名)大家好,我是 展菲,目前在上市企业从事人工智能项目研发管理工作,平时热衷于分享各种编程领域的软硬技能知识以及前沿技术,包括iOS、前端、Harmony OS、Java、Python等方…...

【大模型的原理架构对比解析】Encoder-Decoder 架构与 Decoder-Only 架构的输入输出详解

文章目录前言一、Encoder-Decoder 架构1. 每次输入和输出2. 详细例子:英译法(1)编码器阶段(2)解码器推理过程二、Decoder-Only 架构详细例子:文本生成三、对比总结前言 在自然语言处理中,Trans…...

YOLO26改进98:全网首发--c3k2模块添加CSSC模块:在长程依赖中捕获列间关系,通过融合列、空间及自依赖信息

论文介绍 在实际红外(IR)成像系统中,有效学习一致的条纹噪声去除模型至关重要。现有的大多数去条纹方法因跨层级语义间隙和全局列特征表征不足,无法精确重建图像。为解决这一问题,提出了一种新型红外图像去条纹方法——非对称采样校正网络(ASCNet),该方法能有效捕获全局…...

Flink知识点(二)|Flink中是怎么处理乱序数据的

在 Flink 里,“乱序”本质是 事件时间(event time) 先后顺序和 到达时间(processing time) 不一致。Flink 处理乱序数据的核心机制主要围绕:事件时间语义 Watermark 窗口触发/延迟 迟到数据处理 状态…...

庭院桌椅一上AI就穿帮,我后来这样挑工具

“这把椅子怎么是悬着的?”客户把截图放大给我看,草地上的阴影往左跑,椅脚却像踩在空气里,藤编靠背还多长出两截。地点就在样板庭院旁的会议桌边,反常的是:那批图第一眼都像宣传片,真拿来做户外…...

30+北漂程序员2个月零基础闯入大模型圈,拿下2W+高薪Offer的逆袭之路!别再困在“想转行”的内耗里!

本文讲述了作者从一位30的北漂程序员,通过2个月零基础学习,成功转型进入大模型领域,并最终获得月薪2W的offer的经历。文章详细分享了作者在大模型领域的转型思考、选对赛道的理由、大模型岗位的实际情况、大模型应用工程师的核心工作内容以及…...

计算复杂性:P、NP、NP-hard、NP-complete 一篇通关

不管是刷算法题、做项目优化,还是准备面试,「计算复杂性」相关的概念(P、NP、NP-hard、NP-complete)绝对是绕不开的坎。很多人第一次接触时都会被这些名词搞懵,甚至越看越乱——“NP问题到底是不是能解决?”…...

深度测评:GPT-5.4 vs Claude 3.5 vs Gemini 3.1 Pro——图片与短视频生成能力全面对比

2026年3月,OpenAI带着GPT-5.4强势回归,直接将AI模型的竞争推向了新高度。这一次,不再是单纯的语言能力比拼,而是智能体(Agent)原生时代的全面较量。当GPT-5.4、Claude 3.5 Sonnet与Gemini 3.1 Pro三强相遇&…...

JAVAee---计算机是如何运行的?

一、JavaEE 与开发环境认知1. 什么是 JavaEE?JavaEE(Java Platform, Enterprise Edition)是 Java 平台的企业版,用于开发大型、分布式、企业级应用程序。与 JavaSE 的区别:JavaSE 是基础版,专注于桌面和基础…...

uc/os-II操作系统时钟节拍器

μC/OS需要用户提供周期性信号源,用于实现时间延时和确认超时。节拍率应在每秒10次到100次之间,或者说10到100Hz 时钟节拍率越高,系统的额外负荷就越重时钟节拍的实际频率取决于用户应用程序的精度 注意: 用户必须在多任务系统启动…...

Linux 进程调度模块

1. 进程与线程的本质在 Linux 内核中,进程和线程没有本质区别,它们统一被称为 任务(Task)。1.1 底层数据结构每个任务在内核中都由一个 struct task_struct 结构体描述,位于内核空间。它是进程/线程的身份证。// 简化版…...

在32位机器上,栈的简单布局

在32位机器上,函数在栈上的布局:void h(int a,int b){ int cab; } int main(){ int a1,b2; h(a,b); }高地址a b b 形参ba 形参aeip …...

数字孪生国内外发展现状

数字孪生国内外发展现状一、 数字孪生国内外发展现状 二、 数字孪生在工程项目中的应用情况 三、 效益分析#数字孪生#工程项目#BIM#LOT#全生命周期...

ROS2学习记录009-使用面向对象方式编写ROS2节点

学习鱼香ROS大佬,操作记录(一)编写cpp(1)在d2lros2/chapt2/chapt2_ws/src/example_cpp/src下新建node_03.cpp#include "rclcpp/rclcpp.hpp"/*创建一个类节点,名字叫做Node03,继承自Node. */ clas…...

邮件处理自动化:通过 IMAP/SMTP 协议实现邮件自动分类与智能起草回复

邮件处理自动化:通过 IMAP/SMTP 协议实现邮件自动分类与智能起草回复 如果你有类似的需求可以评论,我这边有空可以帮你定制化实现整套流程! 如果你是一名职场人、创业者或是客服主管,你的早晨很可能是在这样的场景中开始的:打开邮箱,面对几十甚至上百封未读邮件。这里面…...

uc怎么绕过限速_uc解析站

UC网盘限速怎么破解这个很简单,这个方法我还是在我朋友那里找到的。下载速度也是非常可以的。我让大家看一下。点我打开方法 这个就是我测试的速度。速度基本能跑到10M左右。宽带问题。下面开始今天的教学环节 打开上面图片中的地址,你会看到一个获取文件…...

Kali Linux 中文界面设置教程(新手友好,全程无坑)

作为一名渗透测试新手,刚安装完Kali Linux时,面对全英文界面总会有些手足无措——虽然大部分命令和选项能勉强看懂,但长期使用下来,中文界面不仅能提升操作效率,还能避免因语言理解偏差导致的操作失误。今天就给大家分…...