Я настраиваю свои сервисы с типом ClusterIP. И я хочу, чтобы они общались.
Служба
apiVersion: v1
kind: Service
metadata:
labels:
app: app-backend-deployment
name: app-backend
spec:
type: ClusterIP
ports:
- port: 8020
protocol: TCP
targetPort: 8100
selector:
app: app-backend
Развертывание
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: app-backend
name: app-backend-deployment
spec:
replicas: 1
selector:
matchLabels:
app: app-backend
template:
metadata:
labels:
app: app-backend
spec:
containers:
- name: app-backend
image: app-backend
ports:
- containerPort: 8100
imagePullPolicy: Never
ConfigMap
apiVersion: v1
kind: ConfigMap
metadata:
name: backend-conf # name of configMap
data:
BACKEND_SERVICE_HOST: app-backend:8020
И это то, что я передаю в службу веб-интерфейса, и я хочу сделать вызов REST через имя DNS, например http://app-backend: 8020 / get / 1 . Но, как я вижу в консоли, приложение не может разрешить DNS-имя net::ERR_NAME_NOT_RESOLVED
.
. Я также проверяю pod nslookup:
busybox nslookup app-backend.default.svc.cluster.local
Server: 10.96.0.10
Address: 10.96.0.10:53
Name: app-backend.default.svc.cluster.local
Address: 10.106.41.36
и сравниваю его с
kubectl describe svc app-backend
Name: app-backend
Namespace: default
Labels: app=app-backend-deployment
Annotations: kubectl.kubernetes.io/last-applied-configuration:
{"...
Selector: app=app-backend
Type: ClusterIP
IP: 10.106.41.36
Port: <unset> 8020/TCP
TargetPort: 8100/TCP
И, как вы можете видеть, есть тот же IP на адрес, но я не знаю, и где посмотреть, что не так, почему не работает DNS-преобразователь. kubectl version Client "v1.15.5", Server Version:"v1.17.3",