Использование локальной переадресации портов в Kubernetes.
Создайте пример пространства имен, развертывания и сервиса.
$ kubectl apply -f - <<EOF apiVersion: v1 kind: Namespace metadata: name: octopus EOF
namespace/octopus created
$ kubectl apply -f - <<EOF apiVersion: apps/v1 kind: Deployment metadata: labels: app: octopus-httpd name: octopus-httpd namespace: octopus spec: replicas: 2 selector: matchLabels: app: octopus-httpd template: metadata: labels: app: octopus-httpd spec: containers: - image: httpd:latest name: octopus-httpd ports: - name: http protocol: TCP containerPort: 80 EOF
deployment.apps/octopus-httpd created
$ kubectl apply -f - <<EOF apiVersion: v1 kind: Service metadata: name: octopus-httpd-service namespace: octopus spec: type: ClusterIP ports: - name: http port: 80 protocol: TCP selector: app: octopus-httpd EOF
service/octopus-httpd-service created
Перечислим поды:
$ kubectl get -n octopus pods
NAME READY STATUS RESTARTS AGE octopus-httpd-59f8f6645f-44hdw 1/1 Running 0 35s octopus-httpd-59f8f6645f-8l4pv 1/1 Running 0 35s
Переадресация порта на конкретный под.
$ kubectl port-forward -n octopus pods/octopus-httpd-59f8f6645f-44hdw 10080:80
Переадресация порта на определенный сервис.
$ kubectl port-forward -n octopus svc/octopus-httpd-service 10080:80
Переадресация на конкретное развертывание.
$ kubectl port-forward -n octopus deployments/octopus-httpd 10080:80
Проверьте подключение.
$ curl 127.0.0.1:10080
<html><body><h1>It works!</h1></body></html>
Помните, что данная функциональность основана на работе с подами, поэтому забудьте о балансировке нагрузки или переключении направлений, считайте, что вы подключитесь к первому запущенному поду, отсортированному по имени.
см. также:
- ☸️ Безопасно удаляем worker ноду из кластера Kubernetes
- 🐳 Как проверить, работает ли ваше приложение в Docker или Kubernetes
- 🐳 GitLab CI: Как создавать образы Docker в Kubernetes
- ☸️ Как перезапустить Kubernetes на Linux
- ☸️ Как использовать пространства имен Kubernetes
- ☸️ Как использовать команду Scale в Kubernetes