Рубрики
Uncategorized

Как развернуть веб-сайт Docusaurus на K8S

Во-первых, позвольте мне дать вам немного фона. У моей компании мы ищем способ создания и … с меткой Kubernetes, DevOps, Documentation.

Во-первых, позвольте мне дать вам немного фона.

В моей компании мы ищем способ создавать и делиться внутренней документацией с помощью документации на основе GIT и Markdown.

Причины этих вариантов являются то, что (1) Markdown проста в использовании, и все разработчики знают, как его использовать; и (2) Служба на основе GIT поможет нам отслеживать изменения документации и договориться о улучшении с использованием запросов на тягу и «отзывы DOC», прежде чем объединить любые изменения.

После некоторых поисков мы решили пойти с Docusaurus статической документацией Generator, созданный Facebook.

Мы действительно наслаждаемся этим, так как оно основано на реактивном родном, и после того, как все будет настроено, очень легко представить новую страницу DOC или вносить изменения.

Но когда мы впервые начали использовать его, мы оказались с проблемой развертывания. Мы хотели сохранить документацию частную и не хотеть использовать какие-либо из услуг, которые команда Docusuarus предлагает (NetLify, Github Pages и т. Д.). Вместо этого мы решили провести его в нашем собственном кластере «dev» Kubernetes, чтобы мы могли получить доступ к нему через наш прокси и VPN.

Я не нашел никакой информации о том, как сделать это онлайн, поэтому вот шаги, которые я следовал, если вы оказываетесь с той же проблемой:

Шаги развертывания

  • Я предполагаю, что у вас уже есть веб-сайт Docusuarus, который вы можете запустить локально использовать пряжа, пряжа сборка, пряжа служит (или их NPM эквиваленты).
  • С той из того, как вам просто нужно построить документ докера:
FROM node:12.19.0-alpine

WORKDIR /app

COPY . /app

RUN yarn

RUN yarn build

ENTRYPOINT ["yarn", "run", "serve"]
  • Нажмите на новое изображение в предпочтительный реестр Docker
  • И, наконец, примените развертывание K8S к вашему кластеру. Сохранить и настроить ниже Ямл а потом просто беги Kubectl Apply Printe -F Deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: ms-docs
spec:
  selector:
    matchLabels:
      app: ms-docs
  template:
    metadata:
      labels:
        app: ms-docs
    spec:
      containers:
      - name: ms-docs
        envFrom:
        - configMapRef:
            name: ms-docs
        image: my-registry/ms-docs:stable
        imagePullPolicy: Always
        livenessProbe:
          failureThreshold: 15
          httpGet:
            path: /
            port: 3000
          initialDelaySeconds: 20
          periodSeconds: 15
          timeoutSeconds: 5
        ports:
        - containerPort: 80
          name: http
          protocol: TCP
        readinessProbe:
          failureThreshold: 15
          httpGet:
            path: /
            port: 3000
          initialDelaySeconds: 20
          periodSeconds: 15
          timeoutSeconds: 5
        resources:
          limits:
            cpu: "500m"
            memory: 384Mi
          requests:
            cpu: "500m"
            memory: 384Mi
--------
apiVersion: v1
kind: Service
metadata:
  name: ms-docs
spec:
  ports:
  - name: http
    port: 3000
    protocol: TCP
    targetPort: 3000
  selector:
    app: ms-docs
  type: ClusterIP

Оригинал: «https://dev.to/aesadde/how-to-deploy-a-docusaurus-website-to-k8s-2p46»