kubernetes之控制器

kubernetes

一、控制器

  1. pod的类型和控制器类型
    在这里插入图片描述
  2. replication controller 和reolicaset的区别、deployment
    在这里插入图片描述
  3. daemonSet
    在这里插入图片描述
  4. stateset
    在这里插入图片描述
  5. job、cronjob、hpa
    在这里插入图片描述
  6. reolicaset实例
[kubeadm@server2 manifest]$ cat rs.yaml 
apiVersion: apps/v1
kind: ReplicaSet
metadata:
  name: replicaset-example
spec:
  replicas: 2
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx

[kubeadm@server2 manifest]$ kubectl apply -f rs.yaml 
replicaset.apps/replicaset-example created

[kubeadm@server2 manifest]$ kubectl get pod
NAME                       READY   STATUS              RESTARTS   AGE
replicaset-example-brdhn   0/1     ContainerCreating   0          7s
replicaset-example-n4lnd   0/1     ContainerCreating   0          7s

[kubeadm@server2 manifest]$ kubectl get rs
NAME                 DESIRED   CURRENT   READY   AGE
replicaset-example   2         2         2       57s

[kubeadm@server2 manifest]$ kubectl get pod --show-labels 
NAME                       READY   STATUS    RESTARTS   AGE     LABELS
replicaset-example-brdhn   1/1     Running   0          3m47s   app=nginx
replicaset-example-n4lnd   1/1     Running   0          3m47s   app=nginx

rs控制pod的副本

[kubeadm@server2 manifest]$ kubectl label pod replicaset-example-brdhn app=myapp --overwrite 
pod/replicaset-example-brdhn labeled

[kubeadm@server2 manifest]$ kubectl get pod --show-labels 
NAME                       READY   STATUS    RESTARTS   AGE     LABELS
replicaset-example-brdhn   1/1     Running   0          6m18s   app=myapp
replicaset-example-dtb4j   1/1     Running   0          5s      app=nginx
replicaset-example-n4lnd   1/1     Running   0          6m18s   app=nginx

[kubeadm@server2 manifest]$ kubectl delete pod replicaset-example-brdhn 
pod "replicaset-example-brdhn" deleted

[kubeadm@server2 manifest]$ kubectl get pod --show-labels 
NAME                       READY   STATUS    RESTARTS   AGE     LABELS
replicaset-example-dtb4j   1/1     Running   0          2m38s   app=nginx
replicaset-example-n4lnd   1/1     Running   0          8m51s   app=nginx
  1. deployment实例
    删除上面的rs实验
[kubeadm@server2 manifest]$ kubectl delete -f rs.yaml

[kubeadm@server2 manifest]$ kubectl get pod
No resources found in default namespace.

[kubeadm@server2 manifest]$ cat deployment.yaml 
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
  labels:
    app: nginx
spec:
  replicas: 2
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: myapp:v1
        ports:
        - containerPort: 80

[kubeadm@server2 manifest]$ kubectl get all
NAME                                    READY   STATUS    RESTARTS   AGE
pod/nginx-deployment-5c58fb7c46-2cpjt   1/1     Running   0          72s
pod/nginx-deployment-5c58fb7c46-tj75w   1/1     Running   0          72s

NAME                 TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)   AGE
service/kubernetes   ClusterIP   10.96.0.1    <none>        443/TCP   36h

NAME                               READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/nginx-deployment   2/2     2            2           74s

NAME                                          DESIRED   CURRENT   READY   AGE
replicaset.apps/nginx-deployment-5c58fb7c46   2         2         2       73s

deployment的工作机制
在这里插入图片描述

  1. daemonset实例
[kubeadm@server2 manifest]$ cat daemonset.yaml 
apiVersion: apps/v1
kind: DaemonSet
metadata:
  name: daemonset-example
  labels:
    app: zabbix-agent
spec:
  selector:
    matchLabels:
      app: zabbix-agent
  template:
    metadata:
      labels:
        app: zabbix-agent
    spec:
      containers:
      - name: zabbix-agent
        image: zabbix-agent


[kubeadm@server2 manifest]$ kubectl apply -f daemonset.yaml 
daemonset.apps/daemonset-example created

[kubeadm@server2 manifest]$ kubectl get all
NAME                          READY   STATUS              RESTARTS   AGE
pod/daemonset-example-7q9g7   0/1     ContainerCreating   0          6s
pod/daemonset-example-t9pg8   0/1     ContainerCreating   0          5s

NAME                 TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)   AGE
service/kubernetes   ClusterIP   10.96.0.1    <none>        443/TCP   37h

NAME                               DESIRED   CURRENT   READY   UP-TO-DATE   AVAILABLE   NODE SELECTOR   AGE
daemonset.apps/daemonset-example   2         2         0       2            0           <none>          6s

每个节点只跑一个pod

[kubeadm@server2 manifest]$ kubectl get pod -o wide
NAME                      READY   STATUS    RESTARTS   AGE    IP            NODE      NOMINATED NODE   READINESS GATES
daemonset-example-7q9g7   1/1     Running   0          116s   10.244.1.19   server3   <none>           <none>
daemonset-example-t9pg8   1/1     Running   0          115s   10.244.2.15   server4   <none>           <none>
  1. job实例
[kubeadm@server2 manifest]$ cat job.yaml 
apiVersion: batch/v1
kind: Job
metadata:
  name: pi
spec:
  template:
    spec:
      containers:
      - name: pi
        image: perl
        command: ["perl",  "-Mbignum=bpi", "-wle", "print bpi(2000)"]
      restartPolicy: Never
  backoffLimit: 4

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  1. cronjob实例
[kubeadm@server2 manifest]$ cat cronjob.yaml 
apiVersion: batch/v1beta1
kind: CronJob
metadata:
  name: cronjob-example
spec:
  schedule: "* * * * *"
  jobTemplate:
    spec:
      template:
        spec:
          containers:
          - name: cronjob
            image: busybox
            args:
            - /bin/sh
            - -c
            - date;echo Hello from k8s cluster
          restartPolicy: OnFailure

[kubeadm@server2 manifest]$ kubectl get pod -w
NAME                               READY   STATUS    RESTARTS   AGE
cronjob-example-1587266520-gff9b   0/1     Pending   0          0s
cronjob-example-1587266520-gff9b   0/1     Pending   0          1s
cronjob-example-1587266520-gff9b   0/1     ContainerCreating   0          1s
cronjob-example-1587266520-gff9b   0/1     Completed           0          7s
^C

[kubeadm@server2 manifest]$ kubectl get pod
NAME                               READY   STATUS      RESTARTS   AGE
cronjob-example-1587266520-gff9b   0/1     Completed   0          19s

[kubeadm@server2 manifest]$ kubectl logs cronjob-example-1587266520-gff9b 
Sun Apr 19 03:22:10 UTC 2020
Hello from k8s cluster
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值