namespace
什么是命名空间?
kubernetes支持多个虚拟集群,它们底层依赖于同一个物理集群。这些虚拟集群被称为命名空间。。默认有default、kube-node-lease、kube-system、kube-public
# 创建namespace
kubectl create ns test
# namespace 资源配额(使用kubectl explain ResourceQuota查看写法)
cat > namespace-quota.yaml << EOF
apiVersion: v1
kind: ResourceQuota
metadata:
name: mem-cpu-quota
namespace: test
spec:
# 官网有模版案例
hard:
# cpu请求
requests.cpu: "2"
# 内存请求
requests.memory: 2Gi
# cpu限额
limits.cpu: "4"
# 内存限额
limits.memory: 4Gi
EOF
# 应用该资源配额
kubectl apply -f namespace-quota.yaml
# 检查
kubectl get resourcequota -n test
# 创建pod资源设置资源限额
cat > pod-test.yaml << EOF
apiVersion: v1
kind: Pod
metadata:
name: pod-test
namespace: test
labels:
app: tomcat-pod-test
spec:
containers:
- name: tomcat-test
image: xxx
imagePullPolicy: IfNotPresent
ports:
- contianerPort: 8080
# 配置的资源限制不能超过所创建namespace的最大值。
resources:
# 限制pod的阀值,防止内存泄漏
limits:
memory: "2Gi"
cpu: "2"
# node至少应该满足的
requests:
memory: "100Mi"
cpu: "500m"
EOF
# 这里的limits和requests的值不能超过namespace test的阀值,也就是 4核 4Gi