Я пытаюсь настроить один узел hadoop на kubernetes.Странно то, что, когда я вхожу в модуль через kubectl exec -it <pod> /bin/bash
, я могу счастливо получить доступ, например, к узлу имени на порту 9000.
root@hadoop-5dcf94b54d-7fgfq:/hadoop/hadoop-2.8.5# telnet localhost 9000
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
Я также могу bin/hdfs dfs -put
файлы и тому подобное, поэтому кластерКажется, работает нормально.Я также могу получить доступ к интерфейсу через kubectl port-forward <podname> 50070:50070
и вижу, что узел данных запущен и работает.Таким образом, кластер (установка «псевдораспределенная», как описано здесь .), Кажется, работает нормально.
Однако, когда я хочу получить доступ к своему сервису через kubernetes dns, я получаюConnection refused
.
telnet hadoop.aca534.svc.cluster.local 9000
Trying 10.32.89.21...
telnet: Unable to connect to remote host: Connection refused
В чем разница при доступе к порту через k8s-dns?
Порт должен быть открыт, я также вижу, что hadoopимя узла прослушивает 9000.
lsof -i :9000
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
java 2518 root 227u IPv4 144574393 0t0 TCP localhost:9000 (LISTEN)
java 2518 root 237u IPv4 144586825 0t0 TCP localhost:9000->localhost:58480 (ESTABLISHED)
java 2660 root 384u IPv4 144584032 0t0 TCP localhost:58480->localhost:9000 (ESTABLISHED)
Для полной ссылки здесь приведена моя спецификация обслуживания и развертывания kubernetes yml
.
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
labels:
service: hadoop
name: hadoop
spec:
selector:
matchLabels:
service: hadoop
replicas: 1
template:
metadata:
labels:
service: hadoop
run: hadoop
track: stable
spec:
containers:
- name: hadoop
image: falcowinkler/hadoop:2.8.5
imagePullPolicy: Never
ports:
# HDFS Ports
- containerPort: 50010
- containerPort: 50020
- containerPort: 50070
- containerPort: 50075
- containerPort: 50090
- containerPort: 8020
- containerPort: 9000
# Map Reduce Ports
- containerPort: 19888
# YARN Ports
- containerPort: 8030
- containerPort: 8031
- containerPort: 8032
- containerPort: 8033
- containerPort: 8040
- containerPort: 8042
- containerPort: 8088
- containerPort: 22
# Other Ports
- containerPort: 49707
- containerPort: 2122
---
apiVersion: v1
kind: Service
metadata:
labels:
service: hadoop
name: hadoop
spec:
ports:
- name: hadoop
port: 9000
- name: ssh
port: 22
- name: hadoop-ui
port: 50070
selector:
service: hadoop
type: ClusterIP