У меня есть изображение контейнера Dogin nginx nha/my-nginx-img
.И у меня есть одноузловой кластер kubernetes, установленный на голое железо.Я пытаюсь развернуть и открыть этот контейнер nginx (в противном случае он работает нормально).
Я запустил kubectl apply -f nginx.yaml
для этого файла:
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-nginx
labels:
app: nginx
spec:
selector:
matchLabels:
run: my-nginx
replicas: 2
template:
metadata:
labels:
run: my-nginx
spec:
containers:
- name: my-nginx
image: nha/my-nginx-img
ports:
- containerPort: 80
- containerPort: 443
imagePullSecrets:
- name: regcred
#
# Expose Service
#
apiVersion: v1
kind: Service
metadata:
name: my-nginx
labels:
run: my-nginx
spec:
# I thought using NodePort here
# would expose the port on the node?
type: NodePort
ports:
- name: http
protocol: TCP
port: 80
targetPort: 80
- name: https
protocol: TCP
port: 443
targetPort: 443
selector:
run: my-nginx
Я вижу, как они работают:
kubectl get pods -l run=my-nginx -o wide
NAME READY STATUS RESTARTS AGE IP NODE
my-nginx-5ccbf78584-4lxsn 1/1 Running 0 1d 10.233.102.181 node1
my-nginx-5ccbf78584-6qkml 1/1 Running 0 1d 10.233.102.182 node1
Однако: - IP-адреса, показанные в приведенной выше команде, НЕ являются IP-адресами моей машины - когда я сверну IP-адрес своей машины, я не получаю ответ ни на порт 80, ни на 443
Как мне получить обслуживание этого статического контента от nginx?
Дополнительная информация
kubectl get services
дает:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.233.0.1 <none> 443/TCP 2d
my-nginx NodePort 10.233.16.91 <none> 80:31081/TCP,443:31856/TCP 5h
(10.233.16.91 НЕ является моим IP)
И kubectl describe service my-nginx
:
Name: my-nginx
Namespace: default
Labels: run=my-nginx
Annotations: kubectl.kubernetes.io/last-applied-configuration={"apiVersion":"v1","kind":"Service","metadata":{"annotations":{},"labels":{"run":"my-nginx"},"name":"my-nginx","namespace":"default"},"spec":{"ports":[...
Selector: run=my-nginx
Type: NodePort
IP: 10.233.16.91
Port: http 80/TCP
TargetPort: 80/TCP
NodePort: http 31081/TCP
Endpoints: 10.233.102.181:80,10.233.102.182:80
Port: https 443/TCP
TargetPort: 443/TCP
NodePort: https 31856/TCP
Endpoints: 10.233.102.181:443,10.233.102.182:443
Session Affinity: None
External Traffic Policy: Cluster
Events: <none>
Опять же, я не вижу свой IPгде-нибудь там.
Также я создал кластер, используя kubespray .