我想知道是否可以动态更改pod的标签,以便服务根据新标签将请求路由到这些pod.
例如,我有两个服务A和B.然后我有10个pod,其中5个标签类型= A(匹配服务A),另外5个标签类型= B(匹配服务B).在某些时候,我想更改pod上的标签,以实现2的配置,标签类型= A和8,标签类型= B.
我想知道我是否可以更改标签和服务将相应更新,而无需停止和启动具有不同标签的新pod.
小智 7
步骤如下:
部署task1.yaml
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: task1deploy
spec:
replicas: 5
template:
metadata:
labels:
app: task1deploy
spec:
containers:
- name: nodetask1
Run Code Online (Sandbox Code Playgroud)
Deploy2task1.yaml
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: task1deploy2
spec:
replicas: 5
template:
metadata:
labels:
app: task1deploy2
spec:
containers:
- name: node2task1
image: nginx
ports:
- containerPort: 80
Run Code Online (Sandbox Code Playgroud)
2.创建两个服务:
kubectl expose deployment task1deploy --namespace=shifali --type=LoadBalancer --name=my-service
kubectl expose deployment task1deploy2 --namespace=shifali --type=LoadBalancer --name=my-service2
Run Code Online (Sandbox Code Playgroud)
3.当你描述这些服务时,你会发现每个服务有 5 个端点(即 Pod):
kubectl describe service my-service --namespace=shifali
Run Code Online (Sandbox Code Playgroud)
名称:task1deploy
端点:10.32.0.12:80,10.32.0.7:80,10.32.0.8:80 + 3 更多...
和 service2 类似
6.现在去掉pod new11的标签,添加标签“app=task1deploy2”
kubectl label pods new11-68dfd7d4c8-64xhq --namespace=shifali app-
kubectl label pods new11-68dfd7d4c8-64xhq "app=task1deploy2" --namespace=Shifali
Run Code Online (Sandbox Code Playgroud)
现在服务将显示目标端口数量的变化(my_service=5 和 my_service2=7)
kubectl describe service my-service --namespace=Shifali
Run Code Online (Sandbox Code Playgroud)
端点:10.32.0.7:80,10.32.0.8:80,10.32.1.7:80 + 2 更多..
kubectl describe service my-service2 --namespace=Shifali
Run Code Online (Sandbox Code Playgroud)
名称:my-service2 端点:10.32.0.10:80,10.32.0.12:80,10.32.0.9:80 + 4 更多...
| 归档时间: |
|
| 查看次数: |
5945 次 |
| 最近记录: |