[kubernetes]8-1 Namespace --- 集群的共享与隔离
8-1 Namespace --- 集群的共享与隔离
隔离
1资源对象的隔离 server deployment pod
2资源配额的隔离 cpu memory
查看命名空间
kubectl get namespaces
查看指定命名空间的pod
kubectl get pods -n default
kubectl get pods -n ingress-nginx
创建一个名为dev的namespace
kubectl create -f namespace-dev.yaml
创建web-dev.yaml
#deploy apiVersion: apps/v1 kind: Deployment metadata: name: web-demo namespace: dev spec: selector: matchLabels: app: web-demo replicas: 1 template: metadata: labels: app: web-demo spec: containers: - name: web-demo image: harbor.pdabc.com/kubernetes/web:v3 ports: - containerPort: 8080 --- #service apiVersion: v1 kind: Service metadata: name: web-demo namespace: dev spec: ports: - port: 80 protocol: TCP targetPort: 8080 selector: app: web-demo type: ClusterIP --- #ingress apiVersion: extensions/v1beta1 kind: Ingress metadata: name: web-demo namespace: dev spec: rules: - host: web-dev.pdabc.com http: paths: - path: / backend: serviceName: web-demo servicePort: 80
创建web-demo
kubectl apply -f web-dev.yaml
查看dev 命名空间下的pod 只能看到dev下的pod
提现了隔离性
kubectl get pods -n dev
kubectl get all -n dev
测试命名空间的隔离性 登录前几节创建的web-demo的pod 访问tomcat-demo
kubectl exec -it web-demo-f4564954d-sb4gt bash
通过ping和weget 测试 发现可以正常ping通并下载到index
ping tomcat-demo
wget tomcat-demo -O idx
同样的命令在dev命名空间的web-demo-dev上测试 发现并不通 需要指定-n dev 进入pod
kubectl exec -it web-demo-f4564954d-sb4gt bash -n dev
查看dns 只在dev 下
kubectl get svc
在dev pod下可以访问svc
证明不同命名空间下的service ip 是可以被互相访问的 没有什么限制.service 和命名空间无关
kubectl get pods -o wide
pod ip和service ip 一样也可以被访问到,和命名空间无关.namespace 只是对名字的隔离,并不是物理的隔离.
如果需要区分权限 需要通过用户区分.创建上下文参数的时候 不能用admin
先备份配置文件 这里没有设置其余账号的pem或者密码 所以拿admin测试
cp .kube/config .kube/config.backup
# 设置上下文参数
$ kubectl config set-context ctx-dev \
--cluster=kubernetes \
--user=admin \
--namespace=dev \
--kubeconfig=/root/.kube/config
配置默认的上下文
kubectl config use-context ctx-dev --kubeconfig=/root/.kube/config
查看切换上下文之后 用户的权限 如果报错需要输入用户名username 则输入下面的命令
kubectl get pods
kubectl config set-credentials ctx-dev --username=ctx-dev [email protected]
切换回原来的用户权限
kubectl config use-context [email protected]
划分方式
按环境划分 dev test
按团队划分
自定义多级划分