当前位置:   article > 正文

K8s常用命令_k8s查看namespace的命令

k8s查看namespace的命令

Namespace

默认情况下,kubernetes集群中的所有的Pod都是可以相互访问的。但是在实际中,可能不想让两个Pod之间进行互相的访问,那此时就可以将两个Pod划分到不同的namespace下。kubernetes通过将集群内部的资源分配到不同的Namespace中,可以形成逻辑上的“组”,以方便不同的组的资源进行隔离使用和管理。

kubernetes在集群启动之后,会默认创建几个namespace

名称含义
default所有未指定Namespace的对象都会被分配在default命名空间
kube-node-lease集群节点之间的心跳维护,v1.13开始引入
kube-public此命名空间下的资源可以被所有人访问(包括未认证用户)
kube-system所有由Kubernetes系统创建的资源都处于这个命名空间

Namespace的名字遵循如下要求:

  1. 不能以kube-作为前缀。
  2. 最多63个字符。
  3. 只能是小写字母和数字,或者-中划线。
  4. 首字符必须是字母或数字。
  5. 尾字符必须是字母或数字。
  6. 无法更新。

备注:命名空间的命名规则可以使用正则[a-z0-9]([-a-z0-9]*[a-z0-9])?和最大63字符来约束。

查看namespace

kubectl get ns
或者
kubectl get namespace
  • 1
  • 2
  • 3

在这里插入图片描述

创建namespace

(1)使用命令行方式创建

kubectl create namespace test-01
  • 1

在这里插入图片描述

(2)使用yaml文件创建

创建一个名为test-02.yaml的yaml文件

apiVersion: v1
kind: Namespace
metadata:
  name: test-02
  • 1
  • 2
  • 3
  • 4

然后使用如下命令进行创建

kubectl create -f test-02.yaml
或
kubectl apply -f test-02.yaml
  • 1
  • 2
  • 3

在这里插入图片描述

删除namespace

(1)命令行方式删除

kubectl delete ns/test-01
  • 1

在这里插入图片描述

(2)使用yaml文件删除

如果Namespace是使用yaml文件创建的,也可以使用yaml文件进行删除

kubectl delete -f test-02.yaml
  • 1

在这里插入图片描述

Pod

Pod 是 k8s 系统中可以创建和管理的最小单元,是资源对象模型中由用户创建或部署的最小资源对象模型,也是在 k8s 上运行容器化应用的资源对象。k8s 不会直接处理容器,而是通过 Pod。Pod 是由一个或多个 container 组成的。

Pod 是 Kubernetes 的最重要概念,每一个 Pod 都有一个特殊的被称为“根容器”的 Pause容器。Pause 容器对应的镜像属于 Kubernetes 平台的一部分,除了 Pause 容器,每个 Pod还包含一个或多个紧密相关的用户业务容器。

Kubernetes 集群中的 Pod 主要有两种用法:

  • 运行单个容器的 Pod:“每个 Pod 一个容器”模型是最常见的 Kubernetes 用例; 在这种情况下,可以将 Pod 看作单个容器的包装器,并且 Kubernetes 直接管理 Pod,而不是容器。

  • 运行多个协同工作的容器的 Pod: Pod 可能封装由多个紧密耦合且需要共享资源的共处容器组成的应用程序。 这些位于同一位置的容器可能形成单个内聚的服务单元 —— 一个容器将文件从共享卷提供给公众, 而另一个单独的“边车”(sidecar)容器则刷新或更新这些文件。 Pod 将这些容器和存储资源打包为一个可管理的实体。

查看Pod

查看默认命名空间的Pod

kubectl get pods
  • 1

如果Pod指定了在某个命名空间的话,需要指定命名空间,否则无法查看。查看特定命名空间的Pod,比如Namespace为kube-system下的Pod

kubectl get pods -n kube-system
或
kubectl get pods --namespace kube-system
  • 1
  • 2
  • 3

查看所有Pod

kubectl get pods -A
  • 1

在这里插入图片描述

创建Pod

(1)命令行方式

kubectl run nginx --image=nginx
  • 1

其中,nginx为pod名字,--image=nginx表示使用Nginx镜像。除此之外,还能用--image-pull-policy指定镜像拉取策略。k8s的镜像拉取策略主要有以下三种:

策略解释
Always总是从镜像仓库获取镜像。当标签为latest,默认为Always
Never禁止从仓库中获取镜像,只能使用本地镜像
IfNotPresent仅当本地没有镜像时,才从镜像仓库获取镜像。当标签为自定义时(不是latest),默认为IfNotPresent

查看pod,STATUS为Running就表示pod创建成功

kubectl get pods
  • 1

在这里插入图片描述

通过describe命令确定ip

kubectl describe pod nginx
  • 1

其中nginx为pod的名字

在这里插入图片描述

通过该ip访问nginx也确实起来了

在这里插入图片描述

(2)使用yaml文件创建

创建一个名为test_pod.yaml的yaml

apiVersion: v1  #api版本
kind: Pod       #创建的资源
metadata:
  name: pod-test    #Pod的名字
  namespace: default   #指定命名空间
  labels:
    name: pod-test  #Pod具有的标签
spec:
  containers:
  - name: pod-test    #Pod里容器的名字,这里必须要用-,不加就报错
    image: nginx:latest  #容器使用的镜像
    imagePullPolicy: IfNotPresent  #镜像拉取策略
    ports:
    - containerPort: 80  #容器暴露的端口,这里必须要用-,不加就报错
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

然后使用如下命令创建:

kubectl create -f test_pod.yaml
  • 1

在这里插入图片描述

删除Pod

(1)命令行方式删除

kubectl delete pod nginx
  • 1

其中,nginx是pod的名字。如果Pod在某个命名空间,也需要指定-n参数。如果删除速度比较慢的话可以加--force

在这里插入图片描述

(2)使用yaml文件

如果Pod是使用yaml文件创建的,也可以使用yaml文件删除

kubectl delete -f test_pod.yaml
  • 1

在这里插入图片描述

(3)删除所有Pod

kubectl delete pods --all
  • 1

执行容器命令

(1)执行pod的某个命令,默认使用pod的第一个容器执行

kubectl exec <pod-name> -- command
  • 1

例如:让名为pod-test的pod执行ls命令

kubectl exec pod-test -- ls
  • 1

在这里插入图片描述

(2)指定pod的某个容器执行命令

kubectl exec <pod-name> -c <container-name> -- date
  • 1

在这里插入图片描述

(3)进入容器

kubectl exec -it <pod-name> -c <container-name> -- /bin/bash
  • 1

用exit即可退出容器

在这里插入图片描述

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

闽ICP备14008679号