当前位置:   article > 正文

02-Kubernetes中的NameSpace与Pod_查看所有命名空间的pod

查看所有命名空间的pod

1. NameSpace

1.1 NameSpace是什么

NameSpace 称作名称空间或者命名空间,用于对集群资源进行隔离划分,默认只是隔离资源,不隔离网络。

在这里插入图片描述

1.2 NameSpace相关的命令

k8s 中,创建资源有两种方式,一种是命令行方式,另外一种是使用 yaml 文件的方式。

1.2.1 使用命令行方式

(1)查看集群中命名空间列表

kubectl get ns

kubectl get namespace
  • 1
  • 2
  • 3

(2)创建命名空间

kubectl create ns 命名空间名称
  • 1

(3)删除命名空间

kubectl delete ns 命名空间名称
  • 1

注意点:如果删除命名空间,会把该命名空间下的所有资源连带删除。

1.2.2 使用yaml文件的方式

(1)先写一个 yaml 文件,比如 hello-world.yaml

apiVersion: v1
kind: Namespace
metadata:
  name: hello-world #这里写命名空间名称,例如这里叫hello-world
  • 1
  • 2
  • 3
  • 4

(2)使用上面的 yaml 文件,创建命名空间

kubectl apply -f hello-world.yaml
  • 1

(3)删除命名空间

kubectl delete -f hello-world.yaml
  • 1

2. Pod

2.1 什么是Pod

Pod:运行中的一组容器,Pod 是 Kubernetes 中应用的最小单位。

在这里插入图片描述
注意点:一个 Pod 代表一组容器,一组之中可以只有一个容器,也可以有多个容器。

上图表示一个 Pod 中只有一个容器,当然也可以把 Redis Container、Java App Container、Vue App Container 三个容器放到同一个 Pod 中,组成一组。

一个 Pod 能正常工作的基础是这个 Pod 中的所有容器都能正常工作,在 k8s 中只谈 Pod,不谈具体的哪个容器,因为 k8s 操作的最小单位只到 Pod 这一层。

在这里插入图片描述

2.2 Pod相关的命令
2.2.1 使用命令行方式

(1)查看 Pod

# 查看指定命名空间下的pod
kubectl get pod -n 命名空间名称

# 查看所有命名空间下的所有pod
kubectl get pod -A
  • 1
  • 2
  • 3
  • 4
  • 5

(2)创建 Pod

kubectl run Pod的名字 --image=容器镜像名 -n 命名空间名称

#示例,在hello-world命名空间下起一个nginx的Pod
kubectl run my-nginx --image=nginx -n hello-world
  • 1
  • 2
  • 3
  • 4

(3)描述 Pod 运行详情信息(排错常用)

kubectl describe pod  Pod的名字 -n 命名空间名称

#示例,查看hello-world命名空间下的my-nginx的详情
kubectl describe pod my-nginx -n hello-world
  • 1
  • 2
  • 3
  • 4

(4)删除 Pod

kubectl delete pod Pod的名字 -n 命名空间名称

#示例,删除hello-world下的nginx的Pod
kubectl delete pod my-nginx -n hello-world
  • 1
  • 2
  • 3
  • 4

(5)查看 Pod 的运行日志

kubectl logs Pod的名字 -n 命名空间名称
  • 1

(6)查看 Pod 的详细信息,比如 IP

kubectl get pod -owide -n 命名空间名称
  • 1

(7)使用 Pod 的 IP+Pod里面运行容器的端口来访问 Pod

curl 192.168.169.136:80
  • 1

(8)使用 k8s 命令进入到容器里面

kubectl exec -it my-nginx -n 命名空间名称 -- /bin/bash
  • 1

(9)退出容器

exit
  • 1

在集群环境中,集群中的任意一个机器以及任意的应用都能通过 Pod 分配的 IP 来访问这个 Pod 。

2.2.2 使用yaml文件的方式

(1)写一个 yaml 文件,比如 nginx-pod.yaml

apiVersion: v1
kind: Pod
metadata:
  labels:
    run: mynginx
  name: my-nginx   # Pod的名字
  namespace: hello-world # Pod所属命名空间
spec:
  containers:
  - image: nginx # 容器的镜像名称
    name: nginx-v1 # 容器名称
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

(2)使用 yaml 文件创建 Pod

kubectl apply -f nginx-pod.yaml
  • 1

(3)删除 Pod

kubectl delete -f nginx-pod.yaml
  • 1
2.3 Pod中多个容器示例

(1)写一个 yaml 文件,比如 myapp.yaml

apiVersion: v1
kind: Pod
metadata:
  labels:
    run: myapp
  name: myapp
  namespace: hello-world
spec:
  containers:
  - image: nginx
    name: nginx
  - image: tomcat:8.5.68
    name: tomcat
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

(2)使用 yaml 文件创建 Pod

kubectl apply -f myapp.yaml
  • 1

(3)集群中访问 nginx

curl 192.168.169.136:80
  • 1

(4)集群中访问 tomcat

curl 192.168.169.136:8080
  • 1

在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/162135
推荐阅读
相关标签
  

闽ICP备14008679号