pod json关键字解析

{'api_version': 'v1',
 'items': [
 
            {'api_version': None,
            'kind': None,
            'metadata': {'annotations': None,
                         'cluster_name': None,
                         'creation_timestamp': datetime.datetime(2020, 9, 10, 5, 9, tzinfo=tzutc()),
                         'deletion_grace_period_seconds': None,
                         'deletion_timestamp': None,
                         'finalizers': None,
                         'generate_name': 'test-devops-itmp-ks-yunweibaobiaopingtai-54fd4b46b6-',
                            # pod 名字公共部分信息
                         'generation': None,
                         'initializers': None,
                         'labels': {'app': 'test-devops-itmp-ks-yunweibaobiaopingtai',
                                    'pod-template-hash': '54fd4b46b6'}, 
                         'managed_fields': None,
                         'name': 'test-devops-itmp-ks-yunweibaobiaopingtai-54fd4b46b6-jf4ll',  #pod 名字
                         'namespace': 'test', #名称空间
                         'owner_references': [{'api_version': 'apps/v1',
                                               'block_owner_deletion': True,
                                               'controller': True,
                                               'kind': 'ReplicaSet',
                                               'name': 'test-devops-itmp-ks-yunweibaobiaopingtai-54fd4b46b6',  #所属副本集
                                               'uid': '8984285f-a2cf-4032-a54b-134bdd01ad62'}],
                         'resource_version': '28829876',
                         'self_link': '/api/v1/namespaces/test/pods/test-devops-itmp-ks-yunweibaobiaopingtai-54fd4b46b6-jf4ll',
                         'uid': 'cb208f6f-6cae-4bf0-ab50-d13b239e944e'},
            'spec': {'active_deadline_seconds': None,
                     'affinity': None,
                     'automount_service_account_token': None,
                     'containers': [{'args': None,
                                     'command': None,
                                     'env': None,
                                     'env_from': None,
                                     'image': '10.10.87.56:445/devops_itmp_k8s/devops_itmp_k8s:V1.8469.1',
                                     'image_pull_policy': 'IfNotPresent',
                                     'lifecycle': None,
                                     # 存活探针
                                     'liveness_probe': {'_exec': None,
                                                        'failure_threshold': 10, # Pod成功启动且检查失败时,Kubernetes将在放弃之前尝试failureThreshold次。放弃生存检查意味着重新启动Pod。而放弃就绪检查,Pod将被标记为未就绪。默认为3.最小值为1。
                                                        # http_get HTTP探针
                                                        'http_get': {'host': None,    # host主机名,默认为pod的IP
                                                                     'http_headers': None,    # http_headers在HTTP请求中设置的自定义标头。 HTTP允许重复的请求头。
                                                                     'path': '/',      # path探针的路径。
                                                                     'port': 8021,     # port端口的名称或编号。数字必须在1到65535的范围内。
                                                                     'scheme': 'HTTP'},  # scheme用于连接主机的方案(HTTP或HTTPS)。默认为HTTP。
                                                        'initial_delay_seconds': 30,  # initial_delay_seconds容器启动和探针启动之间的秒数。
                                                        'period_seconds': 30,         # period_seconds检查的频率(以秒为单位)。默认为10秒。最小值为1。
                                                        'success_threshold': 1,       # success_threshold失败后检查成功的最小连续成功次数。默认为1.活跃度必须为1。最小值为1。
                                                        'tcp_socket': None,
                                                        'timeout_seconds': 1},        # timeout_seconds检查超时的秒数。默认为1秒。最小值为1
                                     'name': 'main',
                                     'ports': None,
                                     # 就绪探针
                                     'readiness_probe': {'_exec': None,
                                                         'failure_threshold': 10,
                                                         'http_get': {'host': None,
                                                                      'http_headers': None,
                                                                      'path': 'http://127.0.0.1:8021',
                                                                      'port': 8021,
                                                                      'scheme': 'HTTP'},
                                                         'initial_delay_seconds': 30,
                                                         'period_seconds': 30,
                                                         'success_threshold': 1,
                                                         'tcp_socket': None,
                                                         'timeout_seconds': 1},
                                      # 资源限制  结合下面 qos_class
                                     'resources': {'limits': {'cpu': '0',
                                                              'memory': '107374182400m'},
                                                   'requests': {'cpu': '0',
                                                                'memory': '107374182400m'}},
                                     # 资源对象之一
                                     'security_context': None,
                                     'stdin': None,
                                     'stdin_once': None,
                                      # 日志存放目录,映射到节点的/var/lib/docker/logs 数据盘,应用日志目录设置到/home/{user_name}/logs 下
                                     'termination_message_path': '/dev/termination-log',
                                     'termination_message_policy': 'File',
                                     'tty': None,
                                     'volume_devices': None,
                                     'volume_mounts': [{'mount_path': '/opt/ITMP/settings.py',
                                                        'mount_propagation': None,
                                                        'name': 'volum300',
                                                        'read_only': None,
                                                        'sub_path': 'settings.py',
                                                        'sub_path_expr': None},
                                                       {'mount_path': '/var/run/secrets/kubernetes.io/serviceaccount',
                                                        'mount_propagation': None,
                                                        'name': 'default-token-2jd5v',
                                                        'read_only': True,
                                                        'sub_path': None,
                                                        'sub_path_expr': None}],
                                     'working_dir': None}],
                     'dns_config': None,
                     'dns_policy': 'ClusterFirst',
                     'enable_service_links': True,
                     'host_aliases': None,
                     'host_ipc': None,
                     'host_network': None,
                     'host_pid': None,
                     'hostname': None,
                     'image_pull_secrets': None,
                     'init_containers': None,
                     'node_name': '10.10.87.71',
                     'node_selector': None,
                     'preemption_policy': None,
                     'priority': None,
                     'priority_class_name': None,
                     'readiness_gates': None,
                     'restart_policy': 'Always',
                     'runtime_class_name': None,
                     'scheduler_name': 'default-scheduler',
                     'security_context': {'fs_group': None,
                                          'run_as_group': None,
                                          'run_as_non_root': None,
                                          'run_as_user': None,
                                          'se_linux_options': None,
                                          'supplemental_groups': None,
                                          'sysctls': None,
                                          'windows_options': None},
                     'service_account': 'default',
                     'service_account_name': 'default',
                     'share_process_namespace': None,
                     'subdomain': None,
                     'termination_grace_period_seconds': 30,
                     'tolerations': None,
                     'volumes': [{'aws_elastic_block_store': None,
                                  'azure_disk': None,
                                  'azure_file': None,
                                  'cephfs': None,
                                  'cinder': None,
                                  'config_map': {'default_mode': 420,
                                                 'items': [{'key': 'setting',
                                                            'mode': None,
                                                            'path': 'settings.py'}],
                                                 'name': 'test-devops-itmp-ks-yunweibaobiaopingtai-configmap',
                                                 'optional': None},
                                  'csi': None,
                                  'downward_api': None,
                                  'empty_dir': None,
                                  'fc': None,
                                  'flex_volume': None,
                                  'flocker': None,
                                  'gce_persistent_disk': None,
                                  'git_repo': None,
                                  'glusterfs': None,
                                  'host_path': None,
                                  'iscsi': None,
                                  'name': 'volum300',
                                  'nfs': None,
                                  'persistent_volume_claim': None,
                                  'photon_persistent_disk': None,
                                  'portworx_volume': None,
                                  'projected': None,
                                  'quobyte': None,
                                  'rbd': None,
                                  'scale_io': None,
                                  'secret': None,
                                  'storageos': None,
                                  'vsphere_volume': None},
                                 {'aws_elastic_block_store': None,
                                  'azure_disk': None,
                                  'azure_file': None,
                                  'cephfs': None,
                                  'cinder': None,
                                  'config_map': None,
                                  'csi': None,
                                  'downward_api': None,
                                  'empty_dir': None,
                                  'fc': None,
                                  'flex_volume': None,
                                  'flocker': None,
                                  'gce_persistent_disk': None,
                                  'git_repo': None,
                                  'glusterfs': None,
                                  'host_path': None,
                                  'iscsi': None,
                                  'name': 'default-token-2jd5v',
                                  'nfs': None,
                                  'persistent_volume_claim': None,
                                  'photon_persistent_disk': None,
                                  'portworx_volume': None,
                                  'projected': None,
                                  'quobyte': None,
                                  'rbd': None,
                                  'scale_io': None,
                                  'secret': {'default_mode': 420,
                                             'items': None,
                                             'optional': None,
                                             'secret_name': 'default-token-2jd5v'},
                                  'storageos': None,
                                  'vsphere_volume': None}]},
            'status': {'conditions': [{'last_probe_time': None,
                                       'last_transition_time': datetime.datetime(2020, 9, 10, 5, 9, tzinfo=tzutc()),
                                       'message': None,
                                       'reason': None,
                                       'status': 'True',
                                       'type': 'Initialized'},
                                      {'last_probe_time': None,
                                       'last_transition_time': datetime.datetime(2020, 9, 10, 5, 9, 59, tzinfo=tzutc()),
                                       'message': None,
                                       'reason': None,
                                       'status': 'True',
                                       'type': 'Ready'},
                                      {'last_probe_time': None,
                                       'last_transition_time': datetime.datetime(2020, 9, 10, 5, 9, 59, tzinfo=tzutc()),
                                       'message': None,
                                       'reason': None,
                                       'status': 'True',
                                       'type': 'ContainersReady'},
                                      {'last_probe_time': None,
                                       'last_transition_time': datetime.datetime(2020, 9, 10, 5, 9, tzinfo=tzutc()),
                                       'message': None,
                                       'reason': None,
                                       'status': 'True',
                                       'type': 'PodScheduled'}],
                        # 容器组中个容器的状态           
                       'container_statuses': [{'container_id': 'docker://b4c15bde156eb00548fd01e47779d46223717d37330a0f15deb6013e701a5ed5',
                                               'image': '10.10.87.56:445/devops_itmp_k8s/devops_itmp_k8s:V1.8469.1',  #镜像地址
                                               'image_id': 'docker-pullable://10.10.87.56:445/devops_itmp_k8s/devops_itmp_k8s@sha256:c2dfd6bac830fb507e77a14bebe8f7050b78bd1a6b62191f35e0e22f887a4592',
                                               'last_state': {'running': None,
                                                              'terminated': None,
                                                              'waiting': None},
                                               'name': 'main',
                                               'ready': True,     
                                                    #pod中某个容器的状态
                                               'restart_count': 0,   
                                                    #容器重启数
                                               # 实时状态
                                               'state': {'running': {'started_at': datetime.datetime(2020, 9, 10, 5, 9, 2, tzinfo=tzutc())},
                                                         'terminated': None,
                                                         'waiting': None}}],
                            
                       'host_ip': '10.10.87.71',   
                            # 节点ip
                       'init_container_statuses': None,
                       'message': None,
                       'nominated_node_name': None,
                            # 制定的节点名字
                       'phase': 'Running',
                            # pod状态
                            # Pending  系统已经接收了创建了pod的请求,但是其中有部分容器未创建。这包括容器调度、镜像下载等需要花费一段时间。
                            # Running   pod已经被绑定在某个node上了,所有的容器都已经被创建,至少有一个容器任然在运行、启动、重启状态。
                            # Succeeded  pod上的所有容器都已经被成功停止,并且不会再被重启。
                            # Failed    所有容器都终止运行,至少有一个容器停止失败(非正常状态推出或者被系统终止运行)
                            # Unknown  由于某些原因,pod的运行阶段无法获取,通常是因为与pod所在主机发生通信故障(无法连接)。
                       'pod_ip': '172.17.3.15',  
                            # podip
                       'qos_class': 'Burstable', 
                            # qos_class服务质量等级(也就划分的优先级) 
                            # Guranteed(required=limit 或者是有 limit  )>Burstable(其他类型都是burstale)>best-effort (没有limit和ruquest) ,
                            # cpu是可压缩的,超出了limilt pod不会被kill,但是cpu会减速;内存是不可压缩的,超出limit,pod很可能会被kill(触发oom killer时,遍历系统上所有进程打分的情况)
                            # Best-Effort pods 优先级最低。如果系统内存耗尽,该类型的pods中的进程最先被kill。这些容器可以使用系统上任意量的空闲内存。
                            # Guaranteed pods 优先级最高。它们能够确保不达到容器设置的limit上限一定不会被kill。只有在系统存在内存压力且没有更低优先级容器时才被驱逐。
                            # Burstable pods 有一些形式的最小资源保证,但当需要时可以使用更多资源。在系统存在内存瓶颈时,一旦内存超过他们的request值并且没有Best-Effort 类型的容器存在,这些容器就先被kill掉。
                       'reason': None,
                            # 异常原因 
                       'start_time': datetime.datetime(2020, 9, 10, 5, 9, tzinfo=tzutc())}},
            }
                       
                       ],
 
 
 'kind': 'PodList',
 'metadata': {'_continue': None,
              'remaining_item_count': None,
              'resource_version': '30518363',
              'self_link': '/api/v1/namespaces/test/pods'}}

Process finished with exit code 0
原文地址:https://www.cnblogs.com/Hale-wang/p/13725423.html