k8s 通过set-context 控制namespace 进行隔离

前言

k8s可以基于命名空间实现完全隔离的环境,可以根据业务的不同划分不同的namespace来使用,在这里简单分享一下

1、创建namespace

kubectl create -f https://k8s.io/examples/admin/namespace-dev.json
kubectl create -f https://k8s.io/examples/admin/namespace-prod.json

#查看创建的命名空间
kubectl get namespaces --show-labels

k8s 通过set-context 控制namespace 进行隔离_第1张图片

2、定义context(运行环境)

#查看k8s配置
kubectl config view

k8s 通过set-context 控制namespace 进行隔离_第2张图片
创建Context运行环境

kubectl config set-context dev --namespace=development --cluster=kubernetes --user=kubernetes-admin
kubectl config set-context prod --namespace=production --cluster=kubernetes --user=kubernetes-admin

3、设置在特定context环境工作

#切换到dev环境
kubectl config use-context dev

在这里插入图片描述
确认上下文
在这里插入图片描述

创建两个pod

cat redis-slave-controller.yaml
apiVersion: v1
kind: ReplicationController
metadata:
  name: redis-slave
  labels:
    name: redis-slave
spec:
  replicas: 2
  selector:
    name: redis-slave
  template:
    metadata:
      labels:
        name: redis-slave
    spec:
      containers:
      - name: slave
        image: kubeguide/guestbook-redis-slave
        ports:
        - containerPort: 6379


kubectl create -f redis-slave-controller.yaml
#查看创建好的pod

k8s 通过set-context 控制namespace 进行隔离_第3张图片

4、切换到prod环境查看

k8s 通过set-context 控制namespace 进行隔离_第4张图片
证明两个环境互不干扰

你可能感兴趣的:(K8s与容器系列,kubernetes,docker,linux)