Kubernetes的pod控制器之DaemonSet
DaemonSet 顶级参数介绍
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | [root@master manifests] # kubectl explain ds KIND: DaemonSet VERSION: extensions / v1beta1 DESCRIPTION: DEPRECATED - This group version of DaemonSet is deprecated by apps / v1beta2 / DaemonSet. See the release notes for more information. DaemonSet represents the configuration of a daemon set . FIELDS: apiVersion <string> APIVersion defines the versioned schema of this representation of an object . Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https: / / git.k8s.io / community / contributors / devel / api - conventions.md #resources kind <string> Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https: / / git.k8s.io / community / contributors / devel / api - conventions.md #types-kinds metadata < Object > 元数据 Standard object 's metadata. More info: https: / / git.k8s.io / community / contributors / devel / sig - architecture / api - conventions.md #metadata spec < Object > 期望状态 The desired behavior of this daemon set . More info: https: / / git.k8s.io / community / contributors / devel / sig - architecture / api - conventions.md #spec-and-status status < Object > The current status of this daemon set . This data may be out of date by some window of time. Populated by the system. Read - only. More info: https: / / git.k8s.io / community / contributors / devel / sig - architecture / api - conventions.md #spec-and-status |
控制spec的参数
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | [root@master manifests] # kubectl explain ds.spec KIND: DaemonSet VERSION: extensions / v1beta1 RESOURCE: spec < Object > DESCRIPTION: The desired behavior of this daemon set . More info: https: / / git.k8s.io / community / contributors / devel / sig - architecture / api - conventions.md #spec-and-status DaemonSetSpec is the specification of a daemon set . FIELDS: minReadySeconds <integer> 启动后等待多久应用可以就绪 The minimum number of seconds for which a newly created DaemonSet pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready). revisionHistoryLimit <integer> 保留的历史版本 The number of old history to retain to allow rollback. This is a pointer to distinguish between explicit zero and not specified. Defaults to 10. selector < Object > A label query over pods that are managed by the daemon set . Must match in order to be controlled. If empty, defaulted to labels on Pod template. More info: https: / / kubernetes.io / docs / concepts / overview / working - with - objects / labels / #label-selectors template < Object > - required - An object that describes the pod that will be created. The DaemonSet will create exactly one copy of this pod on every node that matches the template's node selector ( or on every node if no node selector is specified). More info: https: / / kubernetes.io / docs / concepts / workloads / controllers / replicationcontroller #pod-template templateGeneration <integer> DEPRECATED. A sequence number representing a specific generation of the template. Populated by the system. It can be set only during the creation. updateStrategy < Object > 更新策略 An update strategy to replace existing DaemonSet pods with new pods. |
创建DaemonSet 控制器模板
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 | [root@master manifests] # cat ds-demo.yaml apiVersion: apps / v1 kind: Deployment metadata: name: redis namespace: default spec: replicas: 1 revisionHistoryLimit: 3 selector: matchLabels: app: redis strategy: rollingUpdate: maxSurge: 2 maxUnavailable: 0 type : RollingUpdate template: metadata: labels: app: redis spec: containers: - name: redis image: redis: 4.0 - alpine ports: - name: redis containerPort: 6379 - - - apiVersion: apps / v1 kind: DaemonSet metadata: 元数据 name: myapp - ds namespace: default spec: 控制器期望状态 revisionHistoryLimit: 5 保留历史版本的个数 selector: 定义标签选择器 matchLabels: 标签选择器 app: myapp - ds 选定的标签 cx: ds updateStrategy: 更新策略 rollingUpdate: maxUnavailable: 1 type : RollingUpdate template: pod 的定义 metadata: pod 元数据定义 labels: 定义标签 app: myapp - ds cx: ds name: myapp - ds pod的名字 namespace: default pod 名称空间 spec: pod 期望状态定义 containers: pod 里容器的定义 - name: filebea 容器名字 image: ikubernetes / filebeat: 5.6 . 5 - alpine 容器镜像的定义 env: 环境变量定义 - name: REDIS_HOST value: redis.default.svc.cluster.local - name: REDIS_LOG_LEVEL value: info |
运行pod
1 2 3 | [root@master manifests] # kubectl apply -f ds-demo.yaml deployment.apps / redis unchanged daemonset.apps / myapp - ds configured |
查看创建的pod
1 2 3 4 5 | [root@master manifests] # kubectl get pods NAME READY STATUS RESTARTS AGE myapp - ds - b5hsx 1 / 1 Running 0 50s myapp - ds - m7pss 1 / 1 Running 0 47s redis - 54f5db865 - hcdwd 1 / 1 Running 0 17m |
查看pod运行日志
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | [root@master manifests] # kubectl logs myapp-ds-m7pss 2019 / 08 / 11 16 : 12 : 21.734552 beat.go: 297 : INFO Home path: [ / usr / local / bin ] Config path: [ / usr / local / bin ] Data path: [ / usr / local / bin / data] Logs path: [ / usr / local / bin / logs] 2019 / 08 / 11 16 : 12 : 21.734604 beat.go: 192 : INFO Setup Beat: filebeat; Version: 5.6 . 5 2019 / 08 / 11 16 : 12 : 21.734771 metrics.go: 23 : INFO Metrics logging every 30s 2019 / 08 / 11 16 : 12 : 21.734940 redis.go: 140 : INFO Max Retries set to: 3 2019 / 08 / 11 16 : 12 : 21.734961 outputs.go: 108 : INFO Activated redis as output plugin. 2019 / 08 / 11 16 : 12 : 21.735038 publish.go: 300 : INFO Publisher name: myapp - ds - m7pss 2019 / 08 / 11 16 : 12 : 21.735169 async.go: 63 : INFO Flush Interval set to: 1s 2019 / 08 / 11 16 : 12 : 21.735178 async.go: 64 : INFO Max Bulk Size set to: 2048 2019 / 08 / 11 16 : 12 : 21.735332 modules.go: 95 : ERR Not loading modules. Module directory not found: / usr / local / bin / module 2019 / 08 / 11 16 : 12 : 21.735534 beat.go: 233 : INFO filebeat start running. 2019 / 08 / 11 16 : 12 : 21.735704 registrar.go: 68 : INFO No registry file found under: / var / log / containers / filebeat_registry. Creating a new registry file . 2019 / 08 / 11 16 : 12 : 21.736963 registrar.go: 106 : INFO Loading registrar data from / var / log / containers / filebeat_registry 2019 / 08 / 11 16 : 12 : 21.737003 registrar.go: 123 : INFO States Loaded from registrar: 0 2019 / 08 / 11 16 : 12 : 21.737028 crawler.go: 38 : INFO Loading Prospectors: 1 2019 / 08 / 11 16 : 12 : 21.737153 prospector_log.go: 65 : INFO Prospector with previous states loaded: 0 2019 / 08 / 11 16 : 12 : 21.737408 config.go: 95 : WARN DEPRECATED: document_type is deprecated. Use fields instead. 2019 / 08 / 11 16 : 12 : 21.737430 prospector.go: 124 : INFO Starting prospector of type : log; id : 11998382299604891537 2019 / 08 / 11 16 : 12 : 21.737438 crawler.go: 58 : INFO Loading and starting Prospectors completed. Enabled prospectors: 1 2019 / 08 / 11 16 : 12 : 21.737451 registrar.go: 236 : INFO Starting Registrar 2019 / 08 / 11 16 : 12 : 21.737470 sync.go: 41 : INFO Start sending events to output 2019 / 08 / 11 16 : 12 : 21.737498 spooler.go: 63 : INFO Starting spooler: spool_size: 2048 ; idle_timeout: 5s 2019 / 08 / 11 16 : 12 : 51.735339 metrics.go: 39 : INFO Non - zero metrics in the last 30s : registrar.writes = 1 2019 / 08 / 11 16 : 13 : 21.736172 metrics.go: 34 : INFO No non - zero metrics in the last 30s 2019 / 08 / 11 16 : 13 : 51.735741 metrics.go: 34 : INFO No non - zero metrics in the last 30s 2019 / 08 / 11 16 : 14 : 21.736297 metrics.go: 34 : INFO No non - zero metrics in the last 30s 2019 / 08 / 11 16 : 14 : 51.736150 metrics.go: 34 : INFO No non - zero metrics in the last 30s 2019 / 08 / 11 16 : 15 : 21.735939 metrics.go: 34 : INFO No non - zero metrics in the last 30s |
进入一个pod里面
1 2 | [root@master manifests] # kubectl exec -it myapp-ds-m7pss -- /bin/sh / # |
手动创建server
1 | [root@master manifests] # kubectl expose deploy redis --port=6379 |
查看创建的server
1 2 3 4 5 6 | [root@master manifests] # kubectl get svc NAME TYPE CLUSTER - IP EXTERNAL - IP PORT(S) AGE kubernetes ClusterIP 10.96 . 0.1 <none> 443 / TCP 17d myapp NodePort 10.103 . 191.244 <none> 80 : 31339 / TCP 17d nginx ClusterIP 10.108 . 177.175 <none> 80 / TCP 17d redis ClusterIP 10.104 . 114.16 <none> 6379 / TCP 8m41s |
草都可以从石头缝隙中长出来更可况你呢
分类:
k8s
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏