我正在努力使用Helm Charts和Gitlab Auto Devops将应用程序部署到GKE。我觉得我已经取得了很大的进步,但是我已经达到了我似乎无法弄清的东西。
我现在只有两个阶段,即“构建”和“生产”。在“生产”阶段,它在部署到消息为Error from server (NotFound): deployments.extensions "production" not found
的Kubernetes后失败。我看过类似的SO问题,但似乎无法将其解决方案与我的环境相匹配。我是整个kubernetes的新手,我正在竭尽全力将事情拼凑起来,一次解决一个问题...而且有很多问题!
这是我的deployment.yml
文件。我使用kompose开始使用Helm图表。
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
annotations:
kompose.cmd: kompose convert -c
kompose.version: 1.19.0 ()
creationTimestamp: null
labels:
io.kompose.service: api
name: api
spec:
replicas: 1
strategy:
type: Recreate
template:
metadata:
namespace: {{ .Release.Namespace }}
annotations:
kompose.cmd: kompose convert -c
kompose.version: 1.19.0 ()
creationTimestamp: null
labels:
io.kompose.service: api
spec:
imagePullSecrets:
- name: gitlab-registry
containers:
- image: git.company.com/company/inventory-api
name: api
env:
- name: RAILS_ENV
value: "production"
ports:
- containerPort: 5000
resources: {}
volumeMounts:
- mountPath: /app
name: api-claim0
restartPolicy: Always
volumes:
- name: api-claim0
persistentVolumeClaim:
claimName: api-claim0
status: {}
答案 0 :(得分:1)
我发现this线程也存在同样的问题,并最终弄清楚了如何使其对我有用。
必须将根级别元数据中的部署名称从“ api”更改为匹配Gitlab中的部署环境。在我的情况下,我必须将其更改为“生产”,然后正确部署它。
答案 1 :(得分:0)
这里有很多自动化步骤,其中任何一个都可能隐藏了问题。我很想一次运行一个阶段并建立自动化。
例如首先,我将尝试通过您计算机上的kubectl将yaml清单文件手动部署到群集中。
我还发现,GitLab Auto DevOps和GitLab Kubernetes集成特别难以使用,并且倾向于在kubetcl更高效率的情况下使用手动配置。