gpt4 book ai didi

kubernetes 连接在部署期间被拒绝

转载 作者:行者123 更新时间:2023-12-04 01:30:19 26 4
gpt4 key购买 nike

我正在尝试使用 kubernetes 实现零停机部署,但在我的测试期间,服务负载平衡不佳。

我的 kubernetes list 是:

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: myapp-deployment
spec:
replicas: 3
strategy:
type: RollingUpdate
rollingUpdate:
maxUnavailable: 0
maxSurge: 1
template:
metadata:
labels:
app: myapp
version: "0.2"
spec:
containers:
- name: myapp-container
image: gcr.io/google-samples/hello-app:1.0
imagePullPolicy: Always
ports:
- containerPort: 8080
protocol: TCP
readinessProbe:
httpGet:
path: /
port: 8080
initialDelaySeconds: 5
periodSeconds: 5
successThreshold: 1

---

apiVersion: v1
kind: Service
metadata:
name: myapp-lb
labels:
app: myapp
spec:
type: LoadBalancer
externalTrafficPolicy: Local
ports:
- port: 80
targetPort: 8080
selector:
app: myapp

如果我使用外部 IP 循环服务,假设:

$ kubectl get services
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.35.240.1 <none> 443/TCP 1h
myapp-lb LoadBalancer 10.35.252.91 35.205.100.174 80:30549/TCP 22m

使用 bash 脚本:

while True
do
curl 35.205.100.174
sleep 0.2s
done

我在部署期间收到一些连接被拒绝:

curl: (7) Failed to connect to 35.205.100.174 port 80: Connection refused

应用默认为helloapp由 Google Cloud Platform 提供并在 8080 上运行。

集群信息:

  • Kubernetes 版本:1.8.8
  • 谷歌云平台
  • 机器类型:g1-small

最佳答案

看起来您的请求转到了一个未启动的 pod。我通过添加一些参数避免了这种情况:

  • Liveness probe 以确保应用程序已经启动

  • maxUnavalible: 1 一个一个部署pods

我仍然有一些错误,但它们是可以接受的,因为它们很少发生。在部署过程中,可能会出现一次或两次错误,因此随着负载的增加,错误数量可以忽略不计。我的意思是在部署期间每 2000 个请求出现一两个错误。

关于kubernetes 连接在部署期间被拒绝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50307476/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com