K8S Namespace-集群的共享与隔离
隔离
- 资源对象的隔离:Service、Deployment、Pod
- 资源配额的隔离:Cpu、Memory
[hemei@master test]$ kubectl get namespaces
NAME STATUS AGE
aimp Active 158d
default Active 240d
dep-test Active 160d
harbor Active 116d
istio-system Active 150d
kafka Active 136d
kube-node-lease Active 240d
kube-public Active 240d
kube-system Active 240d
model-svc Active 187d
monitoring Active 136d
nginx-system Active 240d
online-log Active 128d
seldon-system Active 240d
test Active 226d
查看指定命名空间的pod
[hemei@master test]$ kubectl get pod -n model-svc
NAME READY STATUS RESTARTS AGE
houseprice-m437-v1-0-m604-578df4645f-5d4z7 2/2 Running 0 53d
model-service-app-deploy-545d868954-tdnnr 1/1 Running 0 31d
model-service-celery-deploy-6d54bbf6d5-wzz8k 1/1 Running 485 39d
test-0323-m630-v1-0-m811-c5fd8dfd9-jlswv 2/2 Running 0 39d
test1-m582-v1-0-m754-84b644775c-bbfd7 2/2 Running 0 23d
test299-m580-v2-0-m753-b5677ccd-jz6h4 2/2 Running 0 16d
xgboost-m437-v1-batch-predictor-0-m604-6fd9b79596-kj4fz 2/2 Running 0 53d
xgboost-m580-v2-batch-predictor-0-m753-897b787dd-pvqhl 2/2 Running 0 10d
xgboost-m582-v1-batch-predictor-0-m754-5d99ff6f44-wxqb2 2/2 Running 0 23d
xgboost-m624-v2-batch-predictor-0-m813-7bf55dd6cf-28r6s 2/2 Running 0 39d
[hemei@master test]$
创建命名空间:
namespace-dev.yaml
apiVersion: v1
kind: Namespace
metadata:
name: dev
部署
kubectl create -f namespace-dev.yaml
或者直接通过命令来创建:
kubectl create ns test
查看创建的命名空间:
[hemei@master test]$ kubectl get namespaces
NAME STATUS AGE
aimp Active 158d
default Active 240d
dep-test Active 160d
dev Active 10s
harbor Active 116d
istio-system Active 150d
kafka Active 136d
kube-node-lease Active 240d
kube-public Active 240d
kube-system Active 240d
model-svc Active 187d
monitoring Active 136d
nginx-system Active 240d
online-log Active 128d
seldon-system Active 240d
test Active 226d
进入到pod里边:
[hemei@master test]$ kubectl get pods
NAME READY STATUS RESTARTS AGE
nfs-subdir-external-provisioner-6dcc58bb4b-8fc84 1/1 Running 11 150d
tomcat-demo-54cbbcffdb-2hn5h 1/1 Running 0 62m
[hemei@master test]$ kubectl exec -it tomcat-demo-54cbbcffdb-2hn5h bash
kubectl exec [POD] [COMMAND] is DEPRECATED and will be removed in a future version. Use kubectl exec [POD] -- [COMMAND] instead.
bash-4.4#
划分方式
- 按环境划分:dev、test
- 按团队划分
- 自定义多级划分
kubectl create 和 kubectl apply区别
- 描述:
kubectl create -f xx.yaml
kubectl apply -f xx.yaml
如果yaml文件中的kind值为deployment,那么上面这两个命令都可以创建一个deployment,生成相应数量的pod
那二者有什么区别呢?
2. 区别:
kubectl create:
(1)kubectl create命令,是先删除所有现有的东西,重新根据yaml文件生成新的。所以要求yaml文件中的配置必须是完整的
(2)kubectl create命令,用同一个yaml 文件执行替换replace命令,将会不成功,fail掉。
kubectl apply:
kubectl apply命令,根据配置文件里面列出来的内容,升级现有的。所以yaml文件的内容可以只写需要升级的属性
为者常成,行者常至
自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)