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

八股取士--dockerk8s

一、Docker 基础

  1. Docker 和虚拟机的区别是什么?

    • 答案
      • 虚拟机(VM):虚拟化硬件,每个 VM 有独立操作系统,资源占用高,启动慢。
      • Docker:容器化应用,共享宿主机内核,轻量级,秒级启动,资源利用率高。
  2. 什么是 Docker 镜像(Image)和容器(Container)?

    • 答案
      • 镜像:只读模板,包含运行应用所需的文件系统和配置。
      • 容器:镜像的运行实例,具有可写层,隔离的进程空间。
  3. 如何构建一个 Docker 镜像?

    • 答案
      # Dockerfile 示例
      FROM alpine:3.14
      RUN apk add --no-cache python3
      COPY app.py /app/
      CMD ["python3", "/app/app.py"]
      
      docker build -t my-app:1.0 .
      
  4. Dockerfile 中 COPYADD 的区别是什么?

    • 答案
      • COPY:仅复制本地文件到镜像。
      • ADD:支持复制并解压 tar 文件,或从 URL 下载文件(不推荐,行为不透明)。
  5. 如何减少 Docker 镜像大小?

    • 答案
      • 使用小基础镜像(如 alpine)。
      • 多阶段构建(分离编译和运行环境)。
      • 合并 RUN 命令,清理缓存。

二、Docker 网络与存储

  1. Docker 的网络模式有哪些?

    • 答案
      • bridge(默认):容器通过虚拟网桥连接到宿主机。
      • host:容器共享宿主机网络命名空间。
      • none:无网络配置。
      • overlay:跨主机的容器通信(用于 Swarm)。
  2. 如何让容器访问宿主机上的服务?

    • 答案
      • 使用 host.docker.internal(Mac/Windows)或 --network=host
      • 直接访问宿主机 IP(如 172.17.0.1)。
  3. Docker 数据卷(Volume)的作用是什么?如何挂载?

    • 答案
      • 作用:持久化容器数据,避免数据丢失。
      • 挂载方式
        # 创建命名卷
        docker volume create my-vol
        docker run -v my-vol:/data alpine
        # 挂载主机目录
        docker run -v /host/path:/container/path alpine
        

三、Docker 实战与优化

  1. 如何查看容器日志?

    • 答案
      docker logs <container-id>
      docker logs --tail 100 -f <container-id>  # 实时查看最后100行
      
  2. 如何进入运行中的容器执行命令?

    • 答案
      docker exec -it <container-id> /bin/sh
      
  3. Docker Compose 的作用是什么?编写一个简单的 Compose 文件。

    • 答案
      version: '3'
      services:web:image: nginx:alpineports:- "80:80"redis:image: redis:alpine
      
  4. 如何清理 Docker 占用的磁盘空间?

    • 答案
      docker system prune -a -f  # 清理所有未使用的镜像、容器、网络
      

四、Kubernetes 基础

  1. Kubernetes 的核心组件有哪些?

    • 答案
      • Master 节点
        • API Server:集群入口,处理 REST 请求。
        • Scheduler:分配 Pod 到 Node。
        • Controller Manager:维护集群状态(如副本数)。
        • etcd:键值存储,保存集群状态。
      • Worker 节点
        • Kubelet:管理 Pod 生命周期。
        • Kube-Proxy:维护网络规则。
  2. 什么是 Pod?为什么需要 Pod?

    • 答案
      • Pod:最小调度单元,包含一个或多个容器,共享网络和存储。
      • 作用:将紧密耦合的容器组合在一起(如应用 + 日志收集 Sidecar)。
  3. Deployment 和 StatefulSet 的区别是什么?

    • 答案
      • Deployment:管理无状态应用,支持滚动更新、回滚。
      • StatefulSet:管理有状态应用(如数据库),提供稳定的网络标识和持久存储。

五、Kubernetes 核心概念

  1. Service 的作用是什么?有哪些类型?

    • 答案
      • 作用:为一组 Pod 提供稳定的 IP 和 DNS 名称,实现负载均衡。
      • 类型
        • ClusterIP(默认):集群内部访问。
        • NodePort:通过节点端口暴露服务。
        • LoadBalancer:云平台提供的外部负载均衡器。
        • ExternalName:映射到外部服务。
  2. 如何通过 Ingress 暴露服务?

    • 答案
      apiVersion: networking.k8s.io/v1
      kind: Ingress
      metadata:name: my-ingress
      spec:rules:- host: myapp.comhttp:paths:- path: /pathType: Prefixbackend:service:name: my-serviceport:number: 80
      
  3. ConfigMap 和 Secret 的作用是什么?

    • 答案
      • ConfigMap:存储非敏感配置(如环境变量、配置文件)。
      • Secret:存储敏感数据(如密码、密钥),Base64 编码(非加密)。

六、Kubernetes 运维与调试

  1. 如何查看 Pod 的日志?

    • 答案
      kubectl logs <pod-name>
      kubectl logs -f <pod-name> -c <container-name>  # 多容器 Pod
      
  2. 如何排查 Pod 无法启动的问题?

    • 答案
      kubectl describe pod <pod-name>  # 查看事件
      kubectl logs <pod-name> --previous  # 查看前一个容器的日志(崩溃时)
      
  3. 如何实现 Pod 的滚动更新?

    • 答案
      apiVersion: apps/v1
      kind: Deployment
      spec:strategy:type: RollingUpdaterollingUpdate:maxSurge: 25%      # 最大新增 Pod 数maxUnavailable: 25% # 最大不可用 Pod 数
      

七、Kubernetes 高级特性

  1. 什么是 HPA(Horizontal Pod Autoscaler)?如何配置?

    • 答案
      • 作用:根据 CPU 或自定义指标自动扩缩 Pod 数量。
      • 配置
        apiVersion: autoscaling/v2
        kind: HorizontalPodAutoscaler
        metadata:name: my-hpa
        spec:scaleTargetRef:apiVersion: apps/v1kind: Deploymentname: my-deploymentminReplicas: 1maxReplicas: 10metrics:- type: Resourceresource:name: cputarget:type: UtilizationaverageUtilization: 50
        
  2. 如何通过 Helm 管理 Kubernetes 应用?

    • 答案
      • Helm:包管理工具,通过 Chart 定义应用模板。
      • 常用命令
        helm install my-release ./mychart
        helm upgrade my-release ./mychart
        helm uninstall my-release
        

八、场景与故障排查

  1. 如何调试 Kubernetes 中的网络问题?

    • 答案
      1. 检查 Pod 是否 Running:kubectl get pods
      2. 检查 Service 的 Endpoints:kubectl get endpoints <service-name>
      3. 使用临时 Pod 测试网络连通性:
        kubectl run -it --rm --image=alpine test-pod -- sh
        ping <service-ip>
        
  2. 如何备份和恢复 Kubernetes 集群?

    • 答案
      • 备份 etcd
        ETCDCTL_API=3 etcdctl --endpoints=https://127.0.0.1:2379 \--cacert=/etc/kubernetes/pki/etcd/ca.crt \--cert=/etc/kubernetes/pki/etcd/server.crt \--key=/etc/kubernetes/pki/etcd/server.key \snapshot save snapshot.db
        
      • 恢复:使用 etcdctl snapshot restore

更多高频问题(简要答案)

  1. Docker 容器如何与宿主机共享时间?

    • -v /etc/localtime:/etc/localtime:ro
  2. 如何限制容器的 CPU 和内存?

    docker run --cpus=2 --memory=512m nginx
    
  3. 什么是 Kubernetes 的 Init Container?

    • 在应用容器前运行的容器,用于准备环境(如下载配置)。
  4. 如何更新 Kubernetes 的 Deployment 镜像?

    kubectl set image deployment/my-deployment my-container=nginx:1.20
    
  5. Kubernetes 的污点(Taint)和容忍(Toleration)是什么?

    • 污点:标记节点,拒绝不匹配的 Pod。
    • 容忍:允许 Pod 调度到有污点的节点。
  6. 如何通过 kubectl 进入 Pod 的容器?

    kubectl exec -it <pod-name> -- /bin/sh
    
  7. Kubernetes 的存活探针(Liveness Probe)和就绪探针(Readiness Probe)的区别?

    • 存活探针:重启不健康的容器。
    • 就绪探针:将 Pod 从 Service 端点移除。
  8. 如何查看 Kubernetes 集群的资源使用情况?

    kubectl top nodes
    kubectl top pods
    
  9. 什么是 Kubernetes 的 CRD(Custom Resource Definition)?

    • 扩展 Kubernetes API,定义自定义资源(如 MySQLCluster)。

35. 如何实现 Kubernetes 的蓝绿部署?

容器的蓝绿升级(Blue-Green Deployment)是一种零停机的发布策略,通常用于确保在应用程序更新过程中不中断服务。它的核心思想是通过创建两个相似的环境(蓝色和绿色)来实现平滑的应用程序升级,最终让流量切换到新的版本上。具体来说,蓝绿升级的工作流程和好处可以分为以下几个方面:

1. 基本概念

  • 蓝色环境(Blue Environment):表示当前正在运行的应用程序版本或环境。
  • 绿色环境(Green Environment):表示新版本的应用程序,尚未投入使用,但已准备好接管生产流量。

蓝绿升级的核心步骤如下

  1. 在蓝色环境中运行现有的应用程序。
  2. 部署新版本的应用程序到绿色环境中。
  3. 测试绿色环境,确保一切正常。
  4. 将流量从蓝色环境切换到绿色环境。
  5. 一旦切换完成,蓝色环境可以关闭或用于下次升级。

2. 如何实现蓝绿升级(容器化环境)

在容器化环境中,蓝绿升级通常结合容器编排工具(如 Kubernetes、Docker Swarm 等)来实现。具体的操作步骤如下:

2.1 创建两个环境
  • 在 Kubernetes 或其他容器管理平台上,通常会创建两个不同的服务或部署(bluegreen)。
  • 每个环境都会有独立的容器集群,并且两个环境的配置通常是相同的(不同的是应用版本)。
2.2 部署新版本到绿色环境
  • 将新版本的应用程序部署到绿色环境中。此时,绿色环境中的容器集群可以部署并运行新版本的代码、依赖等,进行内部测试和验证。
2.3 测试绿色环境
  • 在流量切换之前,您可以在绿色环境中进行一系列验证,确保新版本的功能正常,性能达标等。
  • 可以通过内部负载均衡或特定的测试流量(比如进行 Canary 测试)来验证新版本的稳定性。
2.4 切换流量
  • 一旦绿色环境经过验证,就可以将流量从蓝色环境切换到绿色环境。通常这可以通过负载均衡器来实现。
  • 在 Kubernetes 中,可以使用 Service 对象来管理流量,切换流量的过程通常会更新 Ingress 配置或 Service Selector,将流量从蓝色环境路由到绿色环境。
2.5 关闭蓝色环境(可选)
  • 一旦流量切换到绿色环境后,可以选择关闭蓝色环境,或者将其作为备用环境用于回滚操作。
  • 蓝色环境可以在未来的升级中作为新的绿色环境来使用,从而形成一个循环。

3. 蓝绿升级的优势

  1. 零停机时间:由于流量切换是在两个独立的环境之间进行的,用户不会感受到服务中断。这对于要求高可用性、零停机的应用至关重要。

  2. 平滑回滚:如果新版本出现问题,可以很容易地将流量切换回蓝色环境,保证旧版本仍然可用,避免系统崩溃或中断。

  3. 验证新版本:在绿色环境中完全隔离的运行新版本,避免了新版本可能带来的问题影响现有系统。可以在绿色环境中进行详尽的测试,确保稳定后再发布。

  4. 降低风险:由于升级和部署是分步进行的,避免了大规模的生产环境升级风险,可以先通过小范围验证来确保新版本是可接受的。

4. 容器化中的蓝绿升级策略

在容器化环境中,蓝绿升级与以下几个技术概念紧密相关:

  • 滚动更新:这与蓝绿升级类似,但它是渐进式的,即新版本逐步替代旧版本。虽然滚动更新可以实现平滑升级,但在某些情况下(例如高可用性需求),蓝绿升级会更加适用,因为它可以在版本切换之前完全验证新版本。

  • 负载均衡:通过负载均衡器或容器编排平台的路由控制(如 Kubernetes 的 Ingress 控制器),可以精确地控制流量的切换,确保应用平稳过渡。

  • 服务发现:在容器编排平台(如 Kubernetes)中,服务发现机制可以帮助自动化流量的切换。例如,在 Kubernetes 中,可以通过更新 Deployment 的标签或使用 kubectl 命令来实现流量切换。

5. Kubernetes 中的蓝绿升级

在 Kubernetes 中,蓝绿升级通常可以通过以下步骤实现:

  1. 创建两个独立的 Deployment,分别代表蓝色和绿色环境。
  2. 使用 Service 将流量引导到当前活动的环境(例如蓝色环境)。
  3. 更新绿色环境的 Deployment 来部署新版本的应用。
  4. 通过 ServiceIngress 将流量从蓝色环境切换到绿色环境。
  5. (可选)删除蓝色环境的 Deployment 或保留它作为回滚点。
# Example of two deployments (blue and green)
apiVersion: apps/v1
kind: Deployment
metadata:name: app-blue
spec:replicas: 2template:spec:containers:- name: appimage: app:v1---
apiVersion: apps/v1
kind: Deployment
metadata:name: app-green
spec:replicas: 2template:spec:containers:- name: appimage: app:v2
# Example of a Service routing traffic to the active environment (e.g., blue)
apiVersion: v1
kind: Service
metadata:name: app-service
spec:selector:app: app-blueports:- port: 80targetPort: 8080

6. 总结

蓝绿升级是一种有效的部署策略,它提供了零停机的升级体验,确保在版本更新过程中系统的可用性和稳定性。通过使用蓝色和绿色两个独立环境,它允许开发团队在不影响现有用户的情况下部署、验证和切换到新版本的应用程序。对于容器化应用,使用 Kubernetes、Docker Swarm 或其他容器编排平台结合蓝绿升级策略,可以实现高可用、高可靠的服务交付。

36.滚动更新 (Rolling Update) VS 蓝绿升级 (Blue-Green Deployment)

滚动更新 (Rolling Update)蓝绿升级 (Blue-Green Deployment) 是两种常见的部署策略,它们都用于无缝地将新版本的应用程序部署到生产环境,但它们的工作原理和适用场景有所不同。

1. 滚动更新 (Rolling Update)

定义:

滚动更新是一种逐步替换现有应用程序版本的方法。在滚动更新过程中,Kubernetes 会根据指定的更新策略,逐步替换应用程序的旧版本 Pods(容器)为新版本。每次更新一定数量的 Pods,直到全部 Pods 被更新为新版本。

工作原理:
  • 逐个替换 Pods: 更新过程按照一定的步长(例如每次替换 1 个 Pod 或者 10% 的 Pods)来逐步替换旧版本 Pods。
  • 保证应用可用性: 在更新过程中,会始终保持一定数量的旧版本和新版本 Pods 在运行,确保应用在更新过程中不会停机。
  • 更新顺序: 每次替换一个 Pod,Kubernetes 会检查新版本的 Pod 是否正常工作,如果正常才会继续替换下一个 Pod。
优势:
  1. 平滑过渡: 在更新过程中,始终有一些 Pods 仍然在提供服务,避免了应用不可用的情况。
  2. 资源节省: 无需为旧版本和新版本都保持单独的环境,因此节省了资源。
  3. 自动化: Kubernetes 自动管理更新过程,用户无需手动干预。
缺点:
  1. 回滚困难: 如果新版本的应用有问题,回滚可能需要手动操作,且无法直接控制回滚过程。
  2. 可能有临时的不一致: 由于新旧版本并行运行,可能会出现不同版本的 Pods 同时处理请求,可能引入不一致的问题。
  3. 更新过程中可能存在停机时间: 尽管 Kubernetes 会保证一定数量的 Pods 处于可用状态,但仍有可能出现部分请求被拒绝或者延迟的情况。
Kubernetes 中的滚动更新示例:

Kubernetes Deployment 对象默认使用滚动更新策略来进行应用程序的升级。可以通过配置 spec.strategy.type 来设置策略,默认为 RollingUpdate

apiVersion: apps/v1
kind: Deployment
metadata:name: myapp-deployment
spec:replicas: 3strategy:type: RollingUpdaterollingUpdate:maxSurge: 1maxUnavailable: 1template:spec:containers:- name: myappimage: myapp:v2ports:- containerPort: 8080
  • maxSurge: 更新过程中可以超出的 Pods 数量(即新创建 Pods 的数量),例如 maxSurge: 1 表示每次更新时最多会多出一个 Pod。
  • maxUnavailable: 更新过程中不可用的 Pods 数量,表示可接受的最差情况。

2. 蓝绿升级 (Blue-Green Deployment)

定义:

蓝绿升级是一种完全替换现有应用程序版本的方法。在蓝绿升级过程中,维护两个独立的环境——蓝色环境绿色环境。蓝色环境代表当前运行的生产版本,绿色环境代表新版本的应用程序。当新版本经过验证后,切换流量到绿色环境。

工作原理:
  • 两个独立的环境: 蓝色环境和绿色环境在同一时间内并行存在。蓝色环境是当前的生产环境,绿色环境是新版本的应用程序。
  • 流量切换: 初始时,流量由服务指向蓝色环境。当新版本应用程序(绿色环境)准备就绪后,通过修改负载均衡器或服务的配置,将流量切换到绿色环境。
  • 切换后,蓝色环境作为备份: 如果绿色环境有问题,可以快速回滚流量到蓝色环境。绿色环境可作为新的生产环境,蓝色环境可用于备份或回滚。
优势:
  1. 零停机: 蓝绿升级可以确保应用在切换过程中不会停机,因为流量控制非常明确,切换只发生在流量入口的负载均衡器或服务上。
  2. 可控回滚: 如果绿色环境出现问题,流量可以迅速切换回蓝色环境,回滚过程非常简单。
  3. 完整验证: 在切换流量之前,可以在绿色环境中完全验证新版本,确保其没有问题。
  4. 流量切换精确: 完全控制流量的切换,没有其他版本与新版本并存的情况。
缺点:
  1. 资源浪费: 需要两个环境并行运行,意味着需要更多的资源(计算和存储),尤其是对于大型应用,可能会浪费大量资源。
  2. 流量切换延迟: 切换流量需要一定的操作,尤其是涉及负载均衡器配置时,可能会有一些延迟。
  3. 复杂的管理: 需要管理两个完全独立的环境,包括数据库、缓存等,可能增加管理复杂度。
Kubernetes 中的蓝绿升级示例:

蓝绿升级需要通过创建两个不同版本的 Deployment 和一个 Service 来实现流量的切换。

# 蓝色环境的 Deployment
apiVersion: apps/v1
kind: Deployment
metadata:name: myapp-blue
spec:replicas: 3selector:matchLabels:app: myappversion: bluetemplate:metadata:labels:app: myappversion: bluespec:containers:- name: myappimage: myapp:v1  # 蓝色环境的版本
---
# 绿色环境的 Deployment
apiVersion: apps/v1
kind: Deployment
metadata:name: myapp-green
spec:replicas: 3selector:matchLabels:app: myappversion: greentemplate:metadata:labels:app: myappversion: greenspec:containers:- name: myappimage: myapp:v2  # 绿色环境的版本
---
# 负责流量的 Service
apiVersion: v1
kind: Service
metadata:name: myapp-service
spec:selector:app: myappversion: blue  # 初始流量指向蓝色环境ports:- port: 80targetPort: 8080

3. 滚动更新与蓝绿升级的对比

特性滚动更新 (Rolling Update)蓝绿升级 (Blue-Green Deployment)
更新方式逐步替换 Pods,逐步升级完全切换流量到新版本的环境
停机时间最小,保证有 Pod 在运行无停机时间,流量切换不影响服务
回滚难易需要手动操作,回滚过程可能复杂简单快速,只需切换流量回蓝色环境即可
资源消耗资源消耗较少,只需要旧版本和新版本的 Pod 并行运行需要两个完整的环境(蓝色和绿色),资源消耗较高
控制粒度没有直接控制流量切换的时机完全控制流量切换,可以精确控制
适用场景适用于小规模应用或对于资源有要求的场景适用于需要零停机和快速回滚的场景

4. 总结

  • 滚动更新 适用于大多数场景,尤其是当你希望逐步升级 Pods 并且能够容忍部分 Pods 暂时不正常的情况时。
  • 蓝绿升级 则更适用于关键应用或需要确保零停机的场景,适合有资源和成本预算进行双环境部署的情况。

根据你的需求选择合适的部署策略,若需要稳定性和无缝的切换,可以考虑 蓝绿升级;如果资源有限,或者不需要严格的流量控制,滚动更新 是更为经济和简单的选择。

相关文章:

八股取士--dockerk8s

一、Docker 基础 Docker 和虚拟机的区别是什么&#xff1f; 答案&#xff1a; 虚拟机&#xff08;VM&#xff09;&#xff1a;虚拟化硬件&#xff0c;每个 VM 有独立操作系统&#xff0c;资源占用高&#xff0c;启动慢。Docker&#xff1a;容器化应用&#xff0c;共享宿主机内核…...

ubuntu系统下KVM设置桥接网络(失败)

20250216 - 概述 因实验需求&#xff0c;需要设置KVM下的虚拟机采用桥接模式进行通信&#xff0c;这种方式将使虚拟机与主机类似使用同一网段的IP。实际上&#xff0c;为了实现这个功能&#xff0c;我已经在自己mac上VMware使用过&#xff0c;虚拟机获得了自己独立的IP。 但…...

【ISO 14229-1:2023 UDS诊断(会话控制0x10服务)测试用例CAPL代码全解析④】

ISO 14229-1:2023 UDS诊断【会话控制0x10服务】_TestCase04 作者&#xff1a;车端域控测试工程师 更新日期&#xff1a;2025年02月15日 关键词&#xff1a;UDS诊断、0x10服务、诊断会话控制、ECU测试、ISO 14229-1:2023 TC10-004测试用例 用例ID测试场景验证要点参考条款预期…...

OpenAI 放王炸,将发布整合多项技术的 GPT-5,并免费无限使用,该模型有哪些技术亮点

对于 ChatGPT 的免费用户&#xff0c;将可以无限制地访问 GPT-5&#xff0c;但仅限于标准的智能级别。该级别会设定滥用限制&#xff0c;以防止不当使用(意思就是你得付费嘛)。 OpenAI CEO Sam Altman 今天在 X 上透露了 GPT-4.5 和 GPT-5 的最新发展计划。 OpenAI 将发布代…...

C 语言版--销售预测项目案例分享

以下是一个 C 语言销售预测项目案例,该项目模拟根据历史销售数据使用简单的移动平均法来预测未来的销售额。移动平均法是一种常见且基础的时间序列预测方法,它通过计算一定时间段内数据的平均值来预测未来的值。 项目需求 给定一系列历史销售数据,使用简单移动平均法预测下…...

用deepseek学大模型05-线性回归

deepseek.com:多元线性回归的目标函数&#xff0c;损失函数&#xff0c;梯度下降 标量和矩阵形式的数学推导&#xff0c;pytorch真实能跑的代码案例以及模型,数据&#xff0c;预测结果的可视化展示&#xff0c; 模型应用场景和优缺点&#xff0c;及如何改进解决及改进方法数据推…...

DC-7靶机渗透测试全过程

目录 前期准备 一、渗透测试 1.IP地址查询 2.端口地址收集 3.网页信息收集 社工收集信息 Drush直接修改账户密码 下载PHP插件 反弹shell 二、总结 前期准备 攻击机 &#xff1a; kali windows11 靶机&#xff1a; DC-7(调至NAT模式) 一、渗透测试 1.IP地址查询 …...

什么是服务的雪崩、熔断、降级的解释以及Hystrix和Sentinel服务熔断器的解释、比较

1.什么是服务雪崩&#xff1f; 定义&#xff1a;在微服务中&#xff0c;假如一个或者多个服务出现故障&#xff0c;如果这时候&#xff0c;依赖的服务还在不断发起请求&#xff0c;或者重试&#xff0c;那么这些请求的压力会不断在下游堆积&#xff0c;导致下游服务的负载急剧…...

解决IDEA报错:java 找不到符号

问题&#xff1a;IIDEA编译项目一直报 例如 java: 找不到符号 符号: 方法 getUserId()异常 的错误 解决方法&#xff1a; 1、刷新maven 2、clean package...

基于SpringBoot的医院药房管理系统【源码+答辩PPT++项目部署】高质量论文1-1.5W字

作者简介&#xff1a;✌CSDN新星计划导师、Java领域优质创作者、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行前辈交流。✌ 主要内容&#xff1a;&#x1f31f;Java项目、Python项目、前端项目、PHP、ASP.NET、人工智能…...

Ubuntu22.04通过Docker部署Jeecgboot

程序发布环境包括docker、mysql、redis、maven、nodejs、npm等。 一、安装docker 1、用如下命令卸载旧Docker: for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done 2、安装APT环境依赖包…...

基于Ubuntu+vLLM+NVIDIA T4高效部署DeepSeek大模型实战指南

一、 前言&#xff1a;拥抱vLLM与T4显卡的强强联合 在探索人工智能的道路上&#xff0c;如何高效地部署和运行大型语言模型&#xff08;LLMs&#xff09;一直是一个核心挑战。尤其是当我们面对资源有限的环境时&#xff0c;这个问题变得更加突出。原始的DeepSeek-R1-32B模型虽…...

力扣 66.加一 (Java实现)

题目分析 给定一个数组&#xff0c;可以组成一个数字&#xff0c;将数字加一后&#xff0c;返回新数组 思路分析 首先跟着题目思路走&#xff0c;将数组按位*10可以得到数字&#xff0c;再加一&#xff0c;加一后按位%10&#xff0c;可以得到新的数组。但是此处数字会过大&…...

Deep seek学习日记1

Deepseek最强大的就是它的深度思考&#xff0c;并且展现了它的思考过程。 五种可使用Deep seek的方式&#xff08;应该不限于这五种&#xff0c;后续嵌入deepseek的应该更多&#xff0c;多了解一点因为官网容易崩~~&#xff09;&#xff1a; 1.deep seek官网 2.硅基流动silicon…...

npm 私服使用介绍

一、导读 本文主要介绍 npm 私服的使用&#xff0c;至于 npm 私服搭建的过程&#xff0c;可以看本人之前的文章《Docker 部署 verdaccio 搭建 npm 私服》 二、前置条件 npm私服地址&#xff1a;http://xxx.xxx.xxx.xxx:port/ 三、本地 npm 源切换 使用nrm&#xff0c;可以方…...

github用户名密码登陆失效了

问题&#xff1a; git push突然推代码需要登陆&#xff0c;但是用户名和密码正确输入后&#xff0c;却提示403 git push# Username for https://github.com: **** #Password for https://gyp-programmergithub.com: #remote: Permission to gyp-programmer/my-app.git denie…...

SpringCloud整合seata,XA、AT、TCC、SAGA模式

参考资料&#xff1a; SpringCloud-Alibaba搭建 SpringCloud-nacos整合 Seata部署 参考demo&#xff08;及学习资料&#xff09; seata官网 参考视频​​​​​c&#xff08;AT模式的UNDO_LOG讲的可能有点问题&#xff0c;但是很通俗易懂&#xff09; 参考视频2&#xff…...

centos8.0 docker ngnix

问题1&#xff1a;镜像拉取不下来&#xff0c;用DAO云加速器 问题2&#xff1a;ngnix镜像不能运行&#xff0c; 无法检索OCI运行时错误 &#xff0c;更新包yum update libseccomp 问题3&#xff1a;docker run -v 目录有ngninx.conf 或conf.d 等 .特殊字符&#xff0c;报无效格…...

案例-06.部门管理-根据ID查询

一.根据ID查询-接口文档 二.根据ID查询-Controller层 package com.gjw.controller;/*** 部门管理Controller*/import com.gjw.anno.Log; import com.gjw.pojo.Dept; import com.gjw.pojo.Result; import com.gjw.service.DeptService; import com.gjw.service.impl.DeptServi…...

moveable 一个可实现前端海报编辑器的 js 库

目录 缘由-胡扯本文实验环境通用流程1.基础移动1.1 基础代码1.1.1 data-* 解释 1.2 操作元素创建1.3 css 修饰1.4 cdn 引入1.5 js 实现元素可移动1.6 图片拖拽2.缩放3.旋转4.裁剪 懒得改文案了&#xff0c;海报编辑器换方案了&#xff0c;如果后面用别的再更。 缘由-胡扯 导火…...

【愚公系列】《Python网络爬虫从入门到精通》012-字符串处理

标题详情作者简介愚公搬代码头衔华为云特约编辑,华为云云享专家,华为开发者专家,华为产品云测专家,CSDN博客专家,CSDN商业化专家,阿里云专家博主,阿里云签约作者,腾讯云优秀博主,腾讯云内容共创官,掘金优秀博主,亚马逊技领云博主,51CTO博客专家等。近期荣誉2022年度…...

shell脚本备份MySQL数据库和库下表

目录 注意&#xff1a; 一.脚本内容 二.执行效果 三.创建定时任务 注意&#xff1a; 以下为对MySQL5.7.42版本数据库备份shell脚本参考运行备份的机器请确认mysqldump版本>5.7&#xff0c;否则备份参数--set-gtid-purgedOFF无效&#xff0c;考虑到一般数据库节点和备份…...

java处理pgsql的text[]类型数据问题

背景 公司要求使用磐维数据库&#xff0c;于是去了解了这个是基于PostgreSQL构建的&#xff0c;在使用时有场景一条图片数据中可以投放到不同的页面&#xff0c;由于简化设计就放在数组中&#xff0c;于是使用了text[]类型存储&#xff1b;表结构 #这是一个简化版表结构&…...

MongoDB 架构设计:深入解析核心组件与工作原理

MongoDB 架构设计&#xff1a;深入解析核心组件与工作原理 MongoDB 作为一个高性能、易扩展的 NoSQL 数据库&#xff0c;其优秀的架构设计是其成功的关键。本文将深入解析 MongoDB 的架构设计&#xff0c;详细讲解其核心组件和工作原理&#xff0c;帮助您更好地理解和使用 Mon…...

【PostgreSQL】PG在windows下的安装

一、准备 通过官网下载安装文件&#xff0c;官方下载路径如下&#xff1a; https://www.postgresql.org/download/windows/ 二、安装 双击postgresql-17.3-1-windows-x64.exe文件&#xff0c;启动安装&#xff0c;进入安装步骤&#xff0c;点击Next 选择PG安装路径&#xff…...

掌握SQL多表连接查询_轻松处理复杂数据关系

1. 引言 1.1 数据库中的多表关系概述 在实际应用中&#xff0c;数据库通常由多个表组成&#xff0c;每个表存储不同类型的数据。例如&#xff0c;在一个电子商务系统中&#xff0c;可能会有用户表、订单表、产品表等。这些表之间存在关联关系&#xff0c;通过多表连接查询可以…...

MVC模式和MVVM模式

目录 一、MVC模式和MVVM模式 1. MVC模式 2. MVVM 模式 3.在Qt中的应用示例 4.总结 二、MVC与MVVM模式的共同点和区别 1.共同点 2.区别 3.交互流程 4.总结 MVC&#xff08;Model-View-Controller&#xff09;和MVVM&#xff08;Model-View-ViewModel&#xff09;是两种…...

Macos机器hosts文件便捷修改工具——SwitchHosts

文章目录 SwitchHosts软件下载地址操作添加方案切换方案管理方案快捷键 检测 SwitchHosts SwitchHosts 是一款 Mac 平台上的免费软件&#xff0c;它可以方便地管理和切换 hosts 文件&#xff0c;支持多种 hosts 文件格式。 软件下载地址 SwitchHosts 操作 添加方案 添加 …...

mysqld_exporter的搭建

1、创建/data/apps目录&#xff0c;并且下载mysql_exporte mkdir -p /data/apps ​ cd /data/apps ​ wget https://githubfast.com/prometheus/mysqld_exporter/releases/download/v0.12.1/mysqld_exporter-0.12.1.linux-amd64.tar.gz 或者 wget https://github.com/promethe…...

CentOS上安装WordPress

在CentOS上安装WordPress是一个相对直接的过程&#xff0c;可以通过多种方法完成&#xff0c;包括使用LAMP&#xff08;Linux, Apache, MySQL, PHP&#xff09;栈或使用更现代的LEMP&#xff08;Linux, Nginx, MySQL, PHP&#xff09;栈。 我选择的是&#xff08;Linux, Nginx…...