希望长大对我而言,是可以做更多想做的事,而不是被迫做更多不想做的事...... 首页 k8s命名空间和运行环境 丁D 学无止境 2019-11-18 15:44 54843已阅读 命名空间 k8s 运行环境 摘要本文将介绍k8s的命名空间(namespace)和运行环境(context) ###一、命名空间 k8s默认会自动生成3个命名空间 default:所有未指定Namespace的对象都会被分配在default命名空间。 kube-system:所有由Kubernetes系统创建的资源都处于这个命名空间。 kube-public:此命名空间下的资源可以被所有人访问(包括未认证用户)。 使用`kubectl get namespace`查看命名空间 新建名为dev的命名空间 1.新增文件,namespace-dev.yaml ```yaml apiVersion: v1 kind: Namespace metadata: name: dev ``` 2.执行`kubectl create -f namespace-dev.yaml ` 3.结果 ``` [root@k8s-master1 ~]# kubectl get namespace NAME STATUS AGE default Active 183d dev Active 19s kube-public Active 183d kube-system Active 183d ``` 给dev创建一个pod ` kubectl --namespace=dev create -f dev-mysql-rc.yaml ` ```yaml 注意::文件里面没有指定namespace [root@k8s-master1 ~]# vim dev-mysql-rc.yaml --- apiVersion: v1 kind: ReplicationController metadata: name: dev-mysql-rc labels: app: dev-mysql-rc spec: replicas: 1 selector: app: dev-mysql-pod template: metadata: labels: app: dev-mysql-pod spec: containers: - name: mysql image: mysql:5.7 ports: - containerPort: 3306 env: - name: MYSQL_ROOT_PASSWORD value: "root#$%123" ``` 查看`kubectl --namespace=dev get pods ` 每次敲命令的时候都要加入参数--namespace=dev 这样很麻烦这个时候就出现了context了。 ###二、Context 当我们运行的命令如果不带命名空间默认指的是default,所以我们在运行命令的时候 都要带上命名空间。这样就会很麻烦,,所以我们可以给命名空间绑定一个运行环境,这样我们在这个运行环境下运行的命令,都是对应这个命名空间的。 查看运行环境`kubectl config view` ``` [root@k8s-master1 ~]# kubectl config view apiVersion: v1 clusters: [] contexts: [] current-context: "" kind: Config preferences: {} users: [] ``` 1.创建运行环境 ``` kubectl config set-context ctx-dev --namespace=dev --cluster=kubernetes --user dev 创建运行环境名:ctx-dev,绑定命名空间为:dev,位于集群:kubernetes,指定的用户dev ``` 2.查看pod(这个时候是default) ``` [root@k8s-master1 templates]# kubectl get pod NAME READY STATUS RESTARTS AGE dev-mysql-rc-jlgpd 1/1 Running 0 1h kube-dns-v1-fqc9f 3/3 Running 3 178d mysql-rc-9tkqc 1/1 Running 0 3h ``` 3.切换运行环境 ``` kubectl config use-context ctx-dev ``` 4.查看pod(这个时候是dev) ``` [root@k8s-master1 templates]# kubectl get pod NAME READY STATUS RESTARTS AGE dev-mysql-rc-ccwf2 1/1 Running 0 1h [root@k8s-master1 templates]# ``` ###三、问题 ``` kubectl config use-context ctx-dev 当我们切换到ctx-dev运行环境,也就是对应的命名空间(dev),那我们怎么回到default命名空间呢? 目前我的做法是在重新建立一个运行环境(default),然后让这个运行环境绑定到default命名空间。 具体不知道别人都是怎么处理的。 ``` 很赞哦! (4) 上一篇:k8s资源管理 下一篇:k8s之RBAC实战 目录 点击排行 Elasticsearch6.3.2之x-pack redis哨兵 2019-07-09 22:05 Redis+Twemproxy+HAProxy+Keepalived 2019-07-12 17:20 GC优化策略和相关实践案例 2019-10-10 10:54 JVM垃圾回收器 2019-10-10 10:23 标签云 Java Spring MVC Mybatis Ansible Elasticsearch Redis Hive Docker Kubernetes RocketMQ Jenkins Nginx 友情链接 郑晓博客 佛布朗斯基 凉风有信 MarkHoo's Blog 冰洛博客 南实博客 Rui | 丁D Java研发工程师 生活可以用「没办法」三个字概括。但别人的没办法是「腿长,没办法」、「长得好看,没办法」、「有才华,没办法」。而你的没办法,是真的没办法。 请作者喝咖啡