Kubernetes-pod的运用
程序员文章站
2024-03-11 10:14:55
...
pod运行在namespace(名称空间)的
kubernetes在集群启动后,会默认创建几个namespace(名称空间)
[ [email protected] ~]# kubectl get namespaceNAME
NAME STATUS AGE
default Active 45h #所有未指定Namespace的对象都会被分配在default命名空间
kube-node-lease Active 45h #集群节点之间的心跳维护,v1.13开始引入
kube-public Active 45h #此命名空间下的资源可以被所有人访问(包括未认证用户)
kube-system Active 45h #所有由Kubernetes系统创建的资源都处于这个命名空间
创建namespace(ns是namespace的简写)
kubectl create ns dev
创建并运行
kebernetes没有提供单独运行pod的命令,都是通过pod控制器来实现的
#命令格式:kubectl run (pod控制器名称)〔参数]#--image指定Pod的镜像
#--port指定端口
#--namespace指定namespace
[ [email protected] ~]# kubectl run nginx --image=nginx:1.17.1 --port=80 -n dev
deployment.apps/nginx created
删除指定pod
#删除指定pod
先查看
kubectl get ns -n dev
NAME READY STATUS RESTARTS AGE
nginx-65c4bffcb6-s2nj7 1/1 Running 0 105m
删除指定pod
kubectl delete pod nginx-65c4bffcb6-s2nj7 -n dev
#此时,显示删除pod成功,但是再查询,发现又心产生了一个
#这是因为pod是由pod控制器创建的,控制器会监控pod状况,一旦发现pod死亡,会立即重建
#此时要像删除pod,必须删除pod控制器
#先来查询一下当前namespace下的pod控制器
kubectl get deploy -n dev
#接下来,删除此pod控制器
kubectl deletedeploy name -n dev
#稍等片刻,再查询pod,发现pod被删除
kubectl get pods -n dev
创建一个pod-nginx.yaml
apiVersion: v1
kind: Pod
metadata :
name: nginx
namespace: dev
spec:
containers:
- image: nginx :1.17.1
name: pod
ports:
- name: nginx-port
containerPort: 80
protocol: TCP
#然后就可以执行对应的创建和删除命令了:
创建:kubectl create -f pod-nginx.yaml
删除:kubectl delete -f pod-nginx.yaml
上一篇: Centos 安装 k8s
下一篇: 详解Java动态代理的实现机制