开发者社区> 问答> 正文

Kubernetes:代码更改没有出现,是否有同步方法?

在Dockerfile我提到的volume如下:

COPY src/ /var/www/html/但不知何故,我的代码更改似乎不像以前只使用Docker。除非我删除Pods,否则它不会出现。如何同步?

我正在使用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

展开
收起
k8s小能手 2019-01-09 13:56:59 2869 0
1 条回答
写回答
取消 提交回答
  • 整合最优质的专家资源和技术资料,问答解疑

    当您的容器规格说:

    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这样的模板引擎可以更容易地将此​​值注入YAML。

    2019-07-17 23:24:57
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
ACK 云原生弹性方案—云原生时代的加速器 立即下载
ACK集群类型选择最佳实践 立即下载
企业运维之云原生和Kubernetes 实战 立即下载

相关镜像