3 篇文章带有标签 “workload”

使用 Python 自动进行工作量估算

安装依赖库

pip install typer python-docx

编写脚本 workload-evaluation.py import os import logging import shutil import random import zipfile import openpyxl import typer from copy import copy from openpyxl.utils import rows_from_range # 日志设置 logger = logging.getLogger() logger.setLevel(logging.DEBUG) ## 文件输出 file_handler = logging.FileHandler("log.txt") file_handler.setLevel(logging.DEBUG) ## 控制台输出 stream_handler = logging.StreamHandler() stream_handler.setLevel(logging.DEBUG) formatter = logging.

Kubernetes中的Job和CronJob

Job

用于处理离线业务的,运行完成后就终止执行。

运行一个 Pod 对象

编写 Job 的 YAML 文件(job-pi.yaml)

bc 命令是 Linux 里的“计算器”;-l 表示使用标准数学库;a(1) 是调用数学库中的 arctangent 函数,计算 atan(1)。

tan(π/4) = 1。所以,4*atan(1)正好就是π,也就是 3.1415926…。

apiVersion: batch/v1
kind: Job
metadata:
  name: pi
spec:
  template:
    spec:
      restartPolicy: Never
      containers:
      - name: pi
        image: alpine
        command: ["sh", "-c", "echo 'scale=6000; 4*a(1)' | bc -l"]
  • restartPolicy: Pod 内所有容器的重启策略。对于 Job 重启策略只能是 OnFailure 和 Never,默认是 Always。
    • OnFailure
    • Never
    • Always(default)

创建 Job 对象

$ kubectl apply -f job-pi.yaml 
job.batch/pi created

Kubernetes中的名字空间

名字空间

名字空间将对象分割成独立的组,为对象名字提供了作用域,名字在不同的名字空间可以是相同的。名字空间对正在运行的对象不提供任何隔离,名字空间之间是否提供网络隔离取决于 Kubernetes 所使用的网络解决方案。

查看当前集群中的所有名字空间

$ kubectl get namespaces 
NAME                   STATUS   AGE
default                Active   379d
kube-node-lease        Active   379d
kube-public            Active   379d
kube-system            Active   379d
kubernetes-dashboard   Active   377d

创建名字空间

  • 使用命令
$ kubectl create namespace kubia
namespace/kubia created
  • 编写 YAML 文件(kubia-namespace.yaml)
apiVersion: v1
kind: Namespace
metadata:
  name: kubia
$ kubectl apply -f kubia-namespace.yaml 
namespace/kubia created

查看新创建的名字空间,ns 是 namespace 的缩写。

$ kubectl get ns kubia
NAME    STATUS   AGE
kubia   Active   35s