apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: redis
name: ssx-redis-dm
namespace: ssx
spec:
replicas: 1
selector: #标签选择器,与上面的标签共同作用
matchLabels: #选择包含标签app:mysql的资源
app: redis
template: #这是选择或创建的Pod的模板
metadata: #Pod的元数据
labels: #Pod的标签,上面的selector即选择包含标签app:mysql的Pod
app: redis
spec: #期望Pod实现的功能(即在pod中部署)
containers: #生成container,与docker中的container是同一种
- name: ssx-redis-c
image: node102:5000/ssx-redis:v1.0
#command: [string]
# 容器启动命令列表,相当于Dockerfile中的ENDRYPOINT,是唯一的。如果不指定,就是使用容器本身的。示例:["/bin/sh","-c"]
args: ["--requirepass 密码"]
# 容器启动参数列表,相当于Dockerfile中的CMD,示例:["-c"]
ports:
- containerPort: 6379 # 开启本容器的80端口可访问
volumeMounts:
- mountPath: /data #这是mysql容器内保存数据的默认路径
name: c-v-path-redis
volumes:
- name: c-v-path-redis #和上面保持一致 这是本地的文件路径,上面是容器内部的路径
hostPath:
path: /root/apps/k8s/for_docker_volume/redis #此路径需要实现创建 注意要给此路径授权777权限 不然pod访问不到
nodeSelector: #把此pod部署到指定的node标签上
kubernetes.io/hostname: node101
---
apiVersion: v1
kind: Service
metadata:
labels:
app: redis
name: ssx-redis-sv
namespace: ssx
spec:
ports:
- port: 9000 #我暂时不理解,这个设置 明明没用到?
name: ssx-redis-last
protocol: TCP
targetPort: 6379 # 容器nginx对外开放的端口 上面的dm已经指定了
nodePort: 30400 #外网访问的端口
selector:
app: redis
type: NodePort
k8s部署redis单机版
于 2022-03-23 16:44:21 首次发布