gau*_*tri 14 docker kubernetes
我创建了自定义 Docker 镜像并存储在本地系统中,现在我想通过 kubectl 使用该 Docker 镜像。
Docker 镜像:- 1:- docker build -t backend:v1 。
然后 Kubernetes 文件:-
apiVersion: apps/v1beta1
kind: Deployment
metadata:
creationTimestamp: null
labels:
app: backend
namespace: web-console
spec:
replicas: 1
strategy: {}
template:
metadata:
creationTimestamp: null
labels:
app: backend
spec:
containers:
- env:
- name: mail_auth_pass
- name: mail_auth_user
- name: mail_from
- name: mail_greeting
- name: mail_service
- name: mail_sign
- name: mongodb_url
value: mongodb://mongodb.mongodb.svc.cluster.local/console
- name: server_host
value: "0.0.0.0"
- name: server_port
value: "3000"
- name: server_sessionSecret
value: "1234"
image: backend
imagePullPolicy: Never
name: backend
resources: {}
restartPolicy: Always
status: {}
Run Code Online (Sandbox Code Playgroud)
运行 kubectl 的命令:
kubectl create -f backend-deployment.yaml
Run Code Online (Sandbox Code Playgroud)
得到错误:
error: error validating "backend-deployment.yaml": error validating data: [ValidationError(Deployment.spec.template.spec.containers[0].env[9]): unknown field "image" in io.k8s.api.core.v1.EnvVar, ValidationError(Deployment.spec.template.spec.containers[0].env[9]): unknown field "imagePullPolicy" in io.k8s.api.core.v1.EnvVar]; if you choose to ignore these errors, turn validation off with --validate=false
Run Code Online (Sandbox Code Playgroud)
Ama*_*ino 29
首先使用此命令设置本地注册表
docker run -d -p 5000:5000 --restart=always --name registry registry:2
给定 a Dockerfile,可以通过以下简单的方式构建和标记图像:
docker build . -t localhost:5000/my-image
将镜像推送到本地仓库:
docker push localhost:5000/my-image
现在可以使用推送的图像:
apiVersion: v1
kind: Pod
metadata:
name: my-pod
labels:
app: my-app
spec:
containers:
- name: app
image: localhost:5000/my-image
imagePullPolicy: IfNotPresent
Run Code Online (Sandbox Code Playgroud)
可以使用以下方式部署 Pod:
kubectl create -f pod.yml
希望这能派上用场:)
正如错误指定的那样unknown field "image" and unknown field "imagePullPolicy"
您的 kubernetes 部署文件中存在语法错误。
在 yaml 文件中进行这些更改。
apiVersion: apps/v1beta1
kind: Deployment
metadata:
creationTimestamp: null
labels:
app: backend
namespace: web-console
spec:
replicas: 1
strategy: {}
template:
metadata:
creationTimestamp: null
labels:
app: backend
spec:
containers:
- name: backend
image: backend
imagePullPolicy: Never
env:
- name: mail_auth_pass
- name: mail_auth_user
- name: mail_from
- name: mail_greeting
- name: mail_service
- name: mail_sign
- name: mongodb_url
value: mongodb://mongodb.mongodb.svc.cluster.local/console
- name: server_host
value: "0.0.0.0"
- name: server_port
value: "3000"
- name: server_sessionSecret
value: "1234"
resources: {}
restartPolicy: Always
status: {}
Run Code Online (Sandbox Code Playgroud)
使用https://kubeyaml.com/在线验证您的 kubernetes yaml 文件
或者与kubectl apply --validate=true --dry-run=true -f deployment.yaml
希望这可以帮助。
| 归档时间: |
|
| 查看次数: |
29690 次 |
| 最近记录: |