Mr *_*ect 0 containers docker kubernetes kubectl
Net Core 应用程序映像,我正在尝试在本地 kubernetes 中创建部署。我创建了 docker 镜像,如下所示。
docker tag microservicestest:dev microservicestest .
docker build -t microservicestest .
docker run -d -p 8080:80 --name myapp microservicetest
Run Code Online (Sandbox Code Playgroud)
然后我创建了部署,如下所示。
kubectl run microservicestest-deployment --image=microservicestest:latest --port 80 --replicas=3
kubectl expose deployment microservicestest-deployment --type=NodePort
Run Code Online (Sandbox Code Playgroud)
然后当我看到 Kubectl get pods 时,我看到以下错误
以下是我运行 docker images 时的输出
下面是输出
apiVersion: apps/v1
kind: Deployment
metadata:
annotations:
deployment.kubernetes.io/revision: "1"
creationTimestamp: "2020-09-22T04:29:14Z"
generation: 1
labels:
run: microservicestest-deployment
name: microservicestest-deployment
namespace: default
resourceVersion: "17282"
selfLink: /apis/apps/v1/namespaces/default/deployments/microservicestest-deployment
uid: bf75410a-d332-4016-9757-50d534114599
spec:
progressDeadlineSeconds: 600
replicas: 3
revisionHistoryLimit: 10
selector:
matchLabels:
run: microservicestest-deployment
strategy:
rollingUpdate:
maxSurge: 25%
maxUnavailable: 25%
type: RollingUpdate
template:
metadata:
creationTimestamp: null
labels:
run: microservicestest-deployment
spec:
containers:
- image: microservicestest:latest
imagePullPolicy: Always
name: microservicestest-deployment
ports:
- containerPort: 80
protocol: TCP
resources: {}
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
dnsPolicy: ClusterFirst
restartPolicy: Always
schedulerName: default-scheduler
securityContext: {}
terminationGracePeriodSeconds: 30
status:
conditions:
- lastTransitionTime: "2020-09-22T04:29:14Z"
lastUpdateTime: "2020-09-22T04:29:14Z"
message: Deployment does not have minimum availability.
reason: MinimumReplicasUnavailable
status: "False"
type: Available
- lastTransitionTime: "2020-09-22T04:29:14Z"
lastUpdateTime: "2020-09-22T04:29:14Z"
message: ReplicaSet "microservicestest-deployment-5c67d587b9" is progressing.
reason: ReplicaSetUpdated
status: "True"
type: Progressing
observedGeneration: 1
replicas: 3
unavailableReplicas: 3
updatedReplicas: 3
Run Code Online (Sandbox Code Playgroud)
我无法理解为什么我的 Pod 无法从本地提取图像。有人可以帮助我确定我在这里所做的问题吗?任何帮助,将不胜感激。谢谢
如果您使用的是 minikube,您首先需要在 minikube 机器托管的 docker 中构建映像,在 Windows 的 bash 会话中执行此操作,请eval $(minikube docker-env)检查此处
那么你需要告诉 Kubernetes 你的镜像拉取策略为 Never 或 IfNotPresent 来查找本地镜像
spec:
containers:
- image: my-image:my-tag
name: my-app
imagePullPolicy: Never
Run Code Online (Sandbox Code Playgroud)
在这里查看官方文档
By default, the kubelet tries to pull each image from the specified registry. However, if the imagePullPolicy property of the container is set to IfNotPresent or Never, then a local image is used (preferentially or exclusively, respectively).
Run Code Online (Sandbox Code Playgroud)
由于您没有使用 yaml 文件,因此您可以像这样创建资源
kubectl run microservicestest-deployment --image=microservicestest:latest --image-pull-policy=Never --port 80 --replicas=3
kubectl expose deployment microservicestest-deployment --type=NodePort
| 归档时间: |
|
| 查看次数: |
2459 次 |
| 最近记录: |