[K8S] 03 - k8s YAML, NameSpace & Pod
"声明样式” 的 资源清单文件
kubectl 命令有局限性,不是那么的方便,所以考虑批处理 by YAML file。
YAML 格式(纸上谈兵)
三种基本大类型:
- 对象,键值对的集合;
- 数组,列表;
- 纯量,变量。
资源清单描述方法(上手小试)
例如,创建预期期望的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.