kubectl label pod nginx -n dev version=1.0# 给pod打标签
kubectl label pod nginx -n dev version- # 删除标签
kubectl get pod -n dev --show-labels # 查看
kubectl label pod nginx -n dev version=2.0 --overwrite # 更新
kubectl get pods -l "version!=2.0" -n dev --show-labels # 指定label查找
1
2
3
4
5
Deployment Pod控制器
命令式管理
# run默认使用控制器运行pod
# 创建deploymen.apps/nginx控制器,--replicas=3 建立三个pod
# pod有label run=nginx
kubectl run nginx --image=nginx:1.17.1 --port=80 --replicas=3 -namespace=dev
kubectl get deployment,pods -n dev # 查看创建结果
kubectl describe deploy nginx -n dev # 查看deployment详细
kubectl delete deploy nginx -n dev
1
2
3
4
5
6
7
命令式yaml配置
vim deploy-nginx.yaml
apiVersion: apps/v1
kind: Deployment
metadata;
name: nginxpod
namespace: dev
spec:# podreplicas:3selector:# 控制器matchlabels:run: nginx
template;
metadata:labels:run: nginx
spec:containers:# pod中容器的名字-name: nginx-containers
image: nginx:1.17.1
ports:-containerPort:80protocol: TCP
kubectl create -f deploy-nginx.yaml # 创建
kubectl get deployment,pods -n dev # 查看
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Service 一组同类Pod对外的访问接口
命令式管理
# deployment nginx创建了pod # 暴露service ,名称svc-nginx1,类型ClusterIP# service端口号80 访问service时访问端口号为80的pod
kubectl expose deploy nginx --name=svc-nginx1 --type=ClusterIP --port=80 --target-port=80 -n dev
kubectl get service -n dev # 查看(clusterip 分配端口)curl clusterip:port
kubectl delete svc svc-nginx1 -n dev # 删除
clusterip 只能在集群内部(部署k8s)访问
NodePort 集群外部可访问 浏览器访问 http://service所在主机ip:service端口号