Создать Istio Ingress-gateway POD без создания istiod
Я немного новичок в istio и все еще учусь. У меня есть вариант использования, в котором Istio уже развернута в пространстве имен istio-system, но мне нужно развернуть модуль istio ingress-gateway Pod в пространстве имен test-ns с помощью istioOperator. Я использую istio 1.6.7.
В документах Istio упоминается для запуска этого cmd:
istioctl manifest apply --set profile=default --filename=istio-ingress-values.yaml
но это создаст istiod Pods в istio-system, которого я не хочу, так как он уже создан.
Итак, я запустил команду под cmds, чтобы просто создать Ingress Gateway POD, но не увидел никаких подов или сервисов, созданных в test-ns. Пожалуйста, помогите, если это возможно
kubectl apply -f istio-ingress-values.yaml
apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
metadata:
namespace: test-ns
name: testoperator
ingressGateways:
- enabled: true
name: istio-ingressgateway
namespace: test-ns
k8s:
env:
- name: ISTIO_META_ROUTER_MODE
value: sni-dnat
hpaSpec:
maxReplicas: 5
metrics:
- resource:
name: cpu
targetAverageUtilization: 80
type: Resource
minReplicas: 1
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: istio-ingressgateway
resources: {}
service:
ports:
- name: http2
port: 80
targetPort: 80
- name: https
port: 443
targetPort: 443
1 ответ
В Istio можно настроить профили конфигурации . Как я вижу, вы используете
default
профиля, поэтому я опишу, как вы можете настроить этот профиль конфигурации для создания в
test-ns
пространство имен.
Мы можем отобразить настройки профиля по умолчанию, запустив
istioctl profile dump default
команда.
Сначала я сохранил эти настройки по умолчанию в
default_profile_dump.yml
файл:
# istioctl profile dump default > default_profile_dump.yml
Затем я изменил этот файл:
ПРИМЕЧАНИЕ: я добавил только одну строку:
namespace: test-ns
.
...
ingressGateways:
- enabled: true
name: istio-ingressgateway
namespace: test-ns
...
После изменения настроек по умолчанию
ingressGateways
, Я применил эти новые настройки:
# istioctl manifest apply -f default_profile_dump.yml
This will install the Istio 1.9.1 default profile with ["Istio core" "Istiod" "Ingress gateways"] components into the cluster. Proceed? (y/N) y
✔ Istio core installed
✔ Istiod installed
✔ Ingress gateways installed
- Pruning removed resources Removed HorizontalPodAutoscaler:istio-system:istio-ingressgateway.
Removed PodDisruptionBudget:istio-system:istio-ingressgateway.
Removed Deployment:istio-system:istio-ingressgateway.
Removed Service:istio-system:istio-ingressgateway.
Removed ServiceAccount:istio-system:istio-ingressgateway-service-account.
Removed RoleBinding:istio-system:istio-ingressgateway-sds.
Removed Role:istio-system:istio-ingressgateway-sds.
✔ Installation complete
Наконец, мы можем проверить, где
istio-ingressgateway
был развернут:
# kubectl get pod -A | grep ingressgateway
test-ns istio-ingressgateway-7fc7c7c-r92tw 1/1 Running 0 33s
В
istiod
Развертывание осталось неизменным в
istio-system
пространство имен:
# kubectl get deploy,pods -n istio-system
NAME READY UP-TO-DATE AVAILABLE AGE
deployment.apps/istiod 1/1 1 1 51m
NAME READY STATUS RESTARTS AGE
pod/istiod-64675984c5-xl97n 1/1 Running 0 51m