Это действительно зависит от того, как вы это выставляете. По умолчанию это не выставлено внешнему миру. У нас есть graylog3
служба типа NodePort
, поэтому у нас есть только внутренний IP-адрес, к которому можно получить доступ из другого модуля или использовать для доступа к нему при входе.
$ kubectl get service -o wide
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR
es6 NodePort 10.23.244.28 <none> 9200:30001/TCP,9300:30002/TCP 54m service=es-deploy
graylog3 NodePort 10.23.242.128 <none> 9000:30003/TCP,12201:30004/TCP 54m service=graylog-deploy
kubernetes ClusterIP 10.23.240.1 <none> 443/TCP 57m <none>
mongo ClusterIP 10.23.243.160 <none> 27017/TCP 54m service=mongo-deploy
Если мы свернем этот сервис и порт из другого модуля, у нас будет следующий вывод:
$ kubectl exec -ti ubuntu -- curl 10.23.242.128:9000
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="robots" content="noindex, nofollow">
<meta charset="UTF-8">
<title>Graylog Web Interface</title>
<link rel="shortcut icon" href="http://your_ip_address:30003/assets/favicon.png">
</head>
<body>
<script src="http://your_ip_address:30003/config.js"></script>
<script src="http://your_ip_address:30003/assets/vendor.4024e2a8db732781a971.js"></script>
<script src="http://your_ip_address:30003/assets/polyfill.a5e2fb591e8fd54ee4ef.js"></script>
<script src="http://your_ip_address:30003/assets/builtins.a5e2fb591e8fd54ee4ef.js"></script>
<script src="http://your_ip_address:30003/assets/plugin/org.graylog.plugins.threatintel.ThreatIntelPlugin/plugin.org.graylog.plugins.threatintel.ThreatIntelPlugin.b864ba54b438ac0bdc48.js"></script>
<script src="http://your_ip_address:30003/assets/plugin/org.graylog.plugins.collector.CollectorPlugin/plugin.org.graylog.plugins.collector.CollectorPlugin.bcc87290018e859a8a9e.js"></script>
<script src="http://your_ip_address:30003/assets/plugin/org.graylog.aws.AWSPlugin/plugin.org.graylog.aws.AWSPlugin.8ae7cb13983ce33eeb5b.js"></script>
<script src="http://your_ip_address:30003/assets/app.a5e2fb591e8fd54ee4ef.js"></script>
</body>
</html>
Как видно, есть ссылка для http://your_ip_address:30003
. Если мы оставим это так, приложение сломается, потому что оно ссылается на что-то несуществующее.
Итак, я изменю 2 вещи, сделаю его видимым из внешнего мира при входе и заменим GRAYLOG_HTTP_EXTERNAL_URI
на правильный IP-адрес. Я получу:
1 - Создание правила входа для выставить Graylog:
Вот так выглядит мой входной манифест
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: graylog
spec:
backend:
serviceName: graylog3
servicePort: 9000
$ kubectl get ingresses
NAME HOSTS ADDRESS PORTS AGE
graylog * 34.107.139.231 80 56s
2 - отредактируйте наш GRAYLOG_HTTP_EXTERNAL_URI
и замените http://your_ip_address:30003
на http://34.107.139.231:80
.
Заметьте, что здесь я меняю порт с 30003
на 80
, так как наше правило входа выставляет на порт 80
.
$ kubectl edit deployments graylog-deploy
Изменения сделаны, теперь давайте свернемся с этим порт с любой консоли (дайте ему время для воссоздания модулей):
$ curl 34.107.139.231:80
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="robots" content="noindex, nofollow">
<meta charset="UTF-8">
<title>Graylog Web Interface</title>
<link rel="shortcut icon" href="http://34.107.139.231:80/assets/favicon.png">
</head>
<body>
<script src="http://34.107.139.231:80/config.js"></script>
<script src="http://34.107.139.231:80/assets/vendor.4024e2a8db732781a971.js"></script>
<script src="http://34.107.139.231:80/assets/polyfill.a5e2fb591e8fd54ee4ef.js"></script>
<script src="http://34.107.139.231:80/assets/builtins.a5e2fb591e8fd54ee4ef.js"></script>
<script src="http://34.107.139.231:80/assets/plugin/org.graylog.plugins.threatintel.ThreatIntelPlugin/plugin.org.graylog.plugins.threatintel.ThreatIntelPlugin.b864ba54b438ac0bdc48.js"></script>
<script src="http://34.107.139.231:80/assets/plugin/org.graylog.plugins.collector.CollectorPlugin/plugin.org.graylog.plugins.collector.CollectorPlugin.bcc87290018e859a8a9e.js"></script>
<script src="http://34.107.139.231:80/assets/plugin/org.graylog.aws.AWSPlugin/plugin.org.graylog.aws.AWSPlugin.8ae7cb13983ce33eeb5b.js"></script>
<script src="http://34.107.139.231:80/assets/app.a5e2fb591e8fd54ee4ef.js"></script>
</body>
</html>
Теперь мы можем видеть http://34.107.139.231:80/
, как и ожидалось, и страница может быть идеально загружена.
Если у вас есть доменное имя, которое перенаправляет на IP-адрес вашего приложения, поместите его в эту переменную.