一、openkruise的rollout类
例:
apiVersion: rollouts.kruise.io/v1beta1
kind: Rollout
metadata:
annotations:
kubectl.kubernetes.io/last-applied-configuration: >
{"apiVersion":"rollouts.kruise.io/v1alpha1","kind":"Rollout","metadata":{"annotations":{"rollouts.kruise.io/rolling-style":"partition"},"name":"aiart-api","namespace":"aiart-release"},"spec":{"objectRef":{"workloadRef":{"apiVersion":"apps/v1","kind":"Deployment","name":"aiart-api"}},"strategy":{"canary":{"patchPodTemplateMetadata":{"labels":{"canary-gray":"gray","version":"canary"}},"steps":[{"matches":[{"headers":[{"name":"User-Agent","type":"Exact","value":"test"}]}],"pause":{},"replicas":3}],"trafficRoutings":[{"ingress":{"name":"aiart-api"},"service":"aiart-api"}]}}}}
rollouts.kruise.io/hash: fvb4f5bv5w4z88b4zcvb8c27v487wzcvfczd8d9684zd4bczcz984cx4fc7vw478
rollouts.kruise.io/rolling-style: partition
creationTimestamp: '2025-08-23T15:08:24Z'
finalizers:
- rollouts.kruise.io/rollout
generation: 1
managedFields:
- apiVersion: rollouts.kruise.io/v1beta1
fieldsType: FieldsV1
fieldsV1:
f:metadata:
f:annotations:
f:rollouts.kruise.io/hash: {}
f:finalizers:
.: {}
v:"rollouts.kruise.io/rollout": {}
manager: kruise-rollout
operation: Update
time: '2025-08-23T15:08:24Z'
- apiVersion: rollouts.kruise.io/v1alpha1
fieldsType: FieldsV1
fieldsV1:
f:metadata:
f:annotations:
.: {}
f:kubectl.kubernetes.io/last-applied-configuration: {}
f:rollouts.kruise.io/rolling-style: {}
f:spec:
.: {}
f:disabled: {}
f:objectRef:
.: {}
f:workloadRef:
.: {}
f:apiVersion: {}
f:kind: {}
f:name: {}
f:strategy:
.: {}
f:canary:
.: {}
f:patchPodTemplateMetadata:
.: {}
f:labels:
.: {}
f:canary-gray: {}
f:version: {}
f:steps: {}
f:trafficRoutings: {}
manager: kubectl-client-side-apply
operation: Update
time: '2025-08-23T15:08:24Z'
- apiVersion: rollouts.kruise.io/v1beta1
fieldsType: FieldsV1
fieldsV1:
f:status:
f:canaryStatus:
.: {}
f:canaryReadyReplicas: {}
f:canaryReplicas: {}
f:canaryRevision: {}
f:currentStepIndex: {}
f:currentStepState: {}
f:lastUpdateTime: {}
f:message: {}
f:observedWorkloadGeneration: {}
f:podTemplateHash: {}
f:rolloutHash: {}
f:stableRevision: {}
f:conditions: {}
f:message: {}
f:observedGeneration: {}
f:phase: {}
manager: kruise-rollout
operation: Update
subresource: status
time: '2025-11-10T18:08:00Z'
name: aiart-api
namespace: aiart-release
resourceVersion: '1762798080730751022'
uid: 8f72d127-81a2-43d7-97a3-6837547b8b15
spec:
disabled: false
strategy:
canary:
enableExtraWorkloadForCanary: true
patchPodTemplateMetadata:
labels:
canary-gray: gray
version: canary
steps:
- matches:
- headers:
- name: User-Agent
type: Exact
value: test
pause: {}
replicas: 3
trafficRoutings:
- ingress:
name: aiart-api
service: aiart-api
workloadRef:
apiVersion: apps/v1
kind: Deployment
name: aiart-api
status:
canaryStatus:
canaryReadyReplicas: 3
canaryReplicas: 3
canaryRevision: ccd8c9847
currentStepIndex: 1
currentStepState: Completed
lastUpdateTime: '2025-11-10T18:07:56Z'
message: BatchRelease is at state Ready, rollout-id , step 1
observedWorkloadGeneration: 7178
podTemplateHash: 7bbdc44597
rolloutHash: fvb4f5bv5w4z88b4zcvb8c27v487wzcvfczd8d9684zd4bczcz984cx4fc7vw478
stableRevision: 776cf867b9
conditions:
- lastTransitionTime: '2025-11-10T17:40:05Z'
lastUpdateTime: '2025-11-10T17:40:05Z'
message: Rollout progressing has been completed
reason: Completed
status: 'False'
type: Progressing
- lastTransitionTime: '2025-11-10T18:08:00Z'
lastUpdateTime: '2025-11-10T18:08:00Z'
message: ''
reason: ''
status: 'True'
type: Succeeded
message: Rollout progressing has been completed
observedGeneration: 1
phase: Healthy
二、ingrss配置
例:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
annotations:
field.cattle.io/publicEndpoints: >-
[{"addresses":["34.168.85.167"],"port":80,"protocol":"HTTP","serviceName":"aiart-release:aiart-api","ingressName":"aiart-release:aiart-api","hostname":"aiart-api.prod.seaart.ai","path":"/","allNodes":false},{"addresses":["34.168.85.167"],"port":80,"protocol":"HTTP","serviceName":"aiart-release:aiart-api","ingressName":"aiart-release:aiart-api","hostname":"aiart-api.prod.seaart.ai","path":"/debug/pprof/","allNodes":false}]
nginx.ingress.kubernetes.io/whitelist-source-range: >-
10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,16.162.141.124,101.207.35.85,222.212.90.200,43.249.96.212,43.249.96.186,130.211.0.0/22,35.191.0.0/16,209.85.152.0/22,121.4.125.122,113.89.34.28,35.227.181.116,34.145.9.214,171.223.215.48,112.195.201.166,34.31.89.96,171.223.215.95,101.204.70.131,101.204.187.50
creationTimestamp: '2024-01-05T03:24:30Z'
generation: 4
managedFields:
- apiVersion: networking.k8s.io/v1
fieldsType: FieldsV1
fieldsV1:
f:status:
f:loadBalancer:
f:ingress: {}
manager: nginx-ingress-controller
operation: Update
subresource: status
time: '2024-01-05T03:25:23Z'
- apiVersion: networking.k8s.io/v1
fieldsType: FieldsV1
fieldsV1:
f:metadata:
f:annotations:
.: {}
f:field.cattle.io/publicEndpoints: {}
f:nginx.ingress.kubernetes.io/whitelist-source-range: {}
f:spec:
f:ingressClassName: {}
f:rules: {}
manager: agent
operation: Update
time: '2025-08-11T02:02:09Z'
name: aiart-api
namespace: aiart-release
resourceVersion: '1211032346'
uid: 23330b89-280c-400a-a73d-a93c42670a7c
spec:
ingressClassName: nginx
rules:
- host: aiart-api.prod.seaart.ai
http:
paths:
- backend:
service:
name: aiart-api
port:
number: 8080
path: /
pathType: Prefix
- backend:
service:
name: aiart-api
port:
number: 8081
path: /debug/pprof/
pathType: Prefix
status:
loadBalancer:
ingress:
- ip: 34.168.85.167
浙公网安备 33010602011771号