【发布时间】:2020-07-10 07:26:37
【问题描述】:
我想在 kubernetes 中运行这个 docker 镜像: https://hub.docker.com/_/rabbitmq
这不是问题,它正在运行。问题是我需要通过开关发送“docker run”命令。对于这个图像,当在 docker 中启动容器时,你会运行这个:
docker run -d --hostname my-rabbit --name some-rabbit rabbitmq:3
yaml 文件将如下所示:
apiVersion: apps/v1
kind: Deployment
metadata:
name: rb
namespace: rabbittest
spec:
selector:
matchLabels:
app: rb
replicas: 1
template:
metadata:
labels:
app: rb
spec:
containers:
- name: rb-container
env:
- name: HOSTNAME
value: "rbnode001"
image: rabbitmq:3-management
resources:
requests:
cpu: 100m
memory: 128Mi
limits:
cpu: 250m
memory: 256Mi
volumeMounts:
- name: azure
mountPath: /mnt/azure
ports:
- containerPort: 5672
volumes:
- name: azure
azureFile:
secretName: azure-secret
shareName: rabbittest
readOnly: false
我的问题是,当 kubernetes 执行“docker run”命令时,如何让 kubernetes 应用 --name 和 --hostname?
【问题讨论】:
-
你的目的是什么?为什么在 kuberneres 中运行时需要
--name和--hostname? -
因为这是在 docker 中运行特定映像的要求。从文档中:关于 RabbitMQ 需要注意的重要事项之一是它根据它所谓的“节点名称”存储数据,默认为主机名。这对于 Docker 的使用意味着我们应该为每个守护进程明确指定 -h/--hostname,这样我们就不会得到一个随机的主机名并且可以跟踪我们的数据
-
那么,你想在环境中设置节点名吗?
-
不,“主机名”。它可以是任何值。比如“RabbitMQ0001”。
标签: kubernetes rabbitmq