Ярлыки пода не создавались после развертывания K8s - PullRequest
0 голосов
/ 06 августа 2020

Я использую кластер K8s на rasberry pi (Ubuntu 20.04). Когда я пытаюсь развернуть следующее развертывание K8s, метки 'rel' и 'env' не были созданы на модулях.

Версии K8s:

Client Version: version.Info{Major:"1", Minor:"14", GitVersion:"v1.14.7", GitCommit:"8fca2ec50a6133511b771a11559e24191b1aa2b4", GitTreeState:"clean", BuildDate:"2019-09-18T14:47:22Z", GoVersion:"go1.12.9", Compiler:"gc", Platform:"windows/a
md64"}  
                                                                                                                                                                                                                                        
Server Version: version.Info{Major:"1", Minor:"18", GitVersion:"v1.18.6", GitCommit:"dff82dc0de47299ab66c83c626e08b245ab19037", GitTreeState:"clean", BuildDate:"2020-07-15T16:51:04Z", GoVersion:"go1.13.9", Compiler:"gc", Platform:"linux/arm"}   

                                                                                                                                                                                                                                       

- Развертывание yaml (kubectl apply -f.)

apiVersion: apps/v1 
kind: Deployment
metadata:
  name: product-catalog-deployment
  namespace: default
  labels: 
   app: product-catalog
   rel: beta
   env: prod
spec:
  selector:
    matchLabels:
      app: product-catalog
  replicas: 3
  template:
    metadata:
      labels:
        app: product-catalog
    spec:
      containers:
      - name: product-catalog
        image: marveltracker/netcore_fun:netcore_3_1
        ports:
        - containerPort: 80
          name: http
        - containerPort: 443
          name: https
      

--- получить prods (kubectl get po --show-labels)

NAME                                          READY   STATUS    RESTARTS   AGE   LABELS
product-catalog-deployment-65c7bcbf48-8nxbw   1/1     Running   0          16s   app=product-catalog,pod-template-hash=65c7bcbf48
product-catalog-deployment-65c7bcbf48-f764h   1/1     Running   0          16s   app=product-catalog,pod-template-hash=65c7bcbf48
product-catalog-deployment-65c7bcbf48-pcz4q   1/1     Running   0          16s   app=product-catalog,pod-template-hash=65c7bcbf48

В чем была проблема?

1 Ответ

2 голосов
/ 06 августа 2020

Ваш Yaml-файл должен выглядеть так:

apiVersion: apps/v1 
kind: Deployment
metadata:
  name: product-catalog-deployment
  namespace: default
  labels: 
    app: product-catalog
    rel: beta
    env: prod
spec:
  replicas: 3
  selector:
    matchLabels:
      app: product-catalog
      rel: beta               #----These all should same 
      env: prod
  template:
    metadata:
      labels:
        app: product-catalog  
        rel: beta             #----Same like above
        env: prod
    spec:
      containers:
      - name: product-catalog
        image: marveltracker/netcore_fun:netcore_3_1
        ports:
        - containerPort: 80
          name: http
        - containerPort: 443
          name: https
  

Это связано с тем, что развертывание управляет наборами реплик в фоновом режиме, и вы применяете метку к модулям наборов реплик. и replicaset добавляют метку к модулям и управляет этими модулями (означает количество доступных модулей)

...