[K8S] 03 - k8s YAML, NameSpace & Pod

"声明样式” 的 资源清单文件


kubectl 命令有局限性,不是那么的方便,所以考虑批处理 by YAML file。

YAML 格式(纸上谈兵)

YAML 入门教程 

YAML 语言教程

三种基本大类型:

    1. 对象,键值对的集合;
    2. 数组,列表;
    3. 纯量,变量。

 

资源清单描述方法(上手小试)

例如,创建预期期望的pod。

version  
kind 资源类型:服务?控制器?etc
metadata 加上标签,起个名字
metadata.name  
metadata.namespace  
spec  
spec.containers[]  
spec.containers[].name  
spec.containers[].image  
spec.containers[].imagePullPolicy  
... 还有很多定义容器的 feature  

For example:

    • 创建一个 namespace

apiVersion: v1
kind: Namespace
metadata:
  name: test
    • 创建一个 pod

在Pod中有个容器 nginx-containers,对应的镜像是 nginx:latest

apiVersion: v1
kind: Pod
metadata:
  name: pod1
spec:
  containers:
  - name: nginx-containers
    image: nginx:latest

 

 之后,依次先讲 NameSpace,再讲Pod。

 

 

 

NameSpace 命名空间


例如:在现有的k8s集群中运行两套环境。通过命名空间进行“逻辑”隔离。

常见命名空间

$ kubectl get namespace (ns)

kubectl get pods --namespace kube-system  # 查看该命名空间下的pod。

 

创建 命名空间

  • 命令行模式

$ kubectl create namespace test1

 

  • 资源清单模式

创建 01-create-ns.yaml 文件

apiVersion: v1
kind: Namespace
metadata:
  name: test2

(2) 应用资源清单文件

$ kubectl apply -f 01-create-ns.yaml

(3) 验证是否创建成功

$ kubectl get namespace

  

删除 NameSpace 

$ kubectl delete namespace test1
$ kubectl delete -f 01-create-ns.yaml

 

 

  

核心概念 Pod


 

创建和加载

$ kubectl get pod
$ kubectl get namespace
$ kubectl get pods --namespace default
$ kubectl get pods -n default $ kubectl get pod -n kube-system

首先,编写一个资源文件。

然后,加载这个文件。

$ kubectl apply -f 02-create-pod.yaml

  

访问和删除

一般,不建议直接访问 Pod。

 

  • 命令行删除

 

  • 资源文件模式删除

 

End.

posted @ 2021-11-22 12:07  郝壹贰叁  阅读(217)  评论(0编辑  收藏  举报