Skip to main content

Kubernetes 共享 GPU 调度指南

· 25 min read

本篇博文介绍了如何在 Kubernetes 集群中使用 GPU 资源,以及如何设置共享 Nvidia GPU 的详细步骤。

依照本文操作你将完成如下内容:

  • Nvidia 和 CUDA 驱动安装
  • Nvidia Container Runtime 的配置
  • Kubernetes 通过 GPU plugin 实现 GPU 调度支持
  • Kubernetes 开启共享 Nvidia GPU 资源配置

CKA CKAD CKS 考试通关指南

· 12 min read

CKACKADCKS

这里有考试 CKA CKAD CKS 省钱攻略,和对中国区参加考试的注意事项,以及开源的考前学习料哦~

哦对了,点击上面徽章就可以对我的证书进行验证哦~

镜像优化:Spring Boot 分层打包最佳实践

· 25 min read

1673346680164 Java 容器镜像通常会有一个体积巨大的 JAR 包(fat-JAR)独占一个文件系统层,我们对应用程序代码所做的每一次更改都会更改该层。这是非常糟糕的,事实上这个 JAR 包含外部依赖和内部依赖,我们可以进一步通过分层来优化,充分利用分层缓存机制使其共享依赖层。

本文将通过 解压 JAR 分层优化Spring Boot 2.3 引入的分层索引特性 将 JAR 分成多个层来改进这一点。

管理 GitOps 中的 Secret:Argocd-Vault-Plugin

· 10 min read

Argocd-Vault-Plugin(AVP) 是一个自定义的 ArgoCD 插件,这个插件旨在帮助解决 GitOps 和 Argo CD 的 Secret 管理问题。用于从 HashiCorp Vault 等秘密管理器中检索秘密并将其注入 Kubernetes YAML 文件中,从而无需依赖 Operator 或 Custom Resource,这使得它不仅可以用于 Secrets 资源,还可以能够 parameterize 任何 Kubernetes 资源,甚至是自定义资源。

本文将介绍如何使用 Argocd-Vault-Plugin 管理 GitOps 中的 Secret

Promethuse Recording Rules 优化实践

· 5 min read

随着时间的推移,Prometheus 中存储的指标数量越来越多,查询的频率也越来越高。随着越来越多的仪表板被添加到 Grafana,我开始遇到 Grafana 无法按时呈现图形和 Prometheus 查询超时的情况,尤其在长时间聚合大量指标时这种现象更为严重。

本文用到了 Prometheus Recording Rule 实现对高维度指标查询的 PromQL 语句的性能优化,提高查询效率。

使用 Kind 部署 KubeSphere 实验环境

· 8 min read

现在安装 Kubernetes 集群已经变得越来越简单了,Kubernetes in Docker(KinD)这个工具就可以通过创建容器来作为 Kubernetes 的节点,我们只需要在机器上安装 Docker 就可以使用,它允许我们在很短的时间内就启动一个多节点的集群,而不依赖任何其他工具或云服务商。

本文将介绍 Kind 中 extra-port-mappings,kubernetes-version,image-registry,api-server-acl 等基本配置。 并带有一个 kubesphere 部署示例,还演示了在不删除 Kind 集群的情况下的暂停和重启,以及 Kind 开启 IPVS 导致相关错误的排查记录。

使用 Helm 与 Kustomize 实践声明式管理

· 20 min read

1673345511901

Kubernetes 于 2014 年夏季登陆 GitHub ,2015 年夏季推出 Kubernetes 的第一个 1.0 版本,其发展速度和进步在许多人的脑海中仍然记忆犹新。

像任何应用基础设施一样,workloads 的操作开始在 Kubernetes 上变得越来越重要。所以 Kubernetes 提出了 resources 的概念,通常由基于 YAML 的 manifests 来描述各种各样的 workloads,如 deployment.yaml。

随着需要部署的 manifests 数量和需要维护的 Kubernetes 集群数量的双重增加,我们需要更高效的 manifests 管理方式,以便在 cluster-to-cluster 之间获得更容易的部署,和更灵活的配置。

本文将介绍如何使用 Heml 和 Kustomize 来对 Kubernetes 生态系统内的对象进行声明式配置和包管理。

Kubernetes 外部服务映射

· 5 min read

集群内的应用有时候需要调用外部的服务,我们知道集群内部服务调用都是通过 Service 互相访问,那么针对外部的服务是否也可以保持统一使用 Service 呢?

答案是肯定的,通过 Service 访问外部服务,除了方式统一以外,还能带来其他好处。如应用配置统一,可以通过 Service 映射保持两边配置统一,实现不同环境的应用通过相同 Service Name 访问不同的外部数据库。

如图 test-1test-2 两个空间为两个不同的业务环境,通过服务映射,不同空间相同的 Service 访问到对应外部不同环境的数据库:

1672451742771

另外,还可以保证最小化变更,如果外部数据库 IP 之类的变动,只需要修改 Service 对应映射即可,服务本身配置无需变动。