kubernetes资源对象介绍及常用命令(一)-namespace,Pod

命名空间

在kubernetes中,命名空间被用来隔离资源。比如配置字典,内部路由等,每个命名空间只能使用其下的。

  1. 查看命名空间
kubectl get ns

ns是namespace的缩写。

  1. 创建命名空间

创建一个hello的命名空间。

  • 命令行方式
kubectl create ns hello
  • yaml方式,hello.yaml
apiVersion: v1
kind: Namespace
metadata:
  name: hello 
kubectl apply -f hello.yaml
  1. 删除命名空间
  • 命令行方式
kubectl delete ns hello
  • yaml方式
kubectl delete -f hello.yaml

这里需要说明的是系统默认的命名空间无法删除。包括default。并且删除命名空间会将该空间下部署的所有资源连带删除,谨慎操作。

Pod

pod是运行中的一组容器,是kubernetes中应用的最小单位。

  1. 查看pod
kubectl get pod -A

此命令默认情况下是查看所有的pod。如果我们想看指定命名空间下的pod,可以使用kubectl get pod -n 空间名称,不加参数,查看默认名称空间。

  1. 创建pod

创建一个名称为mynginx的pod,使用的镜像为nginx。

  • 命令行方式
kubectl run mynginx --image=nginx
[root@k8s-master ~]# kubectl get pod [mynginx]
NAME      READY   STATUS    RESTARTS   AGE
mynginx   1/1     Running   0          80s
[root@k8s-master ~]# 

说明:NAME表示pod名称。READY表示就绪的容器数量以及总容器数量。STATUS表示状态。RESTARTS表示重启次数。AGE表示创建时长。

  • yaml方式,nginx.yaml
apiVersion: v1
kind: Pod
metadata:
  name: mynginx
  namespace: default
spec:
  containers:
  - image: nginx
    name: mynginx
  1. 打印详细描述信息
[root@k8s-master ~]# kubectl describe pod [mynginx]
......
Events:
  Type    Reason     Age    From               Message
  ----    ------     ----   ----               -------
  Normal  Scheduled  4m54s  default-scheduler  Successfully assigned default/mynginx to k8s-worker2
  Normal  Pulling    4m53s  kubelet            Pulling image "nginx"
  Normal  Pulled     3m49s  kubelet            Successfully pulled image "nginx" in 1m4.144467081s
  Normal  Created    3m48s  kubelet            Created container mynginx
  Normal  Started    3m48s  kubelet            Started container mynginx
[root@k8s-master ~]# 

主要看事件部分。包括被分配的节点信息等。我们发现在k8s-worker2节点创建了pod,所以通过docker ps | grep mynginx查看的时候只有在worker2节点才可看到。

  1. 打印详细日志信息
[root@k8s-master ~]# kubectl logs [mynginx]
...
2022/06/27 15:18:45 [notice] 1#1: start worker process 32
2022/06/27 15:18:45 [notice] 1#1: start worker process 33
[root@k8s-master ~]# 
  1. 查看pod被分配的ip
[root@k8s-master ~]# kubectl get pod -owide [mynginx]
NAME      READY   STATUS    RESTARTS   AGE    IP              NODE          NOMINATED NODE   READINESS GATES
mynginx   1/1     Running   0          4m6s   192.168.126.8   k8s-worker2   <none>           <none>
[root@k8s-master ~]# 

集群中的任意一个机器以及任意的应用都能通过Pod分配的ip来访问这个Pod,curl 192.168.126.8:[80]

  1. 进入pod容器内部
[root@k8s-master ~]# kubectl exec -it [mynginx] -c [mynginx] -- /bin/bash
root@mynginx:/# ls
bin   dev		   docker-entrypoint.sh  home  lib64  mnt  proc  run   srv  tmp  var
boot  docker-entrypoint.d  etc			 lib   media  opt  root  sbin  sys  usr
root@mynginx:/# 

注意,如果是多容器的pod,我们可以加上参数-c 容器名称即可进入指定的容器内。

  1. 删除pod
kubectl delete pod [mynginx]
kubectl delete -f nginx.yml

重点说明:pod是kubernetes中应用的最小单位。在同一个pod内的容器可以直接使用127.0.0.1:端口的方式访问,但是要注意,端口不能重复。

本文由mdnice多平台发布

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

傻啦猫@_@

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值