02-Kubernetes中的NameSpace与Pod

1. NameSpace

1.1 NameSpace是什么

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

在这里插入图片描述

1.2 NameSpace相关的命令

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

1.2.1 使用命令行方式

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

kubectl get ns

kubectl get namespace

(2)创建命名空间

kubectl create ns 命名空间名称

(3)删除命名空间

kubectl delete ns 命名空间名称

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

1.2.2 使用yaml文件的方式

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

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

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

kubectl apply -f hello-world.yaml

(3)删除命名空间

kubectl delete -f hello-world.yaml

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

(2)创建 Pod

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

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

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

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

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

(4)删除 Pod

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

#示例,删除hello-world下的nginx的Pod
kubectl delete pod my-nginx -n hello-world

(5)查看 Pod 的运行日志

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

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

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

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

curl 192.168.169.136:80

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

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

(9)退出容器

exit

在集群环境中,集群中的任意一个机器以及任意的应用都能通过 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 # 容器名称

(2)使用 yaml 文件创建 Pod

kubectl apply -f nginx-pod.yaml

(3)删除 Pod

kubectl delete -f nginx-pod.yaml
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

(2)使用 yaml 文件创建 Pod

kubectl apply -f myapp.yaml

(3)集群中访问 nginx

curl 192.168.169.136:80

(4)集群中访问 tomcat

curl 192.168.169.136:8080

在这里插入图片描述

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值