Điểm:0

Cửa sổ lỗi triển khai xanh lam/xanh lục GKE Kubernetes

lá cờ ua

Chúng tôi có một cụm container với chế độ: Autopilot đang chạy trong GKE. Chúng tôi hiện đang nhận được lỗi trong một cửa sổ ngắn khi thực hiện triển khai "xanh lam/xanh lục" từ Jenkins.

Khi chúng tôi chuyển dịch vụ sang triển khai mới, có một cửa sổ dưới 100 mili giây sẽ tạo ra lỗi sau.

<html><head>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<title>502 Server Error</title>
</head>
<body text=#000000 bgcolor=#ffffff>
<h1>Error: Server Error</h1>
<h2>The server encountered a temporary error and could not complete your request.<p>Please try again in 30 seconds.</h2>
<h2></h2>
</body></html>

Tôi cho rằng điều này là do một trong các nhóm chưa được khởi động nhưng vẫn bắt đầu định tuyến lưu lượng truy cập đến quá trình triển khai.

Chúng tôi kiểm tra xem triển khai có được triển khai sau khi triển khai được tạo như thế này không.

Với plugin Jenkins: https://github.com/jenkinsci/google-kubernetes-engine-plugin Chúng ta có xác minh triển khai thuộc tính được đặt thành thật.

bước chân([
  $class: 'KubernetesEngineBuilder',
  projectId: env.PROJECT_ID,
  tên cụm: env.CLUSTER_NAME,
  không gian tên: env.NAMESPACE,
  vị trí: env.CLUSTER_LOCATION,
  manifestPotype: './apps/app/deployments/green.yaml',
  thông tin xác thựcId: env.APP_CREDENTIALS_ID,
  verifyDeployments: true
])

Chúng tôi cũng bao gồm một kiểm tra thứ hai để thực sự xác minh rằng việc triển khai đã được triển khai. Rõ ràng plugin Jenkins dường như không thực hiện điều này một cách đáng tin cậy.

trạng thái triển khai triển khai kubectl app-deployment --namespace app-namespace --watch --timeout=5m

Chúng tôi cũng nhận thấy rằng có thể xảy ra lỗi khi triển khai và một dịch vụ vẫn được tạo ở bước tiếp theo, điều này sẽ làm hỏng ứng dụng, nhưng đây là một trường hợp khác mà chúng tôi cần tìm ra cách giải quyết, có thể liên quan đến plugin Jenkins.

Của chúng ta triển khai YAML trông như thế này:

apiVersion: ứng dụng/v1
loại: Triển khai
metadata:
  tên: ứng dụng-màu xanh
  không gian tên: ứng dụng
  nhãn: {app.kubernetes.io/managed-by: graphite-jenkins-gke}
thông số kỹ thuật:
  tiến trìnhDeadlineSeconds: 600
  bản sao: 3
  bộ chọn:
    matchLabels: {app: app-blue}
  mẫu:
    metadata:
      nhãn: {app: app-blue}
    thông số kỹ thuật:
      automountServiceAccountToken: đúng
      hộp đựng:
        hình ảnh: eu.gcr.io/container-registry-project/app:latest
        imagePullPolicy: Luôn luôn
        tên: ứng dụng
        cổng:
        - {containerPort: 8080, tên: http, giao thức: TCP}
        livenessProbe:
          httpNhận:
            đường dẫn: /sức khỏe
            cổng: 8080
          ban đầuDelaySeconds: 15
          chu kỳGiây: 10
        sẵn sàngThăm dò:
          httpNhận:
            con đường: /
            cổng: 8080
          ban đầuDelaySeconds: 15
          chu kỳGiây: 5
        tài nguyên:
          giới hạn: {cpu: 500m, bộ nhớ tạm thời: 1Gi, bộ nhớ: 512Mi}
          yêu cầu: {cpu: 500m, bộ lưu trữ tạm thời: 1Gi, bộ nhớ: 512Mi}
        bối cảnh bảo mật:
          allowPrivilegeEscalation: sai
          khả năng:
            thả: [NET_RAW]
          đặc quyền: sai
          readOnlyRootFilesystem: sai
          runAsNonRoot: sai
      restartPolicy: Luôn luôn
      tên bộ lập lịch: bộ lập lịch mặc định
      tài khoản dịch vụ: ứng dụng
      serviceAccountName: ứng dụng

Của chúng ta dịch vụ YAML trông như thế này:

phiên bản api: v1
loại: Dịch vụ
metadata:
  tên: dịch vụ ứng dụng
  không gian tên: ứng dụng
thông số kỹ thuật:
  bộ chọn:
    ứng dụng: ứng dụng-màu xanh
  cổng:
    - giao thức: TCP
      cổng: 80
      cổng mục tiêu: 8080

Chúng tôi chỉ cần chuyển bộ chọn - ứng dụng: trong dịch vụ, sang triển khai ứng dụng xanh lam hoặc ứng dụng xanh lục để chuyển sang triển khai mới, nhưng luôn gặp một cửa sổ lỗi nhỏ khi thực hiện việc này, bất kỳ ai cũng biết chúng tôi đang làm gì làm sai?

Sergiusz avatar
lá cờ lv
Bạn đã thử tăng initialDelay trên readyProbe chưa?

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.