我试图遵循docker入门指南,但是当您必须使用kuberetes时,我会陷入困境。我正在使用microk8s创建集群。
我的Dockerfile:
FROM node:6.11.5WORKDIR /usr/src/app
COPY package.json .
RUN npm install
COPY . .
CMD [ "npm", "start" ]
我的bb.yaml:
apiVersion: apps/v1
kind: Deployment
metadata:
name: bb-demo
namespace: default
spec:
replicas: 1
selector:
matchLabels:
bb: web
template:
metadata:
labels:
bb: web
spec:
containers:
- name: bb-site
image: bulletinboard:1.0
---
apiVersion: v1
kind: Service
metadata:
name: bb-entrypoint
namespace: default
spec:
type: NodePort
selector:
bb: web
ports:
- port: 8080
targetPort: 8080
nodePort: 30001
我用
创建图像docker image build -t bulletinboard:1.0 .
然后我用以下命令创建pod和服务:
microk8s.kubectl apply -f bb.yaml
已创建吊舱,但是,当我使用
查找吊舱的状态时microk8s.kubectl get all
它说:
NAME READY STATUS RESTARTS AGE
pod/bb-demo-7ffb568776-6njfg 0/1 ImagePullBackOff 0 11m
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/bb-entrypoint NodePort 10.152.183.2 <none> 8080:30001/TCP 11m
service/kubernetes ClusterIP 10.152.183.1 <none> 443/TCP 4d
NAME READY UP-TO-DATE AVAILABLE AGE
deployment.apps/bb-demo 0/1 1 0 11m
NAME DESIRED CURRENT READY AGE
replicaset.apps/bb-demo-7ffb568776 1 1 0 11m
此外,当我在kubernetes仪表板上查找它时,它会说:
无法提取映像“ bulletinboard:1.0”:rpc错误:代码=未知desc =未能解析映像“ docker.io/library/bulletinboard:1.0”:没有可用的注册表端点:拒绝提取访问,存储库不存在或可能需要授权:服务器消息:不足_作用域:授权失败
问:为什么会出现此错误?我只是遵循本教程,没有跳过任何内容。
我已经使用docker登录了。
答案 0 :(得分:4)
您需要将此本地构建的映像推送到Docker Hub注册表。为此,如果您还没有一个Docker Hub帐户,则需要创建一个。
完成该操作后,您需要从命令行登录Docker Hub。
docker login
标记您的映像,以便将其转到您的Docker Hub存储库。
docker tag bulletinboard:1.0 <your docker hub user>/bulletinboard:1.0
将图像推送到Docker Hub
docker push <your docker hub user>/bulletinboard:1.0
更新yaml文件以反映Docker Hub上的新映像仓库。
spec:
containers:
- name: bb-site
image: <your docker hub user>/bulletinboard:1.0
重新应用yaml文件
microk8s.kubectl apply -f bb.yaml
答案 1 :(得分:3)
如果您不想使用Docker集线器,则可以托管本地注册表服务器。
docker run -d -p 5000:5000 --restart=always --name registry registry:2
sudo docker tag bulletinboard:1.0 localhost:5000/bulletinboard
sudo docker push localhost:5000/bulletinboard
yaml
文件:spec:
containers:
- name: bb-site
image: localhost:5000/bulletinboard
kubectl apply -f bb.yaml
答案 2 :(得分:0)