Кубернетес: доступ снаружи - PullRequest
0 голосов
/ 01 мая 2020

У меня есть приложение 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 Ответ

2 голосов
/ 01 мая 2020

Создание NodePort или LoadBalancer (работает только на поддерживаемых облачных провайдерах) служба для предоставления развертывания вне кластера.

Вот руководство о том, как используйте службу NodePort.

Чтобы иметь возможность доступа к приложению через службу NodePort, IP-адрес узла должен быть доступен (т.е. должен находиться в той же сети) из системы, к которой вы обращаетесь.

...