21天转型容器实战营(五kubernetes pod调度原理分析)

Kubernetes中的资源分配

Kubernetes中的高级调度及用法

手动调度和DaemonSet

调度结果和失败原因分析

多调度器及调度器配置

 

 

[root@cce-21day-cluster-62954-81jwz ~]# cat pod.yaml 
apiVersion: v1 
kind: Pod 
metadata:
  name: cce21days-xsjzdrxsjzdr
  labels:
    app: nginx 
spec:
  affinity: 
    nodeAffinity:
      requiredDuringSchedulingIgnoredDuringExecution: 
        nodeSelectorTerms:
        - matchExpressions:
          - key: kubernetes.io/hostname
            operator: In
            values:
              - 192.168.98.57 #有EIP的node节点的私网IP地址
  containers:
  - image: 100.125.0.198:20202/f00355482/tanks:v1
    imagePullPolicy: IfNotPresent 
    name: container-0
    resources: {}
  dnsPolicy: ClusterFirst 
  imagePullSecrets:
  - name: default-secret
  restartPolicy: Always
  schedulerName: default-scheduler
  securityContext: {}

[root@cce-21day-cluster-62954-81jwz ~]# kubectl get pods -owide
NAME                     READY     STATUS    RESTARTS   AGE       IP            NODE
cce21days-xsjzdrxsjzdr   1/1       Running   0          15m       172.16.0.14   192.168.98.57
[root@cce-21day-cluster-62954-81jwz ~]# kubectl delete pods cce21days-xsjzdrxsjzdr
[root@cce-21day-cluster-62954-81jwz ~]# cat pod-2.yaml 
kind: Deployment
apiVersion: apps/v1
metadata:
  name: cce21days-app1-xsjzdrxsjzdr
  namespace: default
spec:
  replicas: 2
  selector:
   matchLabels:
     app: cce21days-app1-huaweicloud
  template:
    metadata:
      labels:
        app: cce21days-app1-huaweicloud
    spec:
      containers:
        - name: container-0
          image: '100.125.0.198:20202/f00355482/tanks:v1'
          imagePullPolicy: IfNotPresent
      restartPolicy: Always
      dnsPolicy: ClusterFirst
      imagePullSecrets:
        - name: default-secret
      affinity:
        podAntiAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
            - labelSelector:
                matchExpressions:
                  - key: app
                    operator: In
                    values:
                      - cce21days-app1-huaweicloud
              topologyKey: kubernetes.io/hostname
      schedulerName: default-scheduler 
[root@cce-21day-cluster-62954-81jwz ~]# kubectl create -f pod-2.yaml 
deployment "cce21days-app1-xsjzdrxsjzdr" created
[root@cce-21day-cluster-62954-81jwz ~]# kubectl get pods -owide
NAME                                          READY     STATUS    RESTARTS   AGE       IP            NODE
cce21days-app1-xsjzdrxsjzdr-6548fd657-c7sff   1/1       Running   0          9s        172.16.0.15   192.168.98.57
cce21days-app1-xsjzdrxsjzdr-6548fd657-k7mjh   1/1       Running   0          9s        172.16.0.43   192.168.162.50
[root@cce-21day-cluster-62954-81jwz ~]# 
[root@cce-21day-cluster-62954-81jwz ~]# cat pod-3.yaml 
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    appgroup: ''
  name: cce21days-app2-xsjzdrxsjzdr
  namespace: default
spec:
  replicas: 2
  selector:
    matchLabels:
      app: cce21days-app2-huaweicloud
  template:
    metadata:
      labels:
        app: cce21days-app2-huaweicloud
    spec:
      containers:
        - image: '100.125.0.198:20202/f00355482/tanks:v1'
          name: container-0
      imagePullSecrets:
        - name: default-secret
      affinity:
        podAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
            - labelSelector:
                matchExpressions:
                  - key: app
                    operator: In
                    values:
                      - cce21days-app1-huaweicloud
              topologyKey: kubernetes.io/hostname

[root@cce-21day-cluster-62954-81jwz ~]# kubectl create -f pod-3.yaml 
deployment "cce21days-app2-xsjzdrxsjzdr" created
[root@cce-21day-cluster-62954-81jwz ~]# kubectl get pods -owide
NAME                                          READY     STATUS    RESTARTS   AGE       IP            NODE
cce21days-app1-xsjzdrxsjzdr-6548fd657-c7sff   1/1       Running   0          1m        172.16.0.15   192.168.98.57
cce21days-app1-xsjzdrxsjzdr-6548fd657-k7mjh   1/1       Running   0          1m        172.16.0.43   192.168.162.50
cce21days-app2-xsjzdrxsjzdr-b8d788c6b-nvzfv   1/1       Running   0          4s        172.16.0.44   192.168.162.50
cce21days-app2-xsjzdrxsjzdr-b8d788c6b-tcz56   1/1       Running   0          4s        172.16.0.5    192.168.98.57

[root@cce-21day-cluster-62954-81jwz ~]# kubectl get deployment -owide
NAME                          DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE       CONTAINERS    IMAGES                                   SELECTOR
cce21days-app1-xsjzdrxsjzdr   2         2         2            2           3m        container-0   100.125.0.198:20202/f00355482/tanks:v1   app=cce21days-app1-huaweicloud
cce21days-app2-xsjzdrxsjzdr   2         2         2            2           1m        container-0   100.125.0.198:20202/f00355482/tanks:v1   app=cce21days-app2-huaweicloud
[root@cce-21day-cluster-62954-81jwz ~]# 
[root@cce-21day-cluster-62954-81jwz ~]# kubectl delete deployment cce21days-app1-xsjzdrxsjzdr cce21days-app2-xsjzdrxsjzdr
deployment "cce21days-app1-xsjzdrxsjzdr" deleted
deployment "cce21days-app2-xsjzdrxsjzdr" deleted
[root@cce-21day-cluster-62954-81jwz ~]# kubectl get deployment -owide
No resources found.
[root@cce-21day-cluster-62954-81jwz ~]# 

 

 

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Kubernetes中的Pod是最小的可部署单元,它可以包含一个或多个容器。Service是Pod的抽象,它为一组Pod提供一个统一的入口,以便其他应用程序可以访问这些Pod。下面是Pod容器的Service的基本原理和操作: 1. Pod容器的Service基本原理: - Pod容器的Service是Kubernetes中的两个概念,Pod是最小的可部署单元,容器是运行在Pod中的应用程序。 - Service是Pod的抽象,为一组Pod提供一个统一的入口,以便其他应用程序可以访问这些Pod。Service有一个虚拟IP地址和一个端口号,用于将请求路由到后端Pod。 - Service的基本原理是通过标签选择器来选择一组Pod,这些Pod可以通过Service的虚拟IP地址和端口号来访问。当请求到达Service时,它会将请求路由到后端Pod中的一个或多个容器。 2. Pod容器的Service基本操作: - 创建Pod:使用Kubernetes中的Pod对象创建一个或多个Pod。 - 添加标签:为Pod添加标签,这样Service可以使用标签选择器来选择Pod。 - 创建Service:使用Kubernetes中的Service对象创建一个Service,指定它的虚拟IP地址和端口号,并指定标签选择器来选择后端Pod。 - 测试Service:使用Service的虚拟IP地址和端口号测试Service是否正常工作。可以使用Kubernetes中的kubectl命令行工具来测试Service。 - 扩展Pod:可以使用Kubernetes中的ReplicaSet或Deployment对象来扩展Pod。当Pod扩展时,Service会自动将请求路由到新的Pod中。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值