gpt4 book ai didi

docker - Kubernetes:代码变化没有出现,有同步的方法吗?

转载 作者:行者123 更新时间:2023-12-02 11:52:19 26 4
gpt4 key购买 nike

Dockerfile我提到的音量如下:
COPY src/ /var/www/html/但不知何故,我的代码更改不像以前只在 Docker 上那样出现。除非我删除 Pod,否则它不会出现。怎么同步呢?

我正在使用 minikube。

webserver.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
name: webserver
labels:
app: apache
spec:
replicas: 3
selector:
matchLabels:
app: apache
template:
metadata:
labels:
app: apache
spec:
containers:
- name: php-apache
image: learningk8s_website
imagePullPolicy: Never
ports:
- containerPort: 80

最佳答案

当您的容器规范说:

image: learningk8s_website
imagePullPolicy: Never

第二次你 kubectl apply它,Kubernetes 确定它与您已经拥有的部署规范完全相同并且什么都不做。即使它确实生成了新的 Pod,服务器也很可能会注意到它已经有一个图像 learningk8s_website:latest并且不会拉新的;事实上,你明确告诉 Kubernetes 不要这样做。

通常的做法是在图像名称中包含一些唯一标识符,例如日期戳或提交哈希。
IMAGE=$REGISTRY/name/learningk8s_website:$(git rev-parse --short HEAD)
docker build -t "$IMAGE" .
docker push "$IMAGE"

然后您需要在部署规范和 kubectl apply 中进行相应的更改。它。这将导致 Kubernetes 注意到 pod 规范有一些变化,使用新镜像创建新的 pod,并销毁旧的 pod(按此顺序)。您可能会找到一个模板引擎,如 Helm有助于更轻松地将此值注入(inject) YAML。

关于docker - Kubernetes:代码变化没有出现,有同步的方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54041693/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com