Я развернул небольшое приложение, используя следующий yaml.
apiVersion: apps/v1
kind: Deployment
metadata:
name: simpledotnetapi-deployment
spec:
replicas: 1
selector:
matchLabels:
app: simpledotnetapi-pod
template:
metadata:
labels:
app: simpledotnetapi-pod
spec:
imagePullSecrets:
- name: kimagereadersecret
containers:
- name: simpledotnetapi
image: docker.io/coreyperkins/simpledotnetapi:latest
ports:
- containerPort: 5000
---
apiVersion: v1
kind: Service
metadata:
name: simpledotnetapi-service
spec:
type: LoadBalancer
ports:
- port: 80
targetPort: 5000
nodePort: 30008
selector:
app: simpledotnetapi-pod
type: front-end
На вкладке «Сервисы» в панели управления K8 отображается следующее:
Name: simpledotnetapi-service
Cluster IP: 10.0.133.156
Internal Endpoints:
simpledotnetapi-service:80 TCP
simpledotnetapi-service:30008 TCP
External Endpoints:
13.77.76.204:80
- вывод kubectl.exe описывает svc simpledotnetapi-service
λ kubectl.exe describe svc simpledotnetapi-service
Name: simpledotnetapi-service
Namespace: default
Labels: <none>
Annotations: kubectl.kubernetes.io/last-applied-configuration={"apiVersion":"v1","kind":"Service","metadata":{"annotations":{},"name":"simpledotnetapi-service","namespace":"default"},"spec":{"ports":[{"nodePort":3...
Selector: app=simpledotnetapi-pod,type=front-end
Type: LoadBalancer
IP: 10.0.133.156
LoadBalancer Ingress: 13.77.76.204
Port: <unset> 80/TCP
TargetPort: 5000/TCP
NodePort: <unset> 30008/TCP
Endpoints: <none>
Session Affinity: None
External Traffic Policy: Cluster
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal EnsuringLoadBalancer 33m (x4 over 2h) service-controller Ensuring load balancer
Normal EnsuredLoadBalancer 33m (x4 over 2h) service-controller Ensured load balancer
Когда я подхожу к модулю, я вижу, что мой док-контейнер работает нормально, на порту 5000, как указано в инструкции. Однако, когда я перехожу на http://13.77.76.204/api/values, я должен увидеть возвращенный массив, но вместо этого время ожидания соединения истекло (ERR_CONNECTION_TIMED_OUT в Chrome). Я протестировал этот контейнер Docker локально, и он работает просто отлично. Я предполагаю, что я испортил «containerPort» в спецификации модуля (в разделе «Развертывание»), но я уверен, что контейнер жив на порту 5000. Возможно, мне не хватает некоторых битов конфигурации? Однако, просматривая примеры и документацию, я не смог выяснить, почему не устанавливается соединение с модулем, но я не вижу никакой активности в журналах модулей кроме первоначального запуска приложения.