Меня не пробовали с Хелмом, но я собирал и развертывал в Kubernetes напрямую из .yaml
файла конфигурации. Так что я следовал только за шаблоном шлема
Для публикации вашего сервиса RabbitMQ вне кластера
1, вам нужен внешний IP:
Если вы используете Google Cloud, выполните следующие команды:
gcloud compute addresses create rabbitmq-service-ip --region asia-southeast1
gcloud compute addresses describe rabbitmq-service-ip --region asia-southeast1
>address: 35.240.xxx.xxx
Измените rabbitmq-service-ip
на нужное имя и измените region
на свое.
2, настройка Helm
, параметр
service.type=LoadBalancer
service.loadBalancerSourceRanges=35.240.xxx.xxx/32
# IP-адрес, который вы получили от gcloud
service.port=5672
3, разверните и попробуйте подключиться к вашему серверу RabbitMQ
telnet 35.240.xxx.xxx 5672
Trying 35.240.xxx.xxx...
Connected to 149.185.xxx.xxx.bc.googleusercontent.com.
Escape character is '^]'.
Попался! Сработало
FYI:
Вот базовый шаблон, если вы хотите создать .yaml
и развернуть без Helm
service.yaml
---
apiVersion: v1
kind: Service
metadata:
name: rabbitmq
labels:
name: rabbitmq
namespace: smart-office
spec:
type: LoadBalancer
loadBalancerIP: 35.xxx.xxx.xx
ports:
# the port that this service should serve on
- port: 5672
name: rabbitmq
targetPort: 5672
nodePort: 32672
selector:
name: rabbitmq
deployment.yaml
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: rabbitmq
labels:
name: rabbitmq
namespace: smart-office
spec:
replicas: 1
template:
metadata:
labels:
name: rabbitmq
annotations:
prometheus.io/scrape: "false"
spec:
containers:
- name: rabbitmq
image: rabbitmq:3.6.8-management
ports:
- containerPort: 5672
name: rabbitmq
securityContext:
capabilities:
drop:
- all
add:
- CHOWN
- SETGID
- SETUID
- DAC_OVERRIDE
readOnlyRootFilesystem: true
- name: rabbitmq-exporter
image: kbudde/rabbitmq-exporter
ports:
- containerPort: 9090
name: exporter
nodeSelector:
beta.kubernetes.io/os: linux
Надеюсь, это поможет!