[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 --password=XJM@151089

 

 

切换回原来的用户权限

kubectl config use-context kubernetes-admin@kubernetes

 

划分方式

按环境划分 dev test

按团队划分

自定义多级划分

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爷来辣

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值