概述
使用CLI方式可以通过kubectl对Kubernetes进行操作,同时也使用Restful API直接进行操作。这篇文章介绍一下两种方式下进行namespace的管理的方法。
环境准备
快速环境搭建建议使用单机版Kubernetes的安装脚本,一键安装,详情可参看:
- Kubernetes单机版快速安装(Ansible脚本版)
kubectl 方式
获取所有namespace列表信息
使用kubectl可以直接使用如下命令获取namespace列表信息
kubectl命令:kubectl get namespaces
执行示例信息
[root@host132 ~]# kubectl get namespaces
NAME STATUS AGE
default Active 6h25m
kube-node-lease Active 6h25m
kube-public Active 6h25m
kube-system Active 6h25m
[root@host132 ~]#
获取指定namespace信息
使用kubectl可以直接使用如下命令获取指定namespace信息(名为default的namespace)
kubectl命令:kubectl get namespaces default
执行示例信息
[root@host132 ~]# kubectl get namespaces default
NAME STATUS AGE
default Active 6h29m
[root@host132 ~]#
创建新的namespace
使用kubectl可以直接使用如下命令创建新的namespace(名为nskubectltest1的namespace)
kubectl命令:kubectl create namespace nskubectltest1
执行示例信息
[root@host132 ~]# kubectl create namespace nskubectltest1
namespace/nskubectltest1 created
[root@host132 ~]# kubectl get ns
NAME STATUS AGE
default Active 6h41m
kube-node-lease Active 6h41m
kube-public Active 6h41m
kube-system Active 6h41m
nskubectltest1 Active 6s
[root@host132 ~]#
删除指定的namespace
使用kubectl可以直接使用如下命令删除指定的namespace(名为nskubectltest1的namespace)
kubectl命令:kubectl delete namespace nskubectltest1
执行示例信息
[root@host132 ~]# kubectl delete namespace nskubectltest1
namespace "nskubectltest1" deleted
[root@host132 ~]# kubectl get ns
NAME STATUS AGE
default Active 6h41m
kube-node-lease Active 6h41m
kube-public Active 6h41m
kube-system Active 6h41m
[root@host132 ~]#
curl方式
获取所有namespace列表信息
使用curl可以直接使用如下命令获取namespace列表信息
curl命令:curl --header “Authorization: bearer token信息” -k https://192.168.163.132:6443/api/v1/namespaces
执行示例信息
[root@host132 ~]# bearer_token=`cat /etc/k8s/token.csv |awk -F, '{print $1}'`
[root@host132 ~]# header_option="Authorization: bearer $bearer_token"
[root@host132 ~]# curl --header "$header_option" -k https://192.168.163.132:6443/api/v1/namespaces 2>/dev/null |grep name
"selfLink": "/api/v1/namespaces",
"name": "default",
"selfLink": "/api/v1/namespaces/default",
"name": "kube-node-lease",
"selfLink": "/api/v1/namespaces/kube-node-lease",
"name": "kube-public",
"selfLink": "/api/v1/namespaces/kube-public",
"name": "kube-system",
"selfLink": "/api/v1/namespaces/kube-system",
[root@host132 ~]#
获取指定namespace信息
使用curl可以直接使用如下命令获取指定namespace信息(名为default的namespace)
kubectl命令:curl --header “Authorization: bearer token信息” -k https://192.168.163.132:6443/api/v1/namespaces/default
执行示例信息
[root@host132 ~]# bearer_token=`cat /etc/k8s/token.csv |awk -F, '{print $1}'`
[root@host132 ~]# header_option="Authorization: bearer $bearer_token"
[root@host132 ~]# curl --header "$header_option" -k https://192.168.163.132:6443/api/v1/namespaces/default
{
"kind": "Namespace",
"apiVersion": "v1",
"metadata": {
"name": "default",
"selfLink": "/api/v1/namespaces/default",
"uid": "615afada-d48c-4e54-a638-8dbb6e1aa139",
"resourceVersion": "154",
"creationTimestamp": "2019-08-30T19:02:35Z"
},
"spec": {
"finalizers": [
"kubernetes"
]
},
"status": {
"phase": "Active"
}
}[root@host132 ~]#
创建新的namespace
使用curl可以直接使用如下命令创建新的namespace(名为nscurltest1的namespace)
kubectl命令:curl -k -X POST --header “Content-Type: application/json”
–header “Authorization: bearer $bearer_token”
https://192.168.163.132:6443/api/v1/namespaces/ -d ’
{
“apiVersion”: “v1”,
“kind”: “Namespace”,
“metadata”: {
“name”: “nscurltest1”
}
}’
执行示例信息
[root@host132 ~]# kubectl get ns
NAME STATUS AGE
default Active 7h6m
kube-node-lease Active 7h6m
kube-public Active 7h6m
kube-system Active 7h6m
[root@host132 ~]# bearer_token=`cat /etc/k8s/token.csv |awk -F, '{print $1}'`
[root@host132 ~]# curl -k -X POST --header "Content-Type: application/json"
> --header "Authorization: bearer $bearer_token"
> https://192.168.163.132:6443/api/v1/namespaces/ -d '
> {
> "apiVersion": "v1",
> "kind": "Namespace",
> "metadata": {
> "name": "nscurltest1"
> }
> }'
{
"kind": "Namespace",
"apiVersion": "v1",
"metadata": {
"name": "nscurltest1",
"selfLink": "/api/v1/namespaces/nscurltest1",
"uid": "53e0b697-3520-4950-92a4-9aafa606898f",
"resourceVersion": "31448",
"creationTimestamp": "2019-08-31T02:08:50Z"
},
"spec": {
"finalizers": [
"kubernetes"
]
},
"status": {
"phase": "Active"
}
}[root@host132 ~]#
[root@host132 ~]# kubectl get ns
NAME STATUS AGE
default Active 7h6m
kube-node-lease Active 7h6m
kube-public Active 7h6m
kube-system Active 7h6m
nscurltest1 Active 5s
[root@host132 ~]#
删除指定的namespace
使用kubectl可以直接使用如下命令删除指定的namespace(名为nscurltest1的namespace)
curl命令:curl -k -X DELETE --header “Content-Type: application/json”
–header “Authorization: bearer $bearer_token”
https://192.168.163.132:6443/api/v1/namespaces/nscurltest1
执行示例信息
[root@host132 ~]# kubectl delete namespace nscurltest1
[root@host132 ~]# kubectl get ns
NAME STATUS AGE
default Active 7h7m
kube-node-lease Active 7h7m
kube-public Active 7h7m
kube-system Active 7h7m
nscurltest1 Active 79s
[root@host132 ~]# bearer_token=`cat /etc/k8s/token.csv |awk -F, '{print $1}'`
[root@host132 ~]# curl -k -X DELETE --header "Content-Type: application/json"
> --header "Authorization: bearer $bearer_token"
> https://192.168.163.132:6443/api/v1/namespaces/nscurltest1
{
"kind": "Namespace",
"apiVersion": "v1",
"metadata": {
"name": "nscurltest1",
"selfLink": "/api/v1/namespaces/nscurltest1",
"uid": "53e0b697-3520-4950-92a4-9aafa606898f",
"resourceVersion": "31561",
"creationTimestamp": "2019-08-31T02:08:50Z",
"deletionTimestamp": "2019-08-31T02:10:22Z"
},
"spec": {
"finalizers": [
"kubernetes"
]
},
"status": {
"phase": "Terminating"
}
}[root@host132 ~]#
[root@host132 ~]#
[root@host132 ~]# kubectl get ns
NAME STATUS AGE
default Active 7h7m
kube-node-lease Active 7h8m
kube-public Active 7h8m
kube-system Active 7h8m
[root@host132 ~]#
Restful API方式常见问题
- https://liumiaocn.blog.csdn.net/article/details/100518110
其他基础
- 再探kubernetes
最后
以上就是尊敬音响为你收集整理的Kubernetes基础:CLI与Restful API:namespace管理环境准备kubectl 方式curl方式Restful API方式常见问题其他基础的全部内容,希望文章能够帮你解决Kubernetes基础:CLI与Restful API:namespace管理环境准备kubectl 方式curl方式Restful API方式常见问题其他基础所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复