与k8s相关yaml文件

在gitlab所要发布的项目根目录中添加如下两个文件:

summer-deployment.tpl文件内容如下:
apiVersion: apps/v1
kind: Deployment
metadata:
  name: {APP_NAME}-deployment
  labels:
    app: {APP_NAME}
spec:
  replicas: 1
  selector:
    matchLabels:
      app: {APP_NAME}
  template:
    metadata:
      labels:
        app: {APP_NAME}
    spec:
      containers:
      - name: {APP_NAME}
        image: {IMAGE_URL}:{IMAGE_TAG}    #拉取镜像的地址
        imagePullPolicy: IfNotPresent
        ports:
        - containerPort: 10000
      imagePullSecrets:
      - name: registry-harbor             #这里是去拉取harbor镜像库的secret凭证,在上面“harbor部暑”中创建的
summer-svc.tpl文件内容如下:
apiVersion: v1
kind: Service
metadata:
  name: {APP_NAME}-svc
  labels:
    name: {APP_NAME}
spec:
  type: NodePort
  ports:
  - port: 10000                           #k8s集群内部服务之间访问service的入口
    protocol: TCP
    targetPort: 10000                     #pod上的端口
    name: http
    nodePort: 30000                       #提供给外部流量访问k8s集群中service的入口
  selector:
    app: {APP_NAME}                       #关联Deployment的标签,注意别写错,要不service关联不上!

注意:service中的 selector一定要跟deployment中的labels一样,要不服务就关联不上pod,我就因为这个写错,出现的现状就是可以通过 podIP + targetPort 访问到项目,但通过集群的 nodeIP + nodeport 访问不到项目。

文档更新时间: 2020-07-01 10:35   作者:子木