PHP编程在线学习平台, 提供PHP教程、PHP入门教程、PHP视频教程及源码下载

网站首页 > 文章精选 正文

k8s命名空间Namespace介绍使用,以及用kubens插件管理namespace

xinche 2024-11-28 09:07:43 文章精选 7 ℃ 0 评论

1、简介

命名空间适用于存在很多跨越多个团队或项目的用户的场景。对于只有几到几十个用户的集群,根本不需要创建或考虑命名空间。当需要名称空间提供的功能时,请开始使用它们。

简单理解,不同团队之间的项目,隔离作用,互不干扰。但是必要情况下,也是可以互相通信的。

Kubernetes中的集群默认会有一个叫default的namespace。实际上,应该是3个:

  • default:你的service和app默认被创建于此。
  • kube-system:kubernetes系统组件使用。
  • kube-public:公共资源使用。但实际上现在并不常用。

命令 kubectl get ns 可查看命名空间。

ubuntu@k8s-master:~$ kubectl get ns
NAME STATUS AGE
default Active 42h
kube-node-lease Active 42h
kube-public Active 42h
kube-system Active 42h


所有没有指定namespace下,集群都默认在default 命名空间。


2、创建Namespace

两种方式:命令和yaml文件

1)命令:kubectl create namespace test

2)使用yaml文件:

sudo vim namespace.yaml
   kind: Namespace
   apiVersion: v1
   metadata:
    name: test
   labels:
    name: test

然后,执行

kubectl apply -f namespace.yaml

3、在namespace中创建资源

也有两种方式:

1)命令最后指定命名空间:

kubectl apply -f pod.yaml --namespace=test

2)在yaml文件指定:

apiVersion: v1
kind: Pod
metadata:
  name: mypod
  namespace: test	#指定命名空间
  labels:
    name: mypod
spec:
  containers:
  - name: mypod
    image: nginx

一旦指定命名空间后,在查看Pod或者Service,也必须指定命名空间,否则查看不到,因为没指定之前,所有命令默认是default的命名空间。

查看test命名空间的pod

kubectl get pods --namespace=test


4、kubens切换namespace

如上所示,所有命令默认是default的命名空间,所有用其他命名空间,必须指定命令。所以可以切换至命名空间,就不需要在命令后指定了。

所以需要用到插件kubens,插件地址:https://github.com/ahmetb/kubectx#manual-installation-macos-and-linux

这里面包含两个插件,需要的话都可以安装。下载安装:

sudo git clone https://github.com/ahmetb/kubectx /opt/kubectx
sudo ln -s /opt/kubectx/kubectx /usr/local/bin/kubectx
sudo ln -s /opt/kubectx/kubens /usr/local/bin/kubens

安装完成,当你运行 kubens 命令,它会高亮当前的namespace,

切换 test 空间, kubens test ,再次查看所在空间,已切换完成,查看test所在空间的资源,输入命令也无需再次指定test的命名空间。

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

请填写验证码
最近发表
标签列表
最新留言