1. 什么是名称空间?
通过工作中的这段时间,复习一下k8s的名称空间,在 K8s 中,名称空间是用于隔离集群资源的机制。Kubernetes 集群中的一些资源支持名称空间,而一些资源不支持名称空间。那些支持名称空间的资源被称为局部资源,而不支持名称空间的资源则是全局资源。
如何判定资源是否支持名称空间?
可以使用以下命令列出所有资源及其是否支持名称空间:
kubectl api-resources
该命令会列出所有资源及其相关信息,其中 NAMESPACED
列显示资源是否支持名称空间(true
为支持,false
为不支持)。
2. 响应式管理名称空间
2.1 创建名称空间
要创建一个新的名称空间,可以使用 kubectl create ns
命令:
kubectl create ns oldboyedu
2.2 查看名称空间
查看所有名称空间:
kubectl get ns
查看指定名称空间的详情:
kubectl get ns oldboyedu
kubectl get ns oldboyedu --show-labels
2.3 修改名称空间
虽然 Kubernetes 不支持直接修改名称空间的名字,但可以通过修改名称空间的标签来更新其信息。例如:
kubectl label namespaces oldboyedu school=oldboyedu
kubectl label ns oldboyedu class=linux92
2.4 在名称空间中使用 Pod
在创建 Pod 时,可以通过 namespace
字段指定名称空间:
apiVersion: v1
kind: Pod
metadata:
name: xiuxian-v1
namespace: oldboyedu
spec:
nodeName: worker232
containers:
- image: registry.cn-hangzhou.aliyuncs.com/yinzhengjie-k8s/apps:v1
name: xiuxian
应用配置后,Pod 会被创建到 oldboyedu
名称空间。
2.5 使用 -A
选项查看所有名称空间的资源
使用 -A
选项可以查看集群中所有名称空间的资源:
kubectl get pods -A
2.6 删除名称空间
删除一个名称空间将会删除该名称空间中的所有资源。删除命令如下:
kubectl delete ns oldboyedu
3. 声明式管理名称空间
3.1 获取资源的 YAML 文件
可以通过 kubectl get ns <namespace> -o yaml
命令导出名称空间的 YAML 配置文件:
kubectl get ns default -o yaml
3.2 根据提供的 YAML 文件创建名称空间
可以使用一个 YAML 文件来声明式地创建名称空间,例如:
apiVersion: v1
kind: Namespace
metadata:
labels:
school: oldboyedu
class: linux92
name: oldboyedu
应用该配置文件以创建名称空间:
kubectl apply -f 05-ns-oldboyedu.yaml
3.3 使用名称空间配置 Wordpress
在为 WordPress 配置资源时,可以通过指定 namespace
字段来将资源创建到指定名称空间中。例如,在 oldboyedu
名称空间中创建 MySQL 和 WordPress 的资源。
- MySQL 配置
apiVersion: v1
kind: ReplicationController
metadata:
name: rc-mysql
namespace: oldboyedu
spec:
replicas: 1
selector:
apps: mysql80
template:
metadata:
labels:
apps: mysql80
spec:
containers:
- image: harbor.oldboyedu.com/oldboyedu-db/mysql:8.3.0-oracle
name: db
- WordPress 配置
apiVersion: v1
kind: ReplicationController
metadata:
name: rc-wordpress
namespace: oldboyedu
spec:
replicas: 3
selector:
apps: wp
template:
metadata:
labels:
apps: wp
spec:
containers:
- image: harbor.oldboyedu.com/oldboyedu-web/wordpress
name: wp
通过将 namespace
字段设置为 oldboyedu
,所有资源都会被创建在该名称空间中。
标签:oldboyedu,kubectl,ns,名称,空间,k8s,资源 From: https://www.cnblogs.com/leojazz/p/18678721