芜湖哪里做网站wordpress主页最新文章显示
芜湖哪里做网站,wordpress主页最新文章显示,凡科做的网站打不开,重庆简易注销在什么网站做1.1DaemonSet是什么
Deployment部署的副本Pod会分布在各个Node上#xff0c;每个Node都可能运行好几个副本。DaemonSet的不同之处在于#xff1a;每个Node上最多只能运行⼀个副本。DaemonSet的典型应用场景有#xff1a; #xff08;1#xff09;在集群的每个节点上运⾏存…1.1DaemonSet是什么
Deployment部署的副本Pod会分布在各个Node上每个Node都可能运行好几个副本。DaemonSet的不同之处在于每个Node上最多只能运行⼀个副本。DaemonSet的典型应用场景有 1在集群的每个节点上运⾏存储Daemon比如glusterd或ceph。 2在每个节点上运行日志收集Daemon比如flunentd或logstash。 3在每个节点上运行监控Daemon比如PrometheusNodeExporter或collectd。
其实Kubernetes自己就在用DaemonSet运行系统组件。执行如下命令如下所示。
kubectl get daemonset --namespacekube-system
kubectl get daemonset --namespacekube-flannel DaemonSet kube-flannel-ds和kube-proxy分别负责在每个节点上运⾏flannel和kube-proxy组件在通过查看Pod副本看看各个节点的分布情况
kubectl get pod --namespacekube-system -o wide1.2 DaemonSet的创建和运行
本小节以Prometheus Node Exporter为例演示用户如何运行自己的DaemonSet。Prometheus 是 流行的系统监控方案 Node Exporter 是Prometheus的agent以Daemon的形式运行在每个被监控节点 上。 vi node-exporter.yaml
apiVersion: apps/v1
kind: DaemonSet
metadata:name: node-exporter-daemonsetnamespace: agent
spec:selector:matchLabels:app: prometheustemplate:metadata:labels:app: prometheusspec:hostNetwork: truecontainers:- name: node-exporterimage: prom/node-exporterimagePullPolicy: IfNotPresentcommand:- /bin/node_exporter- --path.procfs- /host/proc- --path.sysfs- /host/sys- --collector.filesystem.ignored-mount-points- ^/(sys|proc|dev|host|etc)($|/)volumeMounts:- name: procmountPath: /host/proc- name: sysmountPath: /host/sys- name: rootmountPath: /rootfsvolumes:- name: prochostPath:path: /proc- name: syshostPath:path: /sys- name: roothostPath:path: /先创建个命名空间
kubectl create namespace agent通过kubectl创建资源
kubectl apply -f node-exporter.yaml然后通过kubectl查看Pod分布情况
2.1 Job
容器按照持续运行的时间可分为两类服务类容器和工作类容器。 服务类容器通常持续提供服务需要⼀直运行比如HTTPServer、Daemon等。工作类容器则是⼀次性任务比如批处理程序完成后容器就退出。 Kubernetes的Deployment、ReplicaSet和DaemonSet都用于管理服务类容器 对于工作类容器我们使用Job。先看⼀个简单的Job配置文件件myjob.yml。
vi myjob.yml
apiVersion: batch/v1
kind: Job
metadata:name: myjobnamespace: jobs
spec:template:metadata:labels:app: myjobspec:containers:- name: hello-jobimage: busyboximagePullPolicy: IfNotPresentcommand: [echo, hello k8s job!]restartPolicy: Neverkubectl apply -f myjob.yml通过查看Job运行情况可以知道其运行结束就结束了如下图所示变成了Completed状态。
kubectl get pod -n jobs还可以通过查看Log看看这个Job留下的足迹
kubectl logs myjob-krgdh -n jobs #查看日志
kubectl describe pods/myjob-krgdh --namespace jobs #查看job描述2.2 并行Job
如果希望能够同时并行运行多个Pod以提高Job的执行效率Job提供了一个贴心的配置parallesim。例如下面的配置我们将上面的小Job改为并行运行的Pod数量设置为3。 修改 myjob.yml
apiVersion: batch/v1
kind: Job
metadata:name: testjob
spec:parallelism: 3template:metadata:labels:app: testjobspec:containers:- name: hello-jobimage: busyboximagePullPolicy: IfNotPresentcommand: [echo, hello k8s job!]restartPolicy: Neverkubectl get pod -o wide -n default可以看出Job一共启动了3个Pod都是同时结束的可以看到三个Pod的AGE都是相同的。
2.3 定时Job
Linux中有cron程序定时执行任务Kubernetes的CronJob提供了类似的功能可以定时执行Job。 vi hello-cron-job.yml
apiVersion: batch/v1beta1
kind: CronJob
metadata:name: hello-cron-jobnamespace: jobs
spec:schedule: */1 * * * *jobTemplate:spec:template:spec:containers:- name: hello-cron-jobimage: busyboximagePullPolicy: IfNotPresentcommand: [echo, hello edisons k8s cron job!]restartPolicy: OnFailure上面加粗的配置是CronJob的独有配置需要注意的是schedule它的格式和Linux Cron一样这里的*/1 * * * *代表每一分钟启动执行一次。对于CronJob它需要的是jobTemplate来定义Job的模板。
kubectl get cronjob -n jobs查看job 可以看到在过去的三分钟里每一分钟都启动了一个Pod符合预期。
kubectl get jobs -n jobs
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/88275.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!