kubernetes - kubernetes 使用 YAML 时如何知道镜像在哪里?
问题描述
打包 mvn 项目后,我被要求使用以下 YAML 文件和以下命令来部署它们
kubectl apply -f kubernetes.yaml
这是 kubernetes.yaml 的内容:
apiVersion: apps/v1
kind: Deployment
metadata:
name: system-deployment
labels:
app: system
spec:
selector:
matchLabels:
app: system
template:
metadata:
labels:
app: system
spec:
containers:
- name: system-container
image: system:1.0-SNAPSHOT
ports:
- containerPort: 9080
readinessProbe:
httpGet:
path: /health/ready
port: 9080
initialDelaySeconds: 30
periodSeconds: 10
timeoutSeconds: 3
failureThreshold: 1
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: inventory-deployment
labels:
app: inventory
spec:
selector:
matchLabels:
app: inventory
template:
metadata:
labels:
app: inventory
spec:
containers:
- name: inventory-container
image: inventory:1.0-SNAPSHOT
ports:
- containerPort: 9080
readinessProbe:
httpGet:
path: /health/ready
port: 9080
initialDelaySeconds: 30
periodSeconds: 10
timeoutSeconds: 3
failureThreshold: 1
---
apiVersion: v1
kind: Service
metadata:
name: system-service
spec:
type: NodePort
selector:
app: system
ports:
- protocol: TCP
port: 9080
targetPort: 9080
nodePort: 31000
---
apiVersion: v1
kind: Service
metadata:
name: inventory-service
spec:
type: NodePort
selector:
app: inventory
ports:
- protocol: TCP
port: 9080
targetPort: 9080
nodePort: 32000
我对这种 YAML 文件没有任何经验。我没有看到 mvn /target 文件夹的任何路径。但是这两个应用程序现在都在 kubernetes 中运行,我可以在内部 curl 不同的应用程序并获得回复。
毫无疑问,它以某种方式链接,因为如果我不打包 mvn 项目,它就不起作用,但我想知道 YAML 的哪个部分找到了工件。
解决方案
如果你输入
docker info
你会看到类似的东西
Name: minikube
在输出中:这意味着您的 docker 构建是由 minikube 守护进程完成的。这是为 kubernetes 部署运行容器的同一个守护进程,所以发生的情况是,当您kubectl apply
进行 YAML 配置时,该守护进程已经在本地拥有映像:它不需要从注册表中提取它。
推荐阅读
- amazon-ec2 - 如何在不丢失任何配置的情况下将实例移动到另一个区域?
- python - 确定 pca 分析中 n_components 变量的值
- json - 将json读入django错误
- git - Bitbucket 垃圾收集过程会降低服务器性能
- security - 私钥如何安全分发?
- sql - 如何加快这个 SQL 查询?
- python - TensorFlow 1.6 中的 SSD_MOBILENET V1 到 TensorRT
- observablecollection - 如何判断 ObservableCollection 现在是否在 CollectionChanged 事件中?
- python - 如何从循环链表中删除重复项
- linux - Linux“echo -n”没有被刷新