Kubernetes中,基本上所有的资源都和Namespace绑定的,如果你没有特殊指定,那么你就是用的default namespace
namespace的概念就是一个隔离的环境,不同的namespaces下可以创建pod , deployments ,replicaSets等资源,并且不会和其他namespace冲突
而且我们还可以给Namespace加资源限制,控制某个namespace可以使用的资源
适用的场景: 公司有好多开发,每个人分配一个namespace, 每个人namespace 分配4 cpu ,8 G 内存,然后让他们自己玩去就好了,不会出现删除别的资源的情况,每个人都在自己的namespace转悠
我们可以在创建Pod的时候指定Namesapce
1 2 3 4 5 6 7 8 9 10 11 12 |
apiVersion: v1 kind: Pod metadata: name: myapp-pod namespace: dev labels: app: myapp type: front-end spec: containers: - name: nginx-container image: nginx |
当然也可以通过命令行指定:
1 |
$ kubectl create -f pod-definition.yaml --namespace=dev |
我们可以通过命令创建namespace:
1 |
$ kubectl create namespace dev |
我们可以通过如下命令切换当前的namespace:
1 |
$ kubectl config set-context $(kubectl config current-context) --namespace=dev |
我们可以通过如下命令查看指定namespace下的pod
1 |
$ kubectl get pods --namespace=kube-system |
然后我们可以通过如下文件给namespace 指定资源limit:
1 2 3 4 5 6 7 8 9 10 11 12 |
apiVersion: v1 kind: ResourceQuota metadata: name: compute-quota namespace: dev spec: hard: pods: "10" requests.cpu: "4" requests.memory: 5Gi limits.cpu: "10" limits.memory: 10Gi |
在kuberntes cluster中,我们可以通过dns那么来访问其他namespace下的服务,具体参数:
db-service.dev.svc.cluster.local
Latest posts by Zhiming Zhang (see all)
- aws eks node 自动化扩展工具 Karpenter - 8月 10, 2022
- ReplicationController and ReplicaSet in Kubernetes - 12月 20, 2021
- public key fingerprint - 5月 27, 2021