Я пытаюсь добиться развертывания с нулевым временем простоя, используя kubernetes, и во время моего теста сервис плохо балансирует нагрузку.
Мой манифест Кубернец:
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
Я получаю connection refused
во время развертывания:
curl: (7) Failed to connect to 35.205.100.174 port 80: Connection refused
Приложение по умолчанию helloapp , предоставляемое Google Cloud Platform и работающее на 8080
.
Информация о кластере:
- Kubernetes версия: 1.8.8
- Облачная платформа Google
- Тип машины: g1-small