- 前提条件
0.0 环境准备
0.1 安装docker
0.2 安装k8s - 概念
- k8s能将对象分组,此处的命名空间和Linux中相互隔离进程的命名空间不同
- 我们并不会将所有资源都放在同一个命名空间中,而是将它们组织到多个不同的命名空间中
- 了解对命名空间的需求
- 可以将包含大量组件的复杂系统拆分为更小的不同组
- 可以用于在多租户环境中分配资源(测试、QA、生产)
- 资源名称只需在命名空间内保持唯一即可
- 发现其他命名空间及其pod
- 列出所有命名空间
kubectl get ns
- 列出其它命名空间下的资源(-n可以代替–namespace)
kubectl get po --namespace kube-system
- 列出所有命名空间
- 创建一个命名空间
- 从YAML文件创建命名空间
- 创建文件(custom-namespace.yaml)
apiVersion: v1 kind: Namespace metadata: name: custom-namespace
- 提交创建命令
kubectl create -f custom-namespace.yaml
- 使用kubectl create namaspace命令创建命名空间
kubectl create namespace custom-namespace2
- 从YAML文件创建命名空间
- 管理其他命名空间中的对象
- 在其他命名空间中创建资源(也可以在YAML文件的metadata字段中添加namespace: custom-namespace属性)
kubectl run kubia --image=nuptaxin/kubia --port=8080 -n custom-namespace
- 查询此其他命名空间的pod
kubectl get po -n custom-namespace
- 在其他命名空间中创建资源(也可以在YAML文件的metadata字段中添加namespace: custom-namespace属性)
- 命名空间提供的隔离【命名空间之间是否提供网络隔离取决于k8s所使用的网络解决方案】
- 资源清理
kubectl delete ns custom-namespace
kubectl delete ns custom-namespace2