k8s--基础--12.4--pod--创建自主式pod

k8s–基础–12.4–pod–创建自主式pod


1、查看 部署一个pod时需要哪些字段

1.1、命令

kubectl explain pods 

k8s--基础--12.4--pod--创建自主式pod_第1张图片

1.2、字段说明

1.2.1、status

  1. 最近观察到的pod的状态。
  2. 此数据可能不是最新的。
  3. Status不需要在pod或者其他资源中定义,这个默认是存在的

1.2.2、apiVersion

定义了此对象表示的版本化模式。
服务器应将已识别的模式转换为最新的内部值,并可能拒绝无法识别的值。

1.2.2.1、查看k8s集群支持的apiVersion有哪些
[root@master1 ~]# kubectl api-versions
admissionregistration.k8s.io/v1
admissionregistration.k8s.io/v1beta1
apiextensions.k8s.io/v1
apiextensions.k8s.io/v1beta1
apiregistration.k8s.io/v1
apiregistration.k8s.io/v1beta1
apps/v1
authentication.k8s.io/v1
authentication.k8s.io/v1beta1
authorization.k8s.io/v1
authorization.k8s.io/v1beta1
autoscaling/v1
autoscaling/v2beta1
autoscaling/v2beta2
batch/v1
batch/v1beta1
certificates.k8s.io/v1beta1
coordination.k8s.io/v1
coordination.k8s.io/v1beta1
crd.projectcalico.org/v1
discovery.k8s.io/v1beta1
events.k8s.io/v1beta1
extensions/v1beta1
metrics.k8s.io/v1beta1
networking.k8s.io/v1
networking.k8s.io/v1beta1
node.k8s.io/v1beta1
policy/v1beta1
rbac.authorization.k8s.io/v1
rbac.authorization.k8s.io/v1beta1
scheduling.k8s.io/v1
scheduling.k8s.io/v1beta1
storage.k8s.io/v1
storage.k8s.io/v1beta1
v1

1.2.3、kind

此对象的资源类型,如deployment、statefulset、pod、service、ingress。

1.2.4、metadata

对象的元数据

1.2.5、spec

指定容器的所需行为

2、创建pod

  1. 通过定义资源清单yaml文件(就是以yaml结尾的文件)创建pod
  2. 在k8s的master节点操作

2.1、查看资源清单需要哪些字段

# 查看 pods 需要哪些字段
kubectl explain pods

# 查看 apiVersion 需要哪些字段
kubectl explain pods.apiVersion

# 查看 kind 需要哪些字段
kubectl explain pods.kind

# 查看 spec 需要哪些字段
kubectl explain pods.metadata

# 查看 spec 需要哪些字段
kubectl explain pods.spec

2.2、定义一个pod

vim /root/k8s/test/pod.yaml

内容

apiVersion: v1
kind: Pod
metadata:
  name: web
  namespace: default
  labels:
    web1: tomcat
spec:
  containers:
  - name: tomcat1
    image: tomcat:8.5-jre8-alpine
    imagePullPolicy: IfNotPresent

2.3、创建一个pod

kubectl apply -f /root/k8s/test/pod.yaml

在这里插入图片描述

3、pod操作

3.1、查看pod创建的情况

kubectl get pods

在这里插入图片描述

3.2、查看pod的详细信息

kubectl describe pods web

内容

[root@master1 test]# kubectl describe pods web
Name:         web
Namespace:    default
Priority:     0
Node:         node1/192.168.187.155
Start Time:   Sun, 10 Apr 2022 09:44:48 +0800
Labels:       web1=tomcat
Annotations:  cni.projectcalico.org/podIP: 10.244.1.41/32
Status:       Running
IP:           10.244.1.41
IPs:
  IP:  10.244.1.41
Containers:
  tomcat1:
    Container ID:   docker://a553044eeddcb7333a4f62a522dfeb1cd33878f80790d782df91e165490e4635
    Image:          tomcat:8.5-jre8-alpine
    Image ID:       docker-pullable://tomcat@sha256:04feaf74f8bb54b43ea136b150bbc7b58e8a3062aead67ab871f2dbbd5dac5d1
    Port:           
    Host Port:      
    State:          Running
      Started:      Sun, 10 Apr 2022 09:44:50 +0800
    Ready:          True
    Restart Count:  0
    Environment:    
    Mounts:
      /var/run/secrets/kubernetes.io/serviceaccount from default-token-8z75k (ro)
Conditions:
  Type              Status
  Initialized       True 
  Ready             True 
  ContainersReady   True 
  PodScheduled      True 
Volumes:
  default-token-8z75k:
    Type:        Secret (a volume populated by a Secret)
    SecretName:  default-token-8z75k
    Optional:    false
QoS Class:       BestEffort
Node-Selectors:  
Tolerations:     node.kubernetes.io/not-ready:NoExecute op=Exists for 300s
                 node.kubernetes.io/unreachable:NoExecute op=Exists for 300s
Events:
  Type    Reason     Age   From               Message
  ----    ------     ----  ----               -------
  Normal  Scheduled  48s   default-scheduler  Successfully assigned default/web to node1
  Normal  Pulled     47s   kubelet            Container image "tomcat:8.5-jre8-alpine" already present on machine
  Normal  Created    47s   kubelet            Created container tomcat1
  Normal  Started    47s   kubelet            Started container tomcat1
[root@master1 test]# 


3.3、删除pod.yaml定义的所有资源

kubectl delete -f/root/k8s/test/pod.yaml 

3.4、查看pod调度到哪个节点

kubectl get pods -o wide

在这里插入图片描述

3.5、查看pod日志

kubectl logs web

k8s--基础--12.4--pod--创建自主式pod_第2张图片

3.6、查看pod里指定容器的日志

kubectl logs -c tomcat1 web

k8s--基础--12.4--pod--创建自主式pod_第3张图片

3.7、进入到刚才创建的pod,刚才创建的pod名字是web

kubectl exec -it web -- /bin/bash

在这里插入图片描述

3.8、假如pod里有多个容器,进入到pod里的指定容器,按如下命令:

kubectl exec -it web  -c tomcat1 -- /bin/bash 

在这里插入图片描述

你可能感兴趣的:(k8s,kubernetes,docker,容器)