Услуги с лазурным kubernetes не доступны - PullRequest
0 голосов
/ 07 апреля 2019

Я пытаюсь настроить кластер Azure kubernetes и создал его в основном проекте портала .netcker .net webapi, а также опубликовал изображение в регистр контейнера Azure.После применения файла манифеста, я получаю сообщение о создании службы, а также внешний IP.однако, когда я получаю модули, я все время получаю статус «Ожидание»

  NAME                           READY     STATUS    RESTARTS   AGE
  kubdemo1api-6c67bf759f-6slh2   0/1       Pending   0          6h

, вот мой файл манифеста yaml, кто-то может подсказать, что здесь не так?

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: kubdemo1api
labels:
  name: kubdemo1api
spec:
  replicas: 1
strategy:
  rollingUpdate:
  maxSurge: 1
  maxUnavailable: 1
type: RollingUpdate
 minReadySeconds: 30
selector:
matchLabels:
  app: kubdemo1api
template:
metadata:
  labels:
    app: kubdemo1api
    version: "1.0"
    tier: backend
spec:
  containers:
  - name: kubdemo1api
    livenessProbe:
      httpGet:
        path: /
        port: 80
      initialDelaySeconds: 30
      timeoutSeconds: 10
    readinessProbe:
      httpGet:
        path: /
        port: 80
      initialDelaySeconds: 30
      timeoutSeconds: 10
    image: my container registry image address
    resources:
      requests:
        cpu: 100m
        memory: 100Mi
    ports:
    - containerPort: 80
    livenessProbe:
      httpGet:
        path: /
        port: 80
      initialDelaySeconds: 30
      timeoutSeconds: 10
    readinessProbe:
      httpGet:
        path: /
        port: 80
      initialDelaySeconds: 30
      timeoutSeconds: 10
--- 
apiVersion: v1
kind: Service
metadata: 
  name: azkubdemoapi1
spec: 
  ports: 
- 
  port: 80
selector: 
  app: kubdemo1api
  type: LoadBalancer

РЕДАКТИРОВАТЬ:Выходные kubectl описывают стручки это

вот оно

Normal   Scheduled  2m                default-scheduler                  Successfully assigned default/kubdemo1api-697d5655c-64fnj to aks-agentpool-87689508-0
  Normal   Pulling    37s (x4 over 2m)  kubelet, aks-agentpool-87689508-0  pulling image "myacrurl/azkubdemo:v2"
  Warning  Failed     37s (x4 over 2m)  kubelet, aks-agentpool-87689508-0  Failed to pull image "my acr url": [rpc error: code = Unknown desc = Error response from daemon: Get https://myacrurl/v2/azkubdemo/manifests/v2: unauthorized: authentication required, rpc error: code = Unknown desc = Error response from daemon: Get https://myacrurl/v2/azkubdemo/manifests/v2: unauthorized: authentication required]
  Warning  Failed     37s (x4 over 2m)  kubelet, aks-agentpool-87689508-0  Error: ErrImagePull
  Normal   BackOff    23s (x6 over 2m)  kubelet, aks-agentpool-87689508-0  Back-off pulling image "myacrlurl/azkubdemo:v2"
  Warning  Failed     11s (x7 over 2m)  kubelet, aks-agentpool-87689508-0  Error: ImagePullBackOff

Ответы [ 2 ]

2 голосов
/ 10 апреля 2019

В случае ошибки, которую вы указываете, вы должны выполнить аутентификацию для извлечения образа из реестра контейнера Azure.

На самом деле, вам просто нужно разрешение, чтобы вытащить образ, и роли acrpull вполне достаточно. Есть два способа добиться этого.

Во-первых, просто предоставьте AKS доступ к реестру контейнеров Azure. Это проще всего на моей стороне. Просто нужно создать назначение роли для субъекта службы, который использовал AKS. См. Предоставление AKS доступа к ACR для всех шагов.

Другой - тот, кто использует секрет Кубернетеса. Это немного сложнее, чем первый. Вам нужно создать нового участника службы, отличного от используемого AKS, и предоставить ему доступ, а затем создать секрет kubernetes вместе с субъектом службы. См. Доступ с секретом Kubernetes для всех шагов.

0 голосов
/ 07 апреля 2019

Этот Yaml является неправильным. Можете ли вы предоставить правильный Yaml, намерения неверны.Попробуйте ниже YAML

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: kubdemo1api
  labels:
    name: kubdemo1api
spec:
  replicas: 1
  strategy:
    rollingUpdate:
      maxSurge: 1
      maxUnavailable: 1
    type: RollingUpdate
  minReadySeconds: 30
  selector:
    matchLabels:
      app: kubdemo1api
  template:
    metadata:
      labels:
        app: kubdemo1api
        version: "1.0"
        tier: backend
    spec:
      containers:
      - name: kubdemo1api
        image: nginx
        resources:
          requests:
            cpu: 100m
            memory: 100Mi
        ports:
        - containerPort: 80
        livenessProbe:
          httpGet:
            path: /
            port: 80
        readinessProbe:
          httpGet:
            path: /
            port: 80
          initialDelaySeconds: 30
          timeoutSeconds: 10
---
apiVersion: v1
kind: Service
metadata: 
  name: azkubdemoapi1
spec: 
  ports: 
  - port: 80
  selector: 
    app: kubdemo1api
  type: LoadBalancer
...