跳到主要内容

创建容器

在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