【发布时间】:2021-11-15 18:12:36
【问题描述】:
我正在 jenkins 阶段使用滚动滚动更新方法部署 kubernetes 清单文件,并且我使用 4 个 pod 副本配置了 maxSurgeand 和 maxUnavailable 值。在运行 jenkins 时,我的 kubernetes yaml 文件正在应用,但在部署后没有反映新的更改。
在这种情况下,我需要登录到我的 pod 正在运行的工作节点,然后我需要停止部署,然后我需要使用 docker rmi 命令来删除容器,最后我需要拉取最新的图像以反映新的变化.
詹金斯文件
stage('Deploy') {
container('kubectl') {
withCredentials([kubeconfigFile(credentialsId: 'KUBERNETES_CLUSTER_CONFIG', variable: 'KUBECONFIG')]) {
def kubectl
echo 'deploy to deployment!!'
if(gitBranch == "devops") {
kubectl = "kubectl --kubeconfig=${KUBECONFIG} --context=arn:aws:eks:eu-central-1:123456789101:cluster/my-modulus-cluster"
echo 'deploy to my-modulus-cluster!'
sh "kubectl apply -f ./infrastructure/dev/my.yaml -n default --record"
sh "kubectl rollout history deployment myapp"
}
}
}
}
这里是 k8 清单文件
apiVersion: apps/v1
kind: Deployment
metadata:
name: myapp
spec:
replicas: 2
selector:
matchLabels:
app: myapp
strategy:
type: RollingUpdate
rollingUpdate:
maxSurge: 1
maxUnavailable: 1
minReadySeconds: 5
template:
metadata:
labels:
app: myapp
spec:
backend
containers:
- name: myapp
image: myimage:latest
imagePullPolicy: Always
ports:
- containerPort: 3030
readinessProbe:
initialDelaySeconds: 1
periodSeconds: 2
timeoutSeconds: 1
successThreshold: 1
failureThreshold: 1
httpGet:
host:
scheme: HTTPS
path: /
httpHeaders:
- name: Host
value: myhost
port: 3030
【问题讨论】:
-
您使用的是哪个版本的 Kubernetes,您是如何设置集群的?您是使用裸机安装还是某些云提供商?
-
我正在使用 1.20 版的 AWS EKS 集群
-
什么意思:“部署后新的变化没有反映。”?究竟发生了什么?
-
部署后,新的应用代码变化没有体现
-
请列出您的 pod。他们活跃了多久?更新后有什么新东西吗?
标签: kubernetes