

Kubernetes 命名空间(Namespaces)是一种将集群资源划分为多个独立的部分的机制。它们允许在同一个物理集群中运行多个逻辑上分隔的组。
创建命名空间:
kubectl create namespace dev
apiVersion: v1
kind: Namespace
metadata:
name: dev
在命名空间中创建资源:
dev中创建部署:apiVersion: apps/v1
kind: Deployment
metadata:
name: example-deployment
namespace: dev
spec:
replicas: 2
selector:
matchLabels:
app: example
template:
metadata:
labels:
app: example
spec:
containers:
- name: example-container
image: example-image
指定命名空间执行命令:
kubectl get pods --namespace dev
创建资源配额:
dev中设置CPU和内存的配额:apiVersion: v1
kind: ResourceQuota
metadata:
name: dev-quota
namespace: dev
spec:
hard:
requests.cpu: "1"
requests.memory: 1Gi
limits.cpu: "2"
limits.memory: 2Gi
应用资源配额:
kubectl apply -f <quota-file.yaml>
创建角色和角色绑定:
dev创建一个角色和角色绑定,允许用户执行特定操作:apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
namespace: dev
name: dev-role
rules:
- apiGroups: [""]
resources: ["pods"]
verbs: ["get", "watch", "list"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: dev-role-binding
namespace: dev
subjects:
- kind: User
name: <username>
apiGroup: rbac.authorization.k8s.io
roleRef:
kind: Role
name: dev-role
apiGroup: rbac.authorization.k8s.io
应用角色和角色绑定:
kubectl apply -f <role-and-rolebinding-file.yaml>
这些案例展示了如何使用命名空间进行环境隔离、资源管理和访问控制。在实际应用中,可以根据项目的具体需求和规模,灵活地应用和调整这些策略。