赞
踩
参考网站:kuberbetes官网
[root@server2 ~]# vim rs.yml apiVersion: apps/v1 kind: ReplicaSet metadata: name: replicaset-example spec: replicas: 3 selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: containers: - name: nginx image: myapp:v1
创建了3个rs控制器
Deployment 为 Pod 和 ReplicaSet 提供了一个申明式的定义方法。
典型的应用场景:
[root@server2 ~]# vim dm.yml apiVersion: apps/v1 kind: Deployment metadata: name: deployment-nginx spec: replicas: 3 selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: containers: - name: nginx image: myapp:v1
[root@server2 ~]# kubectl apply -f dm.yml
[root@server2 ~]# kubectl get pod
根据标签控制,始终要满足三个副本
kubectl get pod --show-labels
kubectl label pod deployment-6d4f5bf58f-mbswv app=myapp --overwrite
由原来的三个变成了四个,由于原来的标签被改变,为了满足三个副本,又重新创建了一个副本。其中myapp标签的不属于控制器控制的副本。
DaemonSet 确保全部(或者某些)节点上运行一个 Pod 的副本。当有节点加入集群时, 也会为他们新增一个 Pod 。当有节点从集群移除时,这些 Pod 也会被回收。删除 DaemonSet 将会删除它创建的所有 Pod。
DaemonSet 的典型用法:
一个简单的用法是在所有的节点上都启动一个 DaemonSet,将被作为每种类型的 daemon 使用。
一个稍微复杂的用法是单独对每种 daemon 类型使用多个 DaemonSet,但具有不同的标志, 并且对不同硬件类型具有不同的内存、CPU 要求。
手动拉取zabbix-agent镜像并上传到自己的私有仓库
[root@server1 harbor]# docker pull zabbix/zabbix-agent
[root@server1 harbor]# docker tag zabbix/zabbix-agent:latest reg.westos.org/library/zabbix-agent:latest
[root@server1 harbor]# docker push reg.westos.org/library/zabbix-agent:latest
[root@server2 ~]# vim daemonset.yml apiVersion: apps/v1 kind: DaemonSet metadata: name: daemonset-example labels: k8s-app: zabbix-agent spec: selector: matchLabels: name: zabbix-agent template: metadata: labels: name: zabbix-agent spec: containers: - name: zabbix-agent image: zabbix-agent
[root@server2 ~]# kubectl apply -f daemonset.yml
daemonset.apps/daemonset-example created
[root@server2 ~]# kubectl get pod -o wide
StatefulSet 是用来管理有状态应用的工作负载 API 对象。实例之间有不对等关系,以及实例对外部数据有依赖关系的应用,称为“有状态应用”
StatefulSet 用来管理 Deployment 和扩展一组 Pod,并且能为这些 Pod 提供序号和唯一性保证。
StatefulSets 对于需要满足以下一个或多个需求的应用程序很有价值:
执行批处理任务,仅执行一次任务,保证任务的一个或多个Pod成功结束。
手动拉取perl圆周率镜像,然后上传至本地仓库
[root@server1 harbor]# docker pull perl
[root@server1 harbor]# docker tag perl:latest reg.westos.org/library/perl:latest
[root@server1 harbor]# docker push reg.westos.org/library/perl:latest
编写yml文件
[root@server2 ~]# vim job.yml
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
执行
[root@server2 ~]# kubectl create -f job.yml
[root@server2 ~]# kubectl get pod
[root@server2 ~]# kubectl logs pi-fj6v5
Cron Job 创建基于时间调度的 Jobs。
一个 CronJob 对象就像 crontab (cron table) 文件中的一行,它用 Cron 格式进行编写,并周期性地在给定的调度时间执行 Job。
[root@server2 ~]# vim cronjob.yml apiVersion: batch/v1beta1 kind: CronJob metadata: name: hello spec: schedule: "*/1 * * * *" jobTemplate: spec: template: spec: containers: - name: hello image: busyboxplus imagePullPolicy: IfNotPresent args: - /bin/sh - -c - date; echo Hello from the Kubernetes cluster restartPolicy: OnFailure
根据资源利用率自动调整service中Pod数量,实现Pod水平自动缩放。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。