Kubernetes: доступ извне
У меня есть приложение flask, работающее на удаленном кластере Kubernetes, и когда я обращаюсь к нему изнутри, оно работает. Однако когда я пытаюсь получить к нему доступ извне, ничего не происходит. Я использую вид для создания кластера. Локально я могу получить доступ к приложению flask через IP-адрес узла. Я не знаю, как получить доступ к сервису извне, нужно ли мне делать что-то еще, чтобы получить доступ к приложению.
apiVersion: v1
vi serkind: Service
metadata:
name: iweblens-svc
labels:
app: flaskapp
spec:
type: NodePort
ports:
- port: 5000
targetPort: 5000
protocol: TCP
selector:
app: flaskapp
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
kubeadmConfigPatches:
- |
apiVersion: kubelet.config.k8s.io/v1beta1
kind: KubeletConfiguration
evictionHard:
nodefs.available: "0%"
kubeadmConfigPatchesJSON6902:
- group: kubeadm.k8s.io
version: v1beta2
kind: ClusterConfiguration
patch: |
- op: add
path: /apiServer/certSANs/-
value: my-hostname
nodes:
- role: control-plane
- role: worker
apiVersion: apps/v1
kind: Deployment
metadata:
name: flaskapp
labels:
app: flaskapp
spec:
replicas: 1
selector:
matchLabels:
app: flaskapp
template:
metadata:
labels:
app: flaskapp
spec:
containers:
- name: flaskapp
image: myimage
imagePullPolicy: Never
ports:
- containerPort: 5000
resources:
limits:
cpu: "0.5"
requests:
cpu: "0.5"
1 ответ
Создание NodePort или LoadBalancer (работает только на поддерживаемых провайдеров облачных) услуги, чтобы разоблачить развертывание вне кластера.
Вот руководство по использованию службы NodePort.
Чтобы иметь возможность доступа к приложению через службу NodePort, IP-адрес узла должен быть доступен (т.е. должен находиться в той же сети) из системы, в которой вы к нему обращаетесь.