• kubernetes资源对象介绍及常用命令


    命名空间

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

    1. 查看命名空间
    kubectl get ns
    • 1

    ns是namespace的缩写。

    1. 创建命名空间

    创建一个hello的命名空间。

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

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

    Pod

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

    1. 查看pod
    kubectl get pod -A
    • 1

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

    1. 创建pod

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

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

    说明: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
    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 ~]# 
    • 1

    主要看事件部分。包括被分配的节点信息等。我们发现在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
    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 ~]# 
    • 1

    集群中的任意一个机器以及任意的应用都能通过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:/# 
    • 1

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

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

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

    本文由 mdnice 多平台发布

  • 相关阅读:
    Spring Cloud 构建面向企业的大型分布式微服务快速开发框架+技术栈介绍
    vue基本概念
    web中间件漏洞-weblogic漏洞-弱口令war包上传
    二叉树浅见
    FPGA序列脉冲波形发生器
    六大科研工具推荐,外文文献阅读管理全都搞定!
    8、Linux 网络编程
    @Validated指定校验顺序
    hive笔记(七):函数-内置函数/空字段赋值/行转列/列转行/窗口函数/Rank
    如何快速高效全面的学习云计算和虚拟化技术
  • 原文地址:https://blog.csdn.net/weixin_45842494/article/details/125494187