使用Kubernetes部署Node.js应用程序
我试图部署一个非常基本的Express应用程序,一个在EC2服务器(Ubuntu 16.04)上监听8080的小型服务器。在该服务器上,它是通过kops 1.8.0创建的Kubernetes集群。 之后,我创建了一个Dockerfile,如下所示:使用Kubernetes部署Node.js应用程序,kubernetes,Kubernetes,我试图部署一个非常基本的Express应用程序,一个在EC2服务器(Ubuntu 16.04)上监听8080的小型服务器。在该服务器上,它是通过kops 1.8.0创建的Kubernetes集群。 之后,我创建了一个Dockerfile,如下所示: FROM node:carbon ENV NPM_CONFIG_PREFIX=/home/node/.npm-global ENV PATH=$PATH:/home/node/.npm-global/bin # Create app direct
FROM node:carbon
ENV NPM_CONFIG_PREFIX=/home/node/.npm-global
ENV PATH=$PATH:/home/node/.npm-global/bin
# Create app directory
WORKDIR /usr/src/app
# A wildcard is used to ensure both package.json AND package-lock.json are copied
# where available (npm@5+)
COPY package*.json ./
RUN npm install
# Bundle app source
COPY . .
EXPOSE 8080
CMD [ "node", "server.js" ]
# At the end, set the user to use when running this image
USER node
之后,我用docker build-t ccastelli/dumby_server:test1
构建了映像,我用docker login-u ccastelli
指定了我的凭证,我从docker images
复制了映像ID,将其标记为docker tag c549618dcd86 org/test:first_try并在中的私有存储库上使用docker push org/test
推送
之后,我用kubectl create secret docker registry ccastelli regcred--docker server=docker.com--docker username=ccastelli--docker password='pass'--docker email创建了一个集群密码=myemail@gmail.com
之后,我创建了一个部署文件:
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: stupid-server-deployment
spec:
replicas: 1
template:
metadata:
labels:
app: stupid-server
spec:
containers:
- name: stupid-server
image: org/test:first_try
imagePullPolicy: Always
ports:
- containerPort: 8080
imagePullSecrets:
- name: ccastelli-regcred
我从kubectl get pods
中看到图像从ErrPullImage
转换为ImagePullBackOff
,但它还没有准备好。无论如何,docker容器在客户端实例上工作,但不在集群中。在这一点上,我有点迷路了。我做错了什么?
谢谢
编辑:消息错误:
无法提取图像“org/test:first\u try”:rpc错误:代码=
Unknown desc=来自守护程序的错误响应:存储库pycomio/test not
找到:不存在或没有拉取访问权限
您的--docker服务器应该是index.docker.io
DOCKER_REGISTRY_SERVER=https://index.docker.io/v1/
DOCKER_USER=Type your dockerhub username, same as when you `docker login`
DOCKER_EMAIL=Type your dockerhub email, same as when you `docker login`
DOCKER_PASSWORD=Type your dockerhub pw, same as when you `docker login`
kubectl create secret docker-registry myregistrykey \
--docker-server=$DOCKER_REGISTRY_SERVER \
--docker-username=$DOCKER_USER \
--docker-password=$DOCKER_PASSWORD \
--docker-email=$DOCKER_EMAIL
您是否托管docker私有存储库?如果是这样,则k8s群集1可以正常工作。正确解析域,然后执行2。可以到达端口吗?私有repo位于cloud.docker.com上,我已添加了从仪表板上获得的错误。请尝试将您的机密更新到
--docker server=https://cloud.docker.com
或者你的容器图片:cloud.docker.com/org/test
或者诸如此类如果你是对的,我也找到了这个答案