实战入门-POD(实战学什么)

pod是k8s中最小的管理单元,程序在容器中,容器在pod中
k8s通过管理pod来管理容器,通过管理容器进而管理程序
pod可以说是容器的封装,一个pod中可以存在一个或多个容器

[[email protected] ~]$ kubectl get pods -n kube-system
NAME                               READY   STATUS    RESTARTS      AGE
coredns-64897985d-bnkbc            1/1     Running   0             45s
etcd-minikube                      1/1     Running   1             57s
kube-apiserver-minikube            1/1     Running   2             57s
kube-controller-manager-minikube   1/1     Running   1             58s
kube-proxy-tgbx2                   1/1     Running   0             45s
kube-scheduler-minikube            1/1     Running   1             57s
storage-provisioner                1/1     Running   2 (40s ago)   54s


APIservice 所有服务的访问统一入口
crontrollerManager:维持副本期望数目
Scheduler:负责介绍任务,选择合适的节点进行分配任务
ETCD:键值对数据库 存储K8s集群所有重要信息持久化,负责存储集群中各种资源对象的信息
Kubelet:直接跟容器引擎交互实现容器的生命周期管理
Kube-proxy:负责写入规则至IPTABLES,IPVS实现服务映射访问
docker:节点上的容器操作

[[email protected] ~]$ kubectl create ns dev
namespace/dev created

《创建命名空间》
[[email protected] ~]$ kubectl get ns
NAME              STATUS   AGE
default           Active   7m54s
dev               Active   10s
kube-node-lease   Active   7m55s
kube-public       Active   7m55s
kube-system       Active   7m55s
《看一下》
[[email protected] ~]$  kubectl  run nginxss --image=nginx:1.17.1 --port=80 -n dev
pod/nginxss created
[[email protected] ~]$ kubectl get pod -n dev
NAME      READY   STATUS    RESTARTS   AGE
nginxss   1/1     Running   0          18s
[[email protected] ~]$ kubectl get pod -n dev -o wide
NAME      READY   STATUS    RESTARTS   AGE   IP           NODE       NOMINATED NODE   READINESS GATES
nginxss   1/1     Running   0          43s   172.17.0.3   minikube   <none>           <none>

[[email protected] ~]$ kubectl describe pod nginxss -n dev
《查看详细的pod信息》
Name:         nginxss
Namespace:    dev
Priority:     0
Node:         minikube/192.168.49.2
Start Time:   Sat, 19 Feb 2022 18:29:18 +0800
Labels:       run=nginxss
Annotations:  <none>
Status:       Running
IP:           172.17.0.3
IPs:
  IP:  172.17.0.3
Containers:
  nginxss:
    Container ID:   docker://386271d32e3a74ac5837c671d177cd2f28ff6ecf5b62c52bee0fbae3b34ae0e1
    Image:          nginx:1.17.1
    Image ID:       docker-pullable://[email protected]:b4b9b3eee194703fc2fa8afa5b7510c77ae70cfba567af1376a573a967c03dbb
    Port:           80/TCP
    Host Port:      0/TCP
    State:          Running
      Started:      Sat, 19 Feb 2022 18:29:19 +0800
    Ready:          True
    Restart Count:  0
    Environment:    <none>
    Mounts:
      /var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-7hqgp (ro)
Conditions:
  Type              Status
  Initialized       True
  Ready             True
  ContainersReady   True
  PodScheduled      True
Volumes:
  kube-api-access-7hqgp:
    Type:                    Projected (a volume that contains injected data from multiple sources)
    TokenExpirationSeconds:  3607
    ConfigMapName:           kube-root-ca.crt
    ConfigMapOptional:       <nil>
    DownwardAPI:             true
QoS Class:                   BestEffort
Node-Selectors:              <none>
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  2m50s  default-scheduler  Successfully assigned dev/nginxss to minikube
  Normal  Pulled     2m49s  kubelet            Container image "nginx:1.17.1" already present on machine
  Normal  Created    2m49s  kubelet            Created container nginxss
  Normal  Started    2m49s  kubelet            Started container nginxss

[[email protected] ~]$ kubectl delete  pod nginxss  -n dev
pod "nginxss" deleted
《用delete干掉》
[[email protected] ~]$ kubectl delete ns dev
namespace "dev" deleted


[[email protected] ~]$ kubectl get pod -A
NAMESPACE     NAME                               READY   STATUS    RESTARTS      AGE
kube-system   coredns-64897985d-bnkbc            1/1     Running   0             25m
kube-system   etcd-minikube                      1/1     Running   1             25m
kube-system   kube-apiserver-minikube            1/1     Running   2             25m
kube-system   kube-controller-manager-minikube   1/1     Running   1             25m
kube-system   kube-proxy-tgbx2                   1/1     Running   0             25m
kube-system   kube-scheduler-minikube            1/1     Running   1             25m
kube-system   storage-provisioner                1/1     Running   2 (25m ago)   25m

命令式对象配置,使用yaml创建pod,上面的是pod的下面的是命名空间的

apiVersion: v1
kind: Pod
metadata:
  name: nginx
  namespace: dev
spec:
  containers:
  - image: nginx:latest
    name: pod
    ports:
    - name: nginx-port
      containerPort: 80
      protocol: TCP
apiVersion: v1
kind: Namespace
metadata:
  name: dev
命令式对象配置的创建和删除
[[email protected] ~]$ ll
总用量 12
-rw-rw-r--. 1 qq qq  43 2月  11 20:02 2022-02-11
-rw-rw-r--. 1 qq qq  54 2月  14 18:57 devns.yaml
-rw-rw-r--  1 qq qq 202 2月  19 18:58 nginx.yaml
[[email protected] ~]$ kubectl create -f devns.yaml
namespace/dev created
[[email protected] ~]$ kubectl create -f nginx.yaml
pod/nginx created

[[email protected] ~]$ kubectl delete -f nginx.yaml
pod "nginx" deleted
[[email protected] ~]$ kubectl delete -f devns.yaml
namespace "dev" deleted
[[email protected] ~]$

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注