从《Kubernetes实践入门》一书的实例学习,学习关于标签的内容

背景 – 背景环境

个人希望不仅仅了解基础设施知识,更希望创建并部署能够运行未来应用程序的环境,以获得未来知识。并且,我希望进一步更新自己的知识。

我在其中遇见了这本书,从现在开始留下一些所做的事情,它也可以作为给未来的自己的一封信,希望能够重新审视。

本次分享一些我学习过程中的书籍,供大家引用和参考之用。

关于实际学习的事情

我想一邊讀書一邊逐章地慢慢前進。我也想利用GitHub的源代碼來學習。

开始勉强

我会从这里开始学习Label和Label选择器。

    https://github.com/kubernetes-practical-guide/examples/tree/master/ch1.3.3
apiVersion: v1
kind: Pod
metadata: # 全てのオブジェクトが共通で持つメタ情報 (1)
  name: my-pod
  namespace: my-namespace
  labels: # Labelの設定 (2)
    environment: production
    release: canary
spec:
  containers: # Podに含むコンテナのリスト (1)
  - name: nginx # コンテナの名前
    image: k8spracticalguide/nginx:1.15.5 # コンテナイメージ
    ports:
    - containerPort: 80
apiVersion: v1
kind: Service
metadata:
  name: my-service
  annotations: # Annotationの設定 (2)
    prometheus.io/scrape: "true"
    prometheus.io/path: "/metrics"
    prometheus.io/port: "9102"
spec:
  selector:
    app: my-app
  ports:
  - port: 8080
    targetPort: 80

命令组

应用 Pod 的清单文件。

$ kubectl apply -f my-pod.yaml

使用指定的命名空间进行 Pod 搜索。

$ kubectl get pods --namespace=my-namespace
NAME     READY   STATUS    RESTARTS   AGE
my-pod   1/1     Running   0          13m

使用环境标签进行搜索

$ kubectl get pods -l environment=production --namespace=my-namespace
NAME     READY   STATUS    RESTARTS   AGE
my-pod   1/1     Running   0          11m

当选择“环境”标签进行搜索时(当选择否定时)。

$ kubectl get pods -l environment!=production --namespace=my-namespace
No resources found.

在环境标签中以外的方式进行搜索

$ kubectl get pods -l 'environment in (production)' --namespace=my-namespace
NAME     READY   STATUS    RESTARTS   AGE
my-pod   1/1     Running   0          12m

好像必须用单引号(’)指定…

bannerAds