Рубрики
Uncategorized

Мои первые дежопты собеседования часть 2 из 3

В последней части я представился в упражнениях и говорил о осложнениях, которые я имел с зданием … Теги с DevOps, Kubernetes, карьерой, докера.

Мои первые развлеченные собеседования (3 части серии)

В Последняя часть Я ввел в упражнениях и говорил о осложнениях, которые я имел с созданием докеренного дела с хромом внутри на ARM64 Платформа. Также используется Nodejs приложение и его ‘ Dockerfile был представлен. Эта часть будет больше о Кубернаны Настройка кластера и развертывание приложения NODEJS.

Настройка кластера Kubernetes

После создания Dockerfile Речь идет о создании кластера Кубернетика. Какую программу я использую для этого, был до меня. В моем Дежол с Кубератусами Конечно, мы используем k3d. Это реализация K3s в доке. В ходе курса я не испытывал никаких проблем с этим решением, поэтому я обязательно использовал K3D для решения заданий. Установка K3D на MacOS легко через Домашний вид с Brew Установить K3D Отказ Затем кластер может быть создан с K3D Cluster Create --port '8082: 30080 @ Agent [0]' -P 8081: 80 @ loadbalancer --гры 2 Отказ 8081: 80 @ loadbalancer позволит нашим приложениям быть доступным для нас через localhost: 8081. .

Развертывание приложения

С бегущим кластером Kubernetes развертывание теперь было в повестке дня. От начала я решил логически отделить приложение от остальной части кластера и создал отдельное пространство имен. Это возможно с Kubectl Создать пространство имен упражнения-NS в Кубебене. Основная структура для развертывания можно найти в документации Kubernetes ( Развертывание | Kubernetes ). Так что я создал Развертывание.ямль В моем проявляется папка со следующим контентом:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: exercise-app
    namespace: exercise-ns
  labels:
    app: exercise-app
spec:
  replicas: 1
  selector:
    matchLabels:
      app: exercise-app
  template:
    metadata:
      labels:
        app: exercise-app
    spec:
      containers:
      - name: exercise-app
        image: niklasmtj/exercise-app:v1

Чтобы сделать обнаружение развертывания, я также создал услугу. Документация Kubernetes для услуг ( Развертывание | Kubernetes ) снова предоставляет основную структуру. Определение услуги можно найти под Манифест/Service.yaml :

apiVersion: v1
kind: Service
metadata:
  name: exercise-svc
    namespace: exercise-ns
spec:
    type: ClusterIP
  selector:
    app: exercise-app
  ports:
    - protocol: TCP
      port: 80
      targetPort: 3000

Здесь важно отметить, что Цельюпорт Соответствует порту, выставленному контейнером докера.

Проходность

После подготовки развертывания задача теперь была возможность получить доступ к ней. Таким образом, соединение через Вход вошел в игру. По умолчанию K3S использует контроллер входа Traefik для прохождения маршрута, который я также использовал. Конфигурация входа довольно проста. В Ingress.yaml Файл я использовал следующую конфигурацию:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: exercise-ingress
  namespace: exercise-ns
spec:
  rules:
  - http:
      paths:
      - path: /
        backend:
          serviceName: exercise-svc
          servicePort: 80

Таким образом / Путь напрямую направляется в упражнение Сервис, который мы определены в Service.yaml на порту 80.

IP-Whitelisting

Другая задача, которую я должен был решить с проникновением, заключался в том, чтобы ограничить диапазон IP, который вообще принят. К сожалению, из-за моих предыдущих знаний у меня не было возможности реализовать все это в то время. Тем не менее я читаю, как я бы реализую это и задокументировал его в моем Readme. В ходе задачи я посмотрел на контроллер входа NGINX, потому что я нашел больше всего результатов по этому поводу во время моих исследований. Там, кажется, работает простая аннотация в Ingress.yaml :

metadata:
  annotations:
    ingress.kubernetes.io/whitelist-source-range: "192.168.0.0/16"

Это убедится, что только IPS из 192.168.0.0.0/16 Сеть может подключаться к приложениям. Так что каждый IP, начиная с 192.168.0.1 к 196.168.255.254 имеют право подключаться. NGINX упадет на все запросы, не исходя из этого диапазона IP.

Кроме того, попытки с Traefik в качестве контроллера входа, который используется K3S по умолчанию, не удалось. Это район, который мне нужно посмотреть более подробно в ближайшем будущем, чтобы точно понять, насколько входятся, и на каком уровне вы можете заблокировать IPS. Кроме того, мне нужно посмотреть, имеет ли это значение того, что мой кластер K3S работает внутри докера и как это влияет на входящие IPS.

Спасибо за чтение, Никлас

Код из этого поста также можно найти на GitHub: Niklasmtj/Kubernetes-упражнение . Кроме того, я создал ARM64 а также AMD64 Docker Image для Niklasmtj/Упражнение-приложение: v1 Отказ Таким образом, примерное приложение должно быть использовано на других устройствах.

Серия:

  • Часть 1.
  • Часть 2
  • Часть 3 — Пришли 29 апреля

Мои первые развлеченные собеседования (3 части серии)

Оригинал: «https://dev.to/niklasmtj/my-first-devops-job-interview-part-2-of-3-3i0m»