九章智算云

创建容器

在 K8s 中,容器是构建和运行应用程序的基本单元。容器是一种轻量级的、独立的、可执行的软件包,包含运行应用程序所需的一切:代码、运行时、系统工具、系统库和设置。容器通过容器运行时(如 Docker、containerd、CRI-O 等)来创建和管理。

使用 Pod 部署容器

在 K8s 中,容器是通过 Pod 来管理和运行的。Pod 是 K8s 中最小的可部署单元,可以包含一个或多个容器。Pod 中的所有容器共享相同的网络命名空间和存储卷。

如果在容器中使用 GPU 资源,请参考 GPU 资源

示例

apiVersion: v1
kind: Pod
metadata:
  name: your-pod-name
  namespace: your-namespace
spec:
  imagePullSecrets:
    - name: ydyd-harbor-secret
  containers:
    - name: your-container-name
      image: your-image
      imagePullPolicy: IfNotPresent
      volumeMounts:
        - mountPath: /mnt/test
          name: your-volume-name
      command: ['/bin/bash', '-c', 'while true; do sleep 30; done']
  volumes:
    - name: your-volume-name
      persistentVolumeClaim:
        claimName: your-pvc-name

使用 Deployment 管理 Pod

在 K8s 中,Deployment 是一种用于管理无状态应用的高级资源对象。Deployment 提供了一种声明式的方式来定义应用的期望状态,并确保集群中的实际状态与期望状态保持一致。通过 Deployment,你可以轻松地进行应用的部署、扩展、更新和回滚。在实际应用中,通常使用 Deployment 来管理 Pod。

示例

apiVersion: apps/v1
kind: Deployment
metadata:
  name: your-deploy-name
  namespace: your-namespace
spec:
  replicas: 1
  selector:
    matchLabels:
      app: wedding-ai-api
  template:
    metadata:
      labels:
        app: wedding-ai-api
    spec:
      imagePullSecrets:
        - name: ydyd-harbor-secret
      containers:
        - name: your-container-name
          image: your-image
          imagePullPolicy: IfNotPresent
          volumeMounts:
            - mountPath: /mnt/test
              name: your-volume-name
          command: ['/bin/bash', '-c', 'while true; do sleep 30; done']
      volumes:
        - name: your-volume-name
          persistentVolumeClaim:
            claimName: your-pvc-name

最后更新于

这篇文档对你有帮助吗?

目录