Spinnaker部署並實現CD


Spinnaker

概述

部署

交付minio

1. harbor上創建armory私有倉庫

1 docker pull minio/minio:latest
2 docker tag 703bd3096c96 harbor.od.com/armory/minio:latest
3 docker push harbor.od.com/armory/minio:latest

2. 創建k8s集群secret資源

1 kubectl create ns armory
2 kubectl create secret docker-registry harbor --docker-server=harbor.od.com --docker-username=admin --docker-password=1 -n armory

3. 准備資源配置清單

mkdir /data/k8s-yaml/minio
mkdir /data/nfs-volume/minio
cd /data/nfs-volume/minio
vi dp.yaml

kind: Deployment
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  labels:
    name: minio
  name: minio
  namespace: armory
spec:
  progressDeadlineSeconds: 600
  replicas: 1
  revisionHistoryLimit: 7
  selector:
    matchLabels:
      name: minio
  template:
    metadata:
      labels:
        app: minio
        name: minio
    spec:
      containers:
      - name: minio
        image: harbor.od.com/armory/minio:latest
        imagePullPolicy: IfNotPresent
        ports:
        - containerPort: 9000
          protocol: TCP
        args:
        - server
        - /data
        env:
        - name: MINIO_ACCESS_KEY
          value: admin
        - name: MINIO_SECRET_KEY
          value: admin123
        readinessProbe:
          failureThreshold: 3
          httpGet:
            path: /minio/health/ready
            port: 9000
            scheme: HTTP
          initialDelaySeconds: 10
          periodSeconds: 10
          successThreshold: 1
          timeoutSeconds: 5
        volumeMounts:
        - mountPath: /data
          name: data
      imagePullSecrets:
      - name: harbor
      volumes:
      - nfs:
          server: ecs182-149
          path: /data/nfs-volume/minio
        name: data
vi svc.yaml

apiVersion: v1
kind: Service
metadata:
  name: minio
  namespace: armory
spec:
  ports:
  - port: 80
    protocol: TCP
    targetPort: 9000
  selector:
    app: minio
vi ingress.yaml

kind: Ingress
apiVersion: extensions/v1beta1
metadata: 
  name: minio
  namespace: armory
spec:
  rules:
  - host: minio.od.com
    http:
      paths:
      - path: /
        backend: 
          serviceName: minio
          servicePort: 80

4. 內網配置bind地址解析

minio              A    172.26.28.194
systemctl restart named

 交付緩存redis

1. 下載鏡像

1 docker pull redis:4.0.14
2 docker tag f54239c50400 harbor.od.com/armory/redis:v4.0.14
3 docker push harbor.od.com/armory/redis:v4.0.14

2. 創建目錄,准備資源配置清單

mkdir /data/k8s-yaml/redis
cd /data/k8s-yaml/redis/
 1 vi dp.yaml
 2 
 3 kind: Deployment
 4 apiVersion: extensions/v1beta1
 5 kind: Deployment
 6 metadata:
 7   labels:
 8     name: redis
 9   name: redis
10   namespace: armory
11 spec:
12   replicas: 1
13   revisionHistoryLimit: 7
14   selector:
15     matchLabels:
16       name: redis
17   template:
18     metadata:
19       labels:
20         app: redis
21         name: redis
22     spec:
23       nodeName: ecs28-201.host.name
24       containers:
25       - name: redis
26         image: harbor.od.com/armory/redis:v4.0.14
27         imagePullPolicy: IfNotPresent
28         ports:
29         - containerPort: 6379
30           protocol: TCP
31       imagePullSecrets:
32       - name: harbor
 1 # 創建service的原因是通過k8s集群內部使用service名字連接redis服務
 2 vi svc.yaml
 3 
 4 apiVersion: v1
 5 kind: Service
 6 metadata:
 7   name: redis
 8   namespace: armory
 9 spec:
10   ports:
11   - port: 6379
12     protocol: TCP
13     targetPort: 6379
14   selector:
15     app: redis

 交付成功,模擬自動化場景。

1. 將test和prod名稱空間的pod調整為0再刪除

 

 

 

 

 

頁面會出現抖動情況,將瀏覽器分辨率調整為125%即可解決。

 

 

 

 

添加流水線參數

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

如果構建時出現jenkins job 404情況,需要配置jenkins

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

filebeat

 

 

 

 修改deployjson文件,將鏡像寫成變量方式

1 "imageId": "harbor.od.com/${parameters.image_name}:${parameters.git_ver}_${parameters.add_tag}",
2 "registry": "harbor.od.com",
3 "repository": "${parameters.image_name}",
4 "tag": "${parameters.git_ver}_${parameters.add_tag}"

 

 

 保存之后再次構建

 

 

需要對外訪問的customer的配置ingress和svc

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM