У меня проблема с депоментом Кубернетеса. Кто-нибудь может помочь, я всегда получаю эту ошибку при попытке подключения к кластеру IP - PullRequest
0 голосов
/ 18 января 2019

У меня проблемы с Кубернетесом. Я пытаюсь развернуть свой сервис в течение двух дней, но я делаю что-то не так.

{
  "kind": "Status",
  "apiVersion": "v1",
  "metadata": {

  },
  "status": "Failure",
  "message": "forbidden: User \"system:anonymous\" cannot get path \"/\": No policy matched.",
  "reason": "Forbidden",
  "details": {

  },
  "code": 403
}

Кто-нибудь знает, в чем может быть проблема? Вот также мой файл yaml:

# Certificate
apiVersion: certmanager.k8s.io/v1alpha1
kind: Certificate
metadata:
 name: ${APP_NAME}
spec:
 secretName: ${APP_NAME}-cert
 dnsNames:
   - ${URL}
   - www.${URL}
 acme:
   config:
     - domains:
         - ${URL}
         - www.${URL}
       http01:
         ingressClass: nginx
 issuerRef:
   name: ${CERT_ISSUER}
   kind: ClusterIssuer

---
# Ingress
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: ${APP_NAME}
  annotations:
    kubernetes.io/ingress.class: nginx
    nginx.ingress.kubernetes.io/ssl-redirect: 'true'
    nginx.ingress.kubernetes.io/from-to-www-redirect: 'true'
spec:
  tls:
  - secretName: ${APP_NAME}-cert
    hosts:
    - ${URL}
    - www.${URL}
  rules:
  - host: ${URL}
    http:
      paths:
      - backend:
          serviceName: ${APP_NAME}-service
          servicePort: 80

---
# Service
apiVersion: v1
kind: Service
metadata:
  name: ${APP_NAME}-service
  labels:
    app: ${CI_PROJECT_NAME}
spec:
  selector:
    name: ${APP_NAME}
    app: ${CI_PROJECT_NAME}
  ports:
    - name: http
      port: 80
      targetPort: http

---
# Deployment
apiVersion: apps/v1
kind: Deployment
metadata:
  name: ${APP_NAME}
  labels:
    app: ${CI_PROJECT_NAME}
spec:
  replicas: ${REPLICAS}
  revisionHistoryLimit: 0
  selector:
    matchLabels:
      app: ${CI_PROJECT_NAME}
  template:
    metadata:
      labels:
        name: ${APP_NAME}
        app: ${CI_PROJECT_NAME}
    spec:
      containers:
        - name: webapp
          image: eu.gcr.io/my-site/my-site.com:latest
          imagePullPolicy: Always
          ports:
            - name: http
              containerPort: 80
          env:
            - name: COMMIT_SHA
              value: ${CI_COMMIT_SHA}
          livenessProbe:
            tcpSocket:
              port: 80
            initialDelaySeconds: 30
            timeoutSeconds: 1
          readinessProbe:
            tcpSocket:
              port: 80
            initialDelaySeconds: 5
            timeoutSeconds: 1
          resources:
            requests:
              memory: '16Mi'
            limits:
              memory: '64Mi'
      imagePullSecrets:
        - name: ${REGISTRY_PULL_SECRET}

Кто-нибудь может мне помочь с этим? Я застрял и не знаю, в чем может быть проблема. Это также мой первый проект Kubernetes.

Ответы [ 2 ]

0 голосов
/ 21 января 2019

Я объяснил это в этом посте . Вам понадобятся ServiceAccount, ClusterRole и RoleBinding. Вы можете найти объяснение в этой статье . Или, как упоминал Мэтью Л. Даниэль в документации Kubernetes. Если у вас все еще есть проблемы, предоставьте метод / учебное пособие, которое вы использовали для развертывания кластера (поскольку «интеграция Gitlab Kubernetes» мало что говорит о методе, который вы использовали).

0 голосов
/ 19 января 2019

"message": "forbidden: User \"system:anonymous\" cannot get path \"/\": No policy matched.",

.. означает только то, что он говорит: ваш запрос к API kubernetes не был аутентифицирован (это часть system:anonymous), а ваш RBACКонфигурация не допускает, чтобы анонимный пользователь делал какие-либо запросы к API.

Никто здесь не сможет помочь вам решить эту проблему, потому что исправление зависит от огромного числа переменных.Возможно, попросите администратора кластера предоставить вам правильные учетные данные.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...