当前位置: 首页 > news >正文

主体负责人和网站负责人不能是同一个人西安专业网站建设公司哪家好

主体负责人和网站负责人不能是同一个人,西安专业网站建设公司哪家好,辽宁省建设工程信息网造价师签章,外国人可以在中国做网站吗前言#xff1a;公司云原生k8s二开工程师发了一串通用性命令用来查询以下数值#xff0c;我想着能不能将这命令写成一个自动化脚本。 起初设计的 版本一#xff1a;开头加一条环境变量#xff0c;执行脚本后#xff0c;提示输入#xff1a;需要查询的命名空间#xff0c…前言公司云原生k8s二开工程师发了一串通用性命令用来查询以下数值我想着能不能将这命令写成一个自动化脚本。 起初设计的 版本一开头加一条环境变量执行脚本后提示输入需要查询的命名空间输出信息追加到以当前年月日时来命名自动生成的txt文件 版本二自动生成中文排头标题并生成csv文件这样就不用手动将txt转化成excl表了 版本三发现生成csv文件其中 副本数 和 容器镜像信息区分不开想着用在文本格式处理更有优势的python来写最终成功了。 需要注意的是我们这边k8s容器平台是二开版然后由于我目前试验的命名空间业务的特殊性标题里通用的 就绪探针 和 存活探针采集的参数为资源限制 CPU 和 资源限制 Memory的儿你使用时具体的参数需要根据你的当前deployments.apps配置参数来判定。 查询数值 namespaceName部署所在的命名空间 deploymentName部署的名称 replicas部署的副本数量 image容器的镜像 resourcesRequest容器请求的资源 resourcesLimits容器资源的限制 readinessProbe就绪探针的配置 livenessProbe存活探针的配置 skyworkingNamespace环境变量 SW_AGENT_NAMESPACE 的值 lopLogsApplog环境变量 lop_logs_applog 的值通用命令 kubectl get deployments.apps -n 需要查询的命名空间 -o jsonpath{range .items[*]} {\n\n} namespaceName{.metadata.namespace}{\t} deploymentName{.metadata.name} {\t} replicas{.spec.replicas} {range .spec.template.spec.containers[*]} image{.image} {\t} resourcesRequest{.resources.requests} {\t} resourcesLimits{.resources.limits} {\t} readinessProbe{.readinessProbe} {\t} livenessProbe{.livenessProbe} {\t}{end} skyworkingNamespace{.spec.template.spec.containers[0].env[?(.nameSW_AGENT_NAMESPACE)].*} {\t} lopLogsApplog{.spec.template.spec.containers[0].env[?(.namelop_logs_applog)].*} {end} {\n} 版本一shell脚本 #!/bin/bash# 设置环境变量 export ENV_VARIABLESomeValueread -p 请输入需要查询的命名空间 namespace# 获取日期和时间并格式化作为文件名 current_date$(date %Y%m%d%H) filename${current_date}.txt# 执行 kubectl 命令并将结果追加到文件中 kubectl get deployments.apps -n $namespace -o jsonpath{range.items[*]} {\n\n} namespaceName{.metadata.namespace}{\t} deploymentName{.metadata.name} {\t} replicas{.spec.replicas} {range.spec.template.spec.containers[*]} image{.image} {\t} resourcesRequest{.resources.requests} {\t} resourcesLimits{.resources.limits} {\t} readinessProbe{.readinessProbe} {\t} livenessProbe{.livenessProbe} {\t}{end} skyworkingNamespace{.spec.template.spec.containers[0].env[?(.nameSW_AGENT_NAMESPACE)].*} {\t} lopLogsApplog{.spec.template.spec.containers[0].env[?(.namelop_logs_applog)].*} {end} {\n} $filenameecho 输出已追加到 $filename 文件中。执行结果 版本二shell脚本 #!/bin/bashexport ENV_VARIABLESomeValueread -p 请输入需要查询的命名空间 namespacecurrent_date$(date %Y%m%d%H) filename${current_date}.csv# 使用以下命令生成 CSV 格式的输出并追加到文件中 kubectl get deployments.apps -n $namespace -o jsonpath{range.items[*]}{\n}$\t{.metadata.namespace}$\t{.metadata.name}$\t{.spec.replicas}$\t{range.spec.template.spec.containers[*]}{.image}{end}$\t{range.spec.template.spec.containers[*]}{.resources.requests}{end}$\t{range.spec.template.spec.containers[*]}{.resources.limits}{end}$\t{range.spec.template.spec.containers[*]}{.readinessProbe}{end}$\t{range.spec.template.spec.containers[*]}{.livenessProbe}{end}$\t{range.spec.template.spec.containers[*]}{.spec.template.spec.containers[0].env[?(.name\SW_AGENT_NAMESPACE\)].value}{end}$\t{range.spec.template.spec.containers[*]}{.spec.template.spec.containers[0].env[?(.name\lop_logs_applog\)].value}{end} $filenameecho 输出已追加到 $filename 文件中。执行结果 版本三 改了很多版这里就直接展示成功吧 通用版-py脚本 import subprocess import datetime# 获取用户输入的命名空间 namespace input(请输入当前需要查询的命名空间 )# 获取当前时间并生成文件名 timestamp datetime.datetime.now().strftime(%Y%m%d%H) output_file f{timestamp}.csv# 设置标题行 with open(output_file, w) as f:f.write(命名空间,名称,副本数,容器镜像,资源请求,资源限制,就绪探针,存活探针,环境变量\n)# 执行 kubectl 命令并处理结果 command fkubectl get deployments.apps -n {namespace} -o json.split() result subprocess.check_output(command).decode()import json data json.loads(result)def format_probe(probe):if not probe:return N/Aprobe_type details if httpGet in probe:probe_type HTTP GEThttp_get probe[httpGet]details f{probe_type}: Path: {http_get.get(path, N/A)}, Port: {http_get.get(port, N/A)}elif tcpSocket in probe:probe_type TCP Sockettcp_socket probe[tcpSocket]details f{probe_type}: Port: {tcp_socket.get(port, N/A)}elif exec in probe:probe_type Execexec_command probe[exec]details f{probe_type}: Command: { .join(exec_command)}elif cpu in probe and memory in probe:details fResource: CPU {probe[cpu]}, Memory {probe[memory]}else:return N/Areturn detailsdef format_resources(resources):if not resources:return N/Acpu resources.get(cpu, N/A)memory resources.get(memory, N/A)return fCPU: {cpu}, Memory: {memory}with open(output_file, a) as f:for item in data.get(items, []):namespace_name item[metadata][namespace]deployment_name item[metadata][name]replicas item[spec][replicas]images [container[image] for container in item[spec][template][spec][containers]]image images[0] if images else N/Arequest format_resources(item[spec][template][spec][containers][0][resources][requests])limit format_resources(item[spec][template][spec][containers][0][resources][limits])readiness_probe N/Aif item[spec][template][spec][containers] and 0 len(item[spec][template][spec][containers]) and readinessProbe in item[spec][template][spec][containers][0]:readiness_probe format_probe(item[spec][template][spec][containers][0][readinessProbe])liveness_probe N/Aif item[spec][template][spec][containers] and 0 len(item[spec][template][spec][containers]) and livenessProbe in item[spec][template][spec][containers][0]:liveness_probe format_probe(item[spec][template][spec][containers][0][livenessProbe])env_var N/Aif item[spec][template][spec][containers] and env in item[spec][template][spec][containers][0]:env_var next((env[value] for env in item[spec][template][spec][containers][0][env] if env[name] SW_AGENT_NAMESPACE), N/A)f.write(f{namespace_name},{deployment_name},{replicas},{image},{request},{limit},{readiness_probe},{liveness_probe},{env_var}\n)print(f查询结果已写入文件{output_file})定制版-py脚本 import subprocess import datetime# 获取用户输入的命名空间 namespace input(请输入当前需要查询的命名空间 )# 获取当前时间并生成文件名 timestamp datetime.datetime.now().strftime(%Y%m%d%H) output_file f{timestamp}.csv# 设置标题行 with open(output_file, w) as f:f.write(命名空间,名称,副本数,容器镜像,资源预留 CPU,资源预留 Memory,资源限制 CPU,资源限制 Memory,环境变量\n)# 执行 kubectl 命令并处理结果 command fkubectl get deployments.apps -n {namespace} -o json.split() result subprocess.check_output(command).decode()import json data json.loads(result)def format_probe(probe):if not probe:return N/Aprobe_type details if httpGet in probe:probe_type HTTP GEThttp_get probe[httpGet]details f{probe_type}: Path: {http_get.get(path, N/A)}, Port: {http_get.get(port, N/A)}elif tcpSocket in probe:probe_type TCP Sockettcp_socket probe[tcpSocket]details f{probe_type}: Port: {tcp_socket.get(port, N/A)}elif exec in probe:probe_type Execexec_command probe[exec]details f{probe_type}: Command: { .join(exec_command)}elif cpu in probe and memory in probe:details fResource: CPU {probe[cpu]}, Memory {probe[memory]}else:return N/Areturn detailsdef format_resources(resources):if not resources:return N/Acpu resources.get(cpu, N/A)memory resources.get(memory, N/A)return fCPU: {cpu}, Memory: {memory}with open(output_file, a) as f:for item in data.get(items, []):namespace_name item[metadata][namespace]deployment_name item[metadata][name]replicas item[spec][replicas]images [container[image] for container in item[spec][template][spec][containers]]image images[0] if images else N/Arequest format_resources(item[spec][template][spec][containers][0][resources][requests])limit format_resources(item[spec][template][spec][containers][0][resources][limits])readiness_probe N/Aif item[spec][template][spec][containers] and 0 len(item[spec][template][spec][containers]) and readinessProbe in item[spec][template][spec][containers][0]:readiness_probe format_probe(item[spec][template][spec][containers][0][readinessProbe])liveness_probe N/Aif item[spec][template][spec][containers] and 0 len(item[spec][template][spec][containers]) and livenessProbe in item[spec][template][spec][containers][0]:liveness_probe format_probe(item[spec][template][spec][containers][0][livenessProbe])env_var N/Aif item[spec][template][spec][containers] and env in item[spec][template][spec][containers][0]:env_var next((env[value] for env in item[spec][template][spec][containers][0][env] if env[name] SW_AGENT_NAMESPACE), N/A)# 按照新的标题格式写入数据parts_request request.split(, ) if request! N/A else [N/A, N/A]parts_limit limit.split(, ) if limit! N/A else [N/A, N/A]f.write(f{namespace_name},{deployment_name},{replicas},{image},{parts_request[0].replace(CPU: , )},{parts_request[1].replace(Memory: , )},{parts_limit[0].replace(CPU: , )},{parts_limit[1].replace(Memory: , )},{env_var}\n)print(f查询结果已写入文件{output_file})执行 执行结果 自动化脚本和输出结果递交上去后受到公司 高级系统架构师兼技术专家组云原生高级架构师、云原生k8s二开工程师以及其他同事和领导的点赞。
http://www.dnsts.com.cn/news/171239.html

相关文章:

  • 西安城乡建设网站wordpress调用discuz
  • 免费建设在线商城的网站网站外链建设的八大基本准则
  • 做网站买什么空间wordpress 修订
  • 网站做排名有用吗朝阳区网站建设公司
  • 北京 顺义 网站制作虚拟主机搭建网站源码
  • 布布网 wordpressseo网站的优化方案
  • 模板板网站快速开发平台 免费开源
  • 深圳app开发公司哪家比较好wordpress seo怎么做
  • 怎么做cc网站本网站维护升级
  • 嘉兴网站快速排名优化虚拟主机网站
  • 中山骏域网站建设专家网站建设合同用贴印花税吗
  • 大学网站建设专业伊春网络建站公司
  • 做网站时如何建立栅格大学生创新创业点子
  • 男人和女人做不可描述的事情的网站新手用jsp做网站
  • 网站开发的选题意义及背景连云港权威网站建设价格
  • 3733手游网站在哪里做的台州市建站公司
  • 温州专业手机网站制作哪家好长春专业网站建设推广
  • 网站开发工作总结论文wordpress微信服务号
  • 泉州制作网站开发羞差视频免费首入口网页
  • 西昌市住房与城乡建设厅网站wordpress导航栏字体
  • 网站改版对用户的影响青岛专业建设网站
  • 建立网站费用多少wordpress团购主题
  • 网站导航栏怎么设置郴州本地网站建设
  • 衡阳建设企业网站郑州做网站建设的公司
  • 杭州网站建设哪里好数字营销沙盘
  • 齐齐哈尔做网站个人主页怎么申请
  • 网站做代码图像显示不出来Optwordpress
  • 西安保障性住房建设投资中心网站怎么找精准客户资源
  • 网站未备案被禁用 怎么办烟台做外贸网站建设
  • 定制做网站开发宁夏银川做网站的公司