Kubernetes YAML 配置文件,部署一个 KeyDB 容器
vi keydb-deployment.yaml
内容如下
apiVersion: apps/v1
kind: Deployment
metadata:name: keydb-deployment
spec:replicas: 1selector:matchLabels:app: keydbtemplate:metadata:labels:app: keydbspec:containers:- name: keydbimage: registry.cn-hangzhou.aliyuncs.com/qiluo-images/keydb:latestports:- containerPort: 6379volumeMounts:- name: keydb-datamountPath: /data/keyDBenv:- name: KEYDB_PASSWORDvalue: "87vhqEneQ5u8"volumes:- name: keydb-dataemptyDir: {} # 或者可以挂载一个持久化存储
---
apiVersion: v1
kind: Service
metadata:name: keydb-service
spec:selector:app: keydbports:- protocol: TCPport: 6379 # 内部服务端口targetPort: 6379 # 映射到容器内的端口nodePort: 30378 # 对外暴露端口type: NodePort
使用 kubectl 命令部署
接下来,使用 kubectl 命令将 YAML 配置应用到 Kubernetes 集群。
kubectl apply -f keydb-deployment.yaml
这将启动 Deployment 和 Service,并根据配置创建相应的资源。
3. 检查部署状态
执行以下命令来查看 Pod 和 Service 的状态:
kubectl get pods
kubectl get svc
你应该能够看到一个名为 keydb-deployment 的 Pod 正在运行,同时在 keydb-service 服务上可以访问到 30378 端口。
4. 验证外部访问
如果你的集群使用的是 NodePort 类型的服务,可以通过集群节点的 IP 地址和端口 30378 来访问
此时此刻就完成了。
持久化yaml如下:
apiVersion: apps/v1
kind: Deployment
metadata:name: keydb-deployment
spec:replicas: 1selector:matchLabels:app: keydbtemplate:metadata:labels:app: keydbspec:containers:- name: keydbimage: registry.cn-hangzhou.aliyuncs.com/qiluo-images/keydb:latestports:- containerPort: 6379volumeMounts:- name: keydb-datamountPath: /data/keyDBenv:- name: KEYDB_PASSWORDvalue: "87vhqEneQ5u8"volumes:- name: keydb-datapersistentVolumeClaim:claimName: keydb-pvc
---
apiVersion: v1
kind: Service
metadata:name: keydb-service
spec:selector:app: keydbports:- protocol: TCPport: 6379 # 内部服务端口targetPort: 6379 # 映射到容器内的端口nodePort: 30378 # 对外暴露端口type: NodePort
---
apiVersion: v1
kind: PersistentVolume
metadata:name: keydb-pv
spec:capacity:storage: 10Gi # 设置存储大小,可以根据需要调整accessModes:- ReadWriteOncehostPath:path: /mnt/data/keydb # 这里使用宿主机的路径,如果是云环境,可以改成 NFS 或其他存储
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:name: keydb-pvc
spec:accessModes:- ReadWriteOnceresources:requests:storage: 10Gi # 与 PersistentVolume 的存储大小一致