k8s编写cronjob

打印 上一主题 下一主题

主题 870|帖子 870|积分 2610

1. k8s编写cronjob的知识点:
通过sed对cronjob的yaml文件中的image 属性进行替换:
  1. sed s/old/new/g file
  2. 当 old和new 均为变量的时候,书写方式如下:
  3. sed -i  's#'''$old_image'''#'''$new_image'''#g' quota-cronjob.yaml
复制代码
 
2. cronjob对应的pod中执行ps -ef ,发现pod共享了宿主机的进程。此问题是因为参数设置: 
 
  1. 1 hostIPC: true   
  2. 2 hostNetwork: true
  3. 3 hostPID: true<br><br>相关解释:
复制代码
Privileged :不受限制的策略,提供最大可能范围的权限许可。此策略允许已知的特权提升。
hostPID:是否允许Pod共享宿主机的进程空间。
hostPath:是否允许使用宿主机文件系统目录。
hostNetwork:是否允许Pod使用宿主机网络的命名空间。
hostIPC:是否允许Pod共享宿主机的IPC命名空间


在部署cronjob 3天后,发现一个问题,当镜像拉取报错时,会积压很多的ImagePullBackOff的pod . 通过设置参数:activeDeadlineSeconds  的时长,保证pod数量为一个正常值。
 
  1. activeDeadlineSeconds  #表示 Pod 可以运行的最长时间,达到设置的该值后,Pod 会自动停止。
复制代码
 
3. cronjob的参数说明:
  1. preferredDuringSchedulingIgnoredDuringExecution:软策略 可以不再最好在
  2. requiredDuringSchedulingIgnoredDuringExecution:硬策略 必须在键值运算关系
  3. In:label 的值在某个列表中
  4. NotIn:label 的值不在某个列表中
  5. Gt:label 的值大于某个值
  6. Lt:label 的值小于某个值
  7. Exists:某个 label 存在
  8. DoesNotExist:某个 label 不存在
  9. equiredDuringSchedulingIgnoredDuringExecution
  10. 表示pod必须部署到满足条件的节点上,如果没有满足条件的节点,就不停重试。其中IgnoreDuringExecution表示pod部署之后运行的时候,如果节点标签发生了变化,不再满足pod指定的条件,pod也会继续运行。
  11. requiredDuringSchedulingRequiredDuringExecution
  12. 表示pod必须部署到满足条件的节点上,如果没有满足条件的节点,就不停重试。其中RequiredDuringExecution表示pod部署之后运行的时候,如果节点标签发生了变化,不再满足pod指定的条件,则重新选择符合要求的节点。
  13. preferredDuringSchedulingIgnoredDuringExecution
  14. 表示优先部署到满足条件的节点上,如果没有满足条件的节点,就忽略这些条件,按照正常逻辑部署。
  15. preferredDuringSchedulingRequiredDuringExecution
  16. 表示优先部署到满足条件的节点上,如果没有满足条件的节点,就忽略这些条件,按照正常逻辑部署。其中RequiredDuringExecution表示如果后面节点标签发生了变化,满足了条件,则重新调度到满足条件的节点。
复制代码
 
 
 

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

万万哇

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表