Kubernetes: Pod не создается после применения развертывания

#kubernetes #kubernetes-pod

#kubernetes #kubernetes-pod

Вопрос:

У меня проблема с Kubernetes на моем локальном компьютере. Я хочу создать модуль с базой данных, поэтому я подготовил файл развертывания с помощью service.

 apiVersion: v1
kind: Service
metadata:
  name: bid-service-db
  labels:
    app: bid-service-db
    tier: database
spec:
  ports:
  - name: "5432"
    port: 5432
    targetPort: 5432
  selector:
    app: bid-service-db
    tier: database

---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: bid-service-db
  labels:
    app: bid-service-db
    tier: database
spec:
  selector:
    matchLabels:
      app: bid-service-db
  strategy:
    type: Recreate
  template:
    metadata:
      labels:
        app: bid-service-db
        tier: database
    spec:
      containers:
      - env:
        - name: POSTGRES_DB
          value: mydb
        - name: POSTGRES_PASSWORD
          value: password
        - name: POSTGRES_USER
          value: postgres
        image: postgres:13
        imagePullPolicy: Never
        name: bid-service-db
        ports:
        - containerPort: 5432
          name: bid-service-db
        resources: {}
      restartPolicy: Always
      serviceAccountName: ""
      volumes:
        - name: postgres-persistance-storage
          persistentVolumeClaim:
            claimName: bid-service-db-volume
status: {}

  

Я применяю этот файл с. k apply -f bid-db-deployment.yaml k get all возвращает, что была создана только служба, но модуль не запущен. Что я могу сделать в этом случае? Как устранить это?

Комментарии:

1. Каков результат команды apply? Вы проверили все пространства имен? kubectl get deployments -A

2. Да, я проверил эту команду, но ничего экстраординарного. Я просто перезапускаю кластер, после этого он начал работать.

Ответ №1:

если вы не получили никаких ошибок при «применении», вы можете получить причину сбоя с помощью:

 kubectl describe deployment/DEPLOMENT_NAME
  

Кроме того, вы можете взять только часть deployment и поместить ее в отдельный файл YAML и посмотреть, не появятся ли ошибки.

Ответ №2:

Поскольку после перезапуска кластера он работал на вас, хорошей идеей в следующий раз должна быть проверка журналов из модулей kube-api и kube-controller с помощью команды:

kubectl logs pn kube-system <kube-api/controller_pod_name>

Чтобы получить список ваших развертываний во всем пространстве имен, вы можете использовать команду:

kubectl get deployments -A