Я хочу продемонстрировать возможности балансировки нагрузки Kubernetes. В моей локальной системе у меня есть один узел в кластере. Хотите развернуть контейнер nginx в 3 модулях и заменить index.html (по умолчанию) моим измененным index.html (с некоторыми отклонениями). Я создаю службу и назначаю порт для пересылки всех запросов на порт 80 контейнеров. Я хочу получить доступ к своему модулю как http://localhost:3030. В зависимости от того, какой модуль попадает в запрос, index.html будет отображать содержимое. Однако с приведенным ниже кодом развертывания и обслуживания я не смог попасть ни в один модуль. Если я выполняю переадресацию портов на отдельный модуль, я могу достичь его.
Я следовал подходу, описанному в здесь, но не повезло. Любая идея, что мне не хватает.
Вот что я вижу, когда получаю все.
$ k get all
NAME READY STATUS RESTARTS AGE
pod/app-server-6ccf5d55db-2qt2r 1/1 Running 0 3d20h
pod/app-server-6ccf5d55db-96lkb 1/1 Running 0 3d20h
pod/app-server-6ccf5d55db-ljsc4 1/1 Running 0 3d20h
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 19d
NAME READY UP-TO-DATE AVAILABLE AGE
deployment.apps/app-server 3/3 3 3 3d20h
apiVersion: v1
kind: Service
metadata:
name: app-service
spec:
type: NodePort
ports:
- name: http
protocol: TCP
port: 80
targetPort: 3030
selector:
app: app-server
apiVersion: apps/v1
kind: Deployment
metadata:
name: app-server
labels:
app: app-server
spec:
replicas: 3
selector:
matchLabels:
app: app-server
template:
metadata:
labels:
app: app-server
spec:
containers:
- name: web-server
image: nginx:latest
ports:
- containerPort: 80