2024-09-09
docker
00

结论

凡是使用了命令nvidia docker或者在docker中引入了--runtime=nvidia参数的都是过时教程,最新方法只需要下载nvidia-container-toolkits,在docker中引入--gpus参数即可

2024-08-01
docker
00

今天无意间遇到一个mac上的Docker Desktop的快速轻量级替代品: OrbStack. 安装体验之后,感觉非常不错,可以无缝衔接docker desktop. 推荐使用. 免费版可以满足个人用户所有需求.

WX20240801-173328@2x.png

2024-07-30
docker
00

背景

基于docker的设计原则,容器内部默认的/etc/hosts文件在容器重启后会重置, 即用户对该文件的修改并不能持久化。但可以持久化保存的/etc/hosts在一些场景下是必须得,尤其是dind(docker in docker). 本文探讨基于该背景的一些解决方案尝试。

静态应用场景

所谓'静态应用场景'就是指的在容器启动后不会再有hosts文件更新需求。所以就可以在创建容器的时候,将所有需要额外添加的hosts通过 --add-host的方式添加进去, 这也是官方给的解决方案和大多数的搜索引擎会给你返回的方案. 例如下面这个例子:

  1. 在创建一个容器的时候使用 --add-host 添加需要的解析记录
shell
docker run -itd --name mymongog2 --add-host=my-hostname:8.8.8.8 mongo
2024-05-15
ansible
00

WX20240608-103705@2x.png


ansible 及 ansible playbook 介绍

ansible简介

ansible是一个用python编写的用户自动化操作的工具。基于ssh远程服务。常用于集群环境的自动化部署等。可以大大节省部署时间,提高部署的可重复操作性。
ansible playbook 是将很多常见的任务单独做成一个一个的role,实现代码复用。并将变量和模板等元素单独分离,可以简化复杂的ansible项目的复杂度。

ansible playbook简介

ansible palybook 结构主要包括以下要素:

  1. inventory: 待部署服务的服务器列表信息
  2. role: 单独的院子任务,如重命名文件,设置dns,设置hostname等
  3. task: 在目标服务器上要执行的具体任务,任务由role 或role组合构成
  4. vars: 变量,包括group变量和任务变量等

本文以ansible semaphore v2.9.64 版本为例,简单介绍如实使用 semaphore 进行一个简单的slurm集群部署。

2023-12-06
grpc
00

本文档以一个实例,演示了grpc从0到0.5的过程. 使用go代码实现。全部源代码在文尾。

grpc官方文档

1. Protocol Buffer 编译器和相关依赖安装(mac版)

shell
# mac os brew install protobuf protoc --version # Ensure compiler version is 3+ libprotoc 25.1 go install google.golang.org/protobuf/cmd/protoc-gen-go@latest go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest

其他版本os的安装请参考文档: https://grpc.io/docs/protoc-installation/

2. grpc 项目开发的基本步骤

2.1 protos目录结构

2.1.1 最初的项目目录树(当前目录包含user一个子目录 和 group 子目录)

shell
├── proto │   ├── group │   │   └── group.proto │   └── user │   └── user.proto