Образ АтивногоШюза в контейнере: различия между версиями
| Строка 33: | Строка 33: | ||
# Создайте выделенное пространство имен. | # Создайте выделенное пространство имен. | ||
## '''Kubernetes''' <code>kubectl create namespace astromkey</code> | ## '''Kubernetes''' <code>kubectl create namespace astromkey</code> | ||
## '''OpenShift''' <code>oc adm new-project --node-selector="" astromkey</code> | ## '''OpenShift''' <code>oc adm new-project --node-selector="" astromkey</code><br /> | ||
# Создайте ключ, содержащий данные аутентификации на сервере Ключ-АСТРОМ, используемом АктивныйШлюз. | # Создайте ключ, содержащий данные аутентификации на сервере Ключ-АСТРОМ, используемом АктивныйШлюз. | ||
## '''Kubernetes''' <br /><code>kubectl -n astromkey create secret generic astromkey-tokens \</code> <br /><code>--from-literal=tenant-token=<YOUR_TENANT_TOKEN> \</code> <br /><code>--from-literal=auth-token=<YOUR_AUTH_TOKEN></code> | ## '''Kubernetes''' <br /><code>kubectl -n astromkey create secret generic astromkey-tokens \</code> <br /><code>--from-literal=tenant-token=<YOUR_TENANT_TOKEN> \</code> <br /><code>--from-literal=auth-token=<YOUR_AUTH_TOKEN></code> | ||
## '''OpenShift''' <br /><code>oc -n astromkey create secret generic astromkey-tokens \</code> <br /><code>--from-literal=tenant-token=<YOUR_TENANT_TOKEN> \</code> <br /><code>--from-literal=auth-token=<YOUR_AUTH_TOKEN></code> <br /><br />Вам нужно заменить | ## '''OpenShift''' <br /><code>oc -n astromkey create secret generic astromkey-tokens \</code> <br /><code>--from-literal=tenant-token=<YOUR_TENANT_TOKEN> \</code> <br /><code>--from-literal=auth-token=<YOUR_AUTH_TOKEN></code> <br /><br />Вам нужно заменить | ||
##* <code><YOUR_TENANT_TOKEN></code> c значением <code>tenantToken</code>, полученным в '''Предустановке''' из информации о подключении. | ##* <code><YOUR_TENANT_TOKEN></code> c значением <code>tenantToken</code>, полученным в '''Предустановке''' из информации о подключении. | ||
##* <code><YOUR_AUTH_TOKEN></code> с индивидуальным токеном АктивногоШлюза, полученным в '''Предустановке'''. <br /> | ##* <code><YOUR_AUTH_TOKEN></code> с индивидуальным токеном АктивногоШлюза, полученным в '''Предустановке'''. <br /><br /> | ||
# Создайте файл <code>ag-deployment-example.yaml</code> со следующим содержимым: <br />'''<u>''ag-deployment-example.yaml''</u>''' | # Создайте файл <code>ag-deployment-example.yaml</code> со следующим содержимым: <br />'''<u>''ag-deployment-example.yaml''</u>''' | ||
{| class="wikitable" | {| class="wikitable" | ||
| Строка 46: | Строка 46: | ||
metadata: | metadata: | ||
name: | name: astromkey-activegate | ||
namespace: | namespace: astromkey | ||
spec: | spec: | ||
| Строка 58: | Строка 58: | ||
app.kubernetes.io/component: activegate | app.kubernetes.io/component: activegate | ||
component. | component.astromkey.com/feature: activegate | ||
ports: | ports: | ||
| Строка 76: | Строка 76: | ||
metadata: | metadata: | ||
name: | name: astromkey-activegate | ||
namespace: | namespace: astromkey | ||
labels: | labels: | ||
| Строка 84: | Строка 84: | ||
app.kubernetes.io/component: activegate | app.kubernetes.io/component: activegate | ||
component. | component.astromkey.com/feature: activegate | ||
spec: | spec: | ||
| Строка 98: | Строка 98: | ||
app.kubernetes.io/component: activegate | app.kubernetes.io/component: activegate | ||
component. | component.astromkey.com/feature: activegate | ||
template: | template: | ||
| Строка 108: | Строка 108: | ||
app.kubernetes.io/component: activegate | app.kubernetes.io/component: activegate | ||
component. | component.astromkey.com/feature: activegate | ||
spec: | spec: | ||
| Строка 142: | Строка 142: | ||
- name: activegate | - name: activegate | ||
image: <REPOSITORY_URL>/ | image: <REPOSITORY_URL>/astromkey-activegate:<IMAGE_TAG> | ||
imagePullPolicy: Always | imagePullPolicy: Always | ||
| Строка 166: | Строка 166: | ||
- name: DT_ID_SEED_NAMESPACE | - name: DT_ID_SEED_NAMESPACE | ||
value: | value: astromkey | ||
- name: DT_ID_SEED_K8S_CLUSTER_ID | - name: DT_ID_SEED_K8S_CLUSTER_ID | ||
| Строка 182: | Строка 182: | ||
- name: DT_DNS_ENTRY_POINT | - name: DT_DNS_ENTRY_POINT | ||
value: <nowiki>https://$( | value: <nowiki>https://$(astromkey_ACTIVEGATE_SERVICE_HOST):$(astromkey_ACTIVEGATE_SERVICE_PORT)/communication</nowiki> | ||
volumeMounts: | volumeMounts: | ||
- name: | - name: astromkey-tokens | ||
mountPath: /var/lib/ | mountPath: /var/lib/astromkey/secrets/tokens | ||
- name: truststore-volume | - name: truststore-volume | ||
mountPath: /opt/ | mountPath: /opt/astromkey/gateway/jre/lib/security/cacerts | ||
readOnly: true | readOnly: true | ||
| Строка 200: | Строка 200: | ||
- name: server-certs-storage | - name: server-certs-storage | ||
mountPath: /var/lib/ | mountPath: /var/lib/astromkey/gateway/ssl | ||
- name: ag-lib-gateway-config | - name: ag-lib-gateway-config | ||
mountPath: /var/lib/ | mountPath: /var/lib/astromkey/gateway/config | ||
- name: ag-lib-gateway-temp | - name: ag-lib-gateway-temp | ||
mountPath: /var/lib/ | mountPath: /var/lib/astromkey/gateway/temp | ||
- name: ag-lib-gateway-data | - name: ag-lib-gateway-data | ||
mountPath: /var/lib/ | mountPath: /var/lib/astromkey/gateway/data | ||
- name: ag-log-gateway | - name: ag-log-gateway | ||
mountPath: /var/log/ | mountPath: /var/log/astromkey/gateway | ||
- name: ag-tmp-gateway | - name: ag-tmp-gateway | ||
mountPath: /var/tmp/ | mountPath: /var/tmp/astromkey/gateway | ||
livenessProbe: | livenessProbe: | ||
| Строка 300: | Строка 300: | ||
- name: certificate-loader | - name: certificate-loader | ||
image: <REPOSITORY_URL>/ | image: <REPOSITORY_URL>/astromkey-activegate:<IMAGE_TAG> | ||
workingDir: /var/lib/ | workingDir: /var/lib/astromkey/gateway | ||
command: ['/bin/bash'] | command: ['/bin/bash'] | ||
args: ['-c', '/opt/ | args: ['-c', '/opt/astromkey/gateway/k8scrt2jks.sh'] | ||
volumeMounts: | volumeMounts: | ||
- mountPath: /var/lib/ | - mountPath: /var/lib/astromkey/gateway/ssl | ||
name: truststore-volume | name: truststore-volume | ||
| Строка 320: | Строка 320: | ||
emptyDir: {} | emptyDir: {} | ||
- name: | - name: astromkey-tokens | ||
secret: | secret: | ||
secretName: | secretName: astromkey-tokens | ||
- name: server-certs-storage | - name: server-certs-storage | ||
| Строка 361: | Строка 361: | ||
#** SaaS: <code><nowiki>https://{your-environment-id}.live.astromkey.com</nowiki></code> | #** SaaS: <code><nowiki>https://{your-environment-id}.live.astromkey.com</nowiki></code> | ||
#** Managment: <code><nowiki>https://{your-domain}/e/{your-environment-id}</nowiki></code> | #** Managment: <code><nowiki>https://{your-domain}/e/{your-environment-id}</nowiki></code> | ||
#* <code><YOUR_COMMUNICATION_ENDPOINTS></code> c значением <code>communicationEndpoints</code>, полученным в '''Предустановке''' из информации о подключении. <br />Список конечных точек связи с сервером (<code>communicationEndpoints</code>) может со временем меняться. | #* <code><YOUR_COMMUNICATION_ENDPOINTS></code> c значением <code>communicationEndpoints</code>, полученным в '''Предустановке''' из информации о подключении. <br /><br />Список конечных точек связи с сервером (<code>communicationEndpoints</code>) может со временем меняться. | ||
#* <code><YOUR_KUBE-SYSTEM_NAMESPACE_UUID></code> с '''UUID''' пространства имен '''kube-system''', полученным в '''Предустановке.''' | #* <code><YOUR_KUBE-SYSTEM_NAMESPACE_UUID></code> с '''UUID''' пространства имен '''kube-system''', полученным в '''Предустановке.''' <br /><br />Параметры: | ||
#* '''необязательный''' Включите '''AppArmor''', если он доступен. <br />Для обеспечения совместимости с более широким спектром кластеров '''Kubernetes''' профиль '''AppArmor''' не указан в <code>ag-deployment-example.yaml</code>. Если '''AppArmor''' доступен в вашем кластере '''Kubernetes''', мы рекомендуем вам дополнительно аннотировать '''StatefulSet''' с помощью профиля <code>runtime/default</code>. | #* '''необязательный''' Включите '''AppArmor''', если он доступен. <br />Для обеспечения совместимости с более широким спектром кластеров '''Kubernetes''' профиль '''AppArmor''' не указан в <code>ag-deployment-example.yaml</code>. Если '''AppArmor''' доступен в вашем кластере '''Kubernetes''', мы рекомендуем вам дополнительно аннотировать '''StatefulSet''' с помощью профиля <code>runtime/default</code>. <br /><br /><code>spec:</code> <br /><code> template:</code> <br /><code> metadata:</code> <br /><code> annotations:</code> <br /><code> container.apparmor.security.beta.kubernetes.io/activegate: runtime/default</code> <br /> | ||
#* '''необязательный''' Применяйте ограничения ресурсов в соответствии с рекомендациями по размеру. Дополнительные параметры конфигурации см. в разделе [[Конфигурация АктивныхШлюзов|'''Конфигурация АктивныхШлюзов''']]. | #* '''необязательный''' Применяйте ограничения ресурсов в соответствии с рекомендациями по размеру. Дополнительные параметры конфигурации см. в разделе [[Конфигурация АктивныхШлюзов|'''Конфигурация АктивныхШлюзов''']]. <br /> | ||
# Развертывание '''АктивногоШлюза'''. | # Развертывание '''АктивногоШлюза'''. | ||
## '''Kubernetes''' <code>kubectl apply -f ./ag-deployment-example.yaml</code> | ## '''Kubernetes''' <code>kubectl apply -f ./ag-deployment-example.yaml</code> | ||
## '''OpenShift''' <code>oc apply -f ./ag-deployment-example.yaml</code> | ## '''OpenShift''' <code>oc apply -f ./ag-deployment-example.yaml</code><br /> | ||
# Чтобы убедиться, что '''АктившныйШлюз''' успешно подключился к серверу Ключ-АСТРОМ, перейдите в раздел '''Состояние развертывания > АктивныйШлюз'''. | # Чтобы убедиться, что '''АктившныйШлюз''' успешно подключился к серверу Ключ-АСТРОМ, перейдите в раздел '''Состояние развертывания > АктивныйШлюз'''. | ||
| Строка 374: | Строка 374: | ||
# Создайте выделенное пространство имен. | # Создайте выделенное пространство имен. | ||
## '''Kubernetes''' <code>kubectl create namespace astromkey</code> | ## '''Kubernetes''' <code>kubectl create namespace astromkey</code> | ||
## '''OpenShift''' <code>oc adm new-project --node-selector="" astromkey</code> | ## '''OpenShift''' <code>oc adm new-project --node-selector="" astromkey</code><br /> | ||
# Создайте ключ, содержащий URL-адрес среды и данные аутентификации для этого реестра. | # Создайте ключ, содержащий URL-адрес среды и данные аутентификации для этого реестра. | ||
## '''Kubernetes''' <br /><code>kubectl -n astromkey create secret docker-registry astromkey-docker-registry \</code> <br /><code>--docker-server=<YOUR_ENVIRONMENT_URL> \</code> <br /><code>--docker-username=<YOUR_ENVIRONMENT_ID> \</code> <br /><code>--docker-password=<YOUR_INSTALLER_DOWNLOAD_TOKEN></code> | ## '''Kubernetes''' <br /><code>kubectl -n astromkey create secret docker-registry astromkey-docker-registry \</code> <br /><code>--docker-server=<YOUR_ENVIRONMENT_URL> \</code> <br /><code>--docker-username=<YOUR_ENVIRONMENT_ID> \</code> <br /><code>--docker-password=<YOUR_INSTALLER_DOWNLOAD_TOKEN></code> | ||
| Строка 382: | Строка 382: | ||
##** SaaS-решение: <code><nowiki>https://{your-environment-id}.live.astromkey.com</nowiki></code> | ##** SaaS-решение: <code><nowiki>https://{your-environment-id}.live.astromkey.com</nowiki></code> | ||
##** Managed: <code><nowiki>https://{your-domain}/e/{your-environment-id}</nowiki></code> | ##** Managed: <code><nowiki>https://{your-domain}/e/{your-environment-id}</nowiki></code> | ||
##** <code><YOUR_INSTALLER_DOWNLOAD_TOKEN></code> с токеном доступа <code>InstallerDownload</code> с областью действия, созданной вами в разделе '''Предустановка'''. | ##** <code><YOUR_INSTALLER_DOWNLOAD_TOKEN></code> с токеном доступа <code>InstallerDownload</code> с областью действия, созданной вами в разделе '''Предустановка'''. <br /> | ||
# Создайте ключ, содержащий данные аутентификации на сервере Ключ-АСТРОМ, используемом АктивнымШлюзом. | # Создайте ключ, содержащий данные аутентификации на сервере Ключ-АСТРОМ, используемом АктивнымШлюзом. | ||
## '''Kubernetes''' <br /><code>kubectl -n astromkey create secret generic astromkey-tokens \</code> <br /><code>--from-literal=tenant-token=<YOUR_TENANT_TOKEN> \</code> <br /><code>--from-literal=auth-token=<YOUR_AUTH_TOKEN></code> | ## '''Kubernetes''' <br /><code>kubectl -n astromkey create secret generic astromkey-tokens \</code> <br /><code>--from-literal=tenant-token=<YOUR_TENANT_TOKEN> \</code> <br /><code>--from-literal=auth-token=<YOUR_AUTH_TOKEN></code> | ||
## '''OpenShift''' <br /><code>oc -n astromkey create secret generic astromkey-tokens \</code> <br /><code>--from-literal=tenant-token=<YOUR_TENANT_TOKEN> \</code> <br /><code>--from-literal=auth-token=<YOUR_AUTH_TOKEN></code> | ## '''OpenShift''' <br /><code>oc -n astromkey create secret generic astromkey-tokens \</code> <br /><code>--from-literal=tenant-token=<YOUR_TENANT_TOKEN> \</code> <br /><code>--from-literal=auth-token=<YOUR_AUTH_TOKEN></code> <br /><br />Вам нужно заменить | ||
##* <code><YOUR_TENANT_TOKEN></code> с значением <code>tenantToken</code>, полученным в '''Предустановке''' из информации о подключении. | ##* <code><YOUR_TENANT_TOKEN></code> с значением <code>tenantToken</code>, полученным в '''Предустановке''' из информации о подключении. | ||
##* <code><YOUR_AUTH_TOKEN></code> с индивидуальным токеном АктивногоШлюза, полученным в '''Предустановке'''. | ##* <code><YOUR_AUTH_TOKEN></code> с индивидуальным токеном АктивногоШлюза, полученным в '''Предустановке'''. <br /> | ||
# Создайте файл <code>ag-deployment-example.yaml</code> со следующим содержимым: <br />'''''<u>ag-deployment-example.yaml</u>''''' | # Создайте файл <code>ag-deployment-example.yaml</code> со следующим содержимым: <br />'''''<u>ag-deployment-example.yaml</u>''''' | ||
{| class="wikitable" | {| class="wikitable" | ||
| Строка 395: | Строка 395: | ||
metadata: | metadata: | ||
name: | name: astromkey-activegate | ||
namespace: | namespace: astromkey | ||
spec: | spec: | ||
| Строка 407: | Строка 407: | ||
app.kubernetes.io/component: activegate | app.kubernetes.io/component: activegate | ||
component. | component.astromkey.com/feature: activegate | ||
ports: | ports: | ||
| Строка 425: | Строка 425: | ||
metadata: | metadata: | ||
name: | name: astromkey-activegate | ||
namespace: | namespace: astromkey | ||
labels: | labels: | ||
| Строка 433: | Строка 433: | ||
app.kubernetes.io/component: activegate | app.kubernetes.io/component: activegate | ||
component. | component.astromkey.com/feature: activegate | ||
spec: | spec: | ||
| Строка 447: | Строка 447: | ||
app.kubernetes.io/component: activegate | app.kubernetes.io/component: activegate | ||
component. | component.astromkey.com/feature: activegate | ||
template: | template: | ||
| Строка 457: | Строка 457: | ||
app.kubernetes.io/component: activegate | app.kubernetes.io/component: activegate | ||
component. | component.astromkey.com/feature: activegate | ||
spec: | spec: | ||
| Строка 515: | Строка 515: | ||
- name: DT_ID_SEED_NAMESPACE | - name: DT_ID_SEED_NAMESPACE | ||
value: | value: astromkey | ||
- name: DT_ID_SEED_K8S_CLUSTER_ID | - name: DT_ID_SEED_K8S_CLUSTER_ID | ||
| Строка 531: | Строка 531: | ||
- name: DT_DNS_ENTRY_POINT | - name: DT_DNS_ENTRY_POINT | ||
value: <nowiki>https://$( | value: <nowiki>https://$(astromkey_ACTIVEGATE_SERVICE_HOST):$(astromkey_ACTIVEGATE_SERVICE_PORT)/communication</nowiki> | ||
volumeMounts: | volumeMounts: | ||
- name: | - name: astromkey-tokens | ||
mountPath: /var/lib/ | mountPath: /var/lib/astromkey/secrets/tokens | ||
- name: truststore-volume | - name: truststore-volume | ||
mountPath: /opt/ | mountPath: /opt/astromkey/gateway/jre/lib/security/cacerts | ||
readOnly: true | readOnly: true | ||
| Строка 549: | Строка 549: | ||
- name: server-certs-storage | - name: server-certs-storage | ||
mountPath: /var/lib/ | mountPath: /var/lib/astromkey/gateway/ssl | ||
- name: ag-lib-gateway-config | - name: ag-lib-gateway-config | ||
mountPath: /var/lib/ | mountPath: /var/lib/astromkey/gateway/config | ||
- name: ag-lib-gateway-temp | - name: ag-lib-gateway-temp | ||
mountPath: /var/lib/ | mountPath: /var/lib/astromkey/gateway/temp | ||
- name: ag-lib-gateway-data | - name: ag-lib-gateway-data | ||
mountPath: /var/lib/ | mountPath: /var/lib/astromkey/gateway/data | ||
- name: ag-log-gateway | - name: ag-log-gateway | ||
mountPath: /var/log/ | mountPath: /var/log/astromkey/gateway | ||
- name: ag-tmp-gateway | - name: ag-tmp-gateway | ||
mountPath: /var/tmp/ | mountPath: /var/tmp/astromkey/gateway | ||
livenessProbe: | livenessProbe: | ||
| Строка 651: | Строка 651: | ||
image: <YOUR_ENVIRONMENT_URL>/linux/activegate:raw | image: <YOUR_ENVIRONMENT_URL>/linux/activegate:raw | ||
workingDir: /var/lib/ | workingDir: /var/lib/astromkey/gateway | ||
command: ['/bin/bash'] | command: ['/bin/bash'] | ||
args: ['-c', '/opt/ | args: ['-c', '/opt/astromkey/gateway/k8scrt2jks.sh'] | ||
volumeMounts: | volumeMounts: | ||
- mountPath: /var/lib/ | - mountPath: /var/lib/astromkey/gateway/ssl | ||
name: truststore-volume | name: truststore-volume | ||
| Строка 665: | Строка 665: | ||
imagePullSecrets: | imagePullSecrets: | ||
- name: | - name: astromkey-docker-registry | ||
volumes: | volumes: | ||
| Строка 673: | Строка 673: | ||
emptyDir: {} | emptyDir: {} | ||
- name: | - name: astromkey-tokens | ||
secret: | secret: | ||
secretName: | secretName: astromkey-tokens | ||
- name: server-certs-storage | - name: server-certs-storage | ||
| Строка 709: | Строка 709: | ||
# Измените файл '''YAML''' развертывания. Добавьте в файл <code>ag-deployment-example.yaml</code> сведения о конфигурации среды, обязательно заменив: | # Измените файл '''YAML''' развертывания. Добавьте в файл <code>ag-deployment-example.yaml</code> сведения о конфигурации среды, обязательно заменив: | ||
#* <code><YOUR_ENVIRONMENT_URL></code> с URL вашей среды (без <code>https://</code>). Пример: <code>abc12345.live.astromkey.com</code> | #* <code><YOUR_ENVIRONMENT_URL></code> с URL вашей среды (без <code>https://</code>). Пример: <code>abc12345.live.astromkey.com</code> | ||
#* <code><YOUR_ENVIRONMENT_ID></code> с именем пользователя учетной записи Docker (таким же, как идентификатор в URL-адресе вашей среды выше) <br />Чтобы определить идентификатор вашей среды, смотрите синтаксис ниже. | #* <code><YOUR_ENVIRONMENT_ID></code> с именем пользователя учетной записи Docker (таким же, как идентификатор в URL-адресе вашей среды выше) <br /><br />Чтобы определить идентификатор вашей среды, смотрите синтаксис ниже. | ||
#** SaaS-решение: <code><nowiki>https://{your-environment-id}.live.astromkey.com</nowiki></code> | #** SaaS-решение: <code><nowiki>https://{your-environment-id}.live.astromkey.com</nowiki></code> | ||
#** Managed: <code><nowiki>https://{your-domain}/e/{your-environment-id}</nowiki></code> | #** Managed: <code><nowiki>https://{your-domain}/e/{your-environment-id}</nowiki></code> | ||
#* <code><YOUR_COMMUNICATION_ENDPOINTS></code> c значением <code>communicationEndpoints</code>, полученным в '''Предустановке''' из информации о подключении. <br />Список конечных точек связи с сервером (<code>communicationEndpoints</code>) может со временем меняться. | #* <code><YOUR_COMMUNICATION_ENDPOINTS></code> c значением <code>communicationEndpoints</code>, полученным в '''Предустановке''' из информации о подключении. <br />Список конечных точек связи с сервером (<code>communicationEndpoints</code>) может со временем меняться. | ||
#* <code><YOUR_KUBE-SYSTEM_NAMESPACE_UUID></code> с UUID пространства имен kube-system, полученным в '''Предустановке.''' <br />Параметры: | #* <code><YOUR_KUBE-SYSTEM_NAMESPACE_UUID></code> с UUID пространства имен kube-system, полученным в '''Предустановке.''' <br /><br />Параметры: | ||
#* '''необязательно''' Вы можете изменить версию образа, используя другой тег версии. | #* '''необязательно''' Вы можете изменить версию образа, используя другой тег версии. | ||
#** <code>raw</code>— Последний доступный образ | #** <code>raw</code>— Последний доступный образ | ||
#** <code>1.sprint.patchlevel-raw</code>— Образ для конкретной версии АктивногоШлюза (например, <code>1.297.0-raw</code>) | #** <code>1.sprint.patchlevel-raw</code>— Образ для конкретной версии АктивногоШлюза (например, <code>1.297.0-raw</code>) | ||
#* '''необязательно''' Включите AppArmor, если он доступен. <br />Для обеспечения совместимости с более широким спектром кластеров '''Kubernetes''' профиль '''AppArmor''' не указан в <code>ag-deployment-example.yaml</code>. Если '''AppArmor''' доступен в вашем кластере '''Kubernetes''', мы рекомендуем вам дополнительно аннотировать '''StatefulSet''' с помощью профиля <code>runtime/default</code>. | #* '''необязательно''' Включите AppArmor, если он доступен. <br />Для обеспечения совместимости с более широким спектром кластеров '''Kubernetes''' профиль '''AppArmor''' не указан в <code>ag-deployment-example.yaml</code>. Если '''AppArmor''' доступен в вашем кластере '''Kubernetes''', мы рекомендуем вам дополнительно аннотировать '''StatefulSet''' с помощью профиля <code>runtime/default</code>. <br /><br /><code>spec:</code> <br /><code> template:</code> <br /><code> metadata:</code> <br /><code> annotations:</code> <br /><code> container.apparmor.security.beta.kubernetes.io/activegate: runtime/default</code> <br /> | ||
#* '''необязательно''' Применяйте ограничения ресурсов в соответствии с рекомендациями по размеру. | #* '''необязательно''' Применяйте ограничения ресурсов в соответствии с рекомендациями по размеру. <br /> | ||
# Развертывание '''АктивногоШлюза'''. | # Развертывание '''АктивногоШлюза'''. | ||
## '''Kubernetes''' <code>kubectl apply -f ./ag-deployment-example.yaml</code> | ## '''Kubernetes''' <code>kubectl apply -f ./ag-deployment-example.yaml</code> | ||
## '''OpenShift''' <code>oc apply -f ./ag-deployment-example.yaml</code> | ## '''OpenShift''' <code>oc apply -f ./ag-deployment-example.yaml</code><br /> | ||
# Чтобы убедиться, что '''АктивныйШлюз''' успешно подключился к серверу '''Ключ-АСТРОМ''', перейдите в раздел '''Состояние развертывания > АктивныеШлюзы'''. | # Чтобы убедиться, что '''АктивныйШлюз''' успешно подключился к серверу '''Ключ-АСТРОМ''', перейдите в раздел '''Состояние развертывания > АктивныеШлюзы'''. | ||
Текущая версия на 19:41, 25 мая 2025
Ключ-АСТРОМ поддерживает запуск АктивногоШлюза в контейнере. В качестве примера развертывания на основе контейнера эта страница описывает, как развернуть АктивныйШлюз на основе контейнера с использованием StatefulSet в Kubernetes/OpenShift.
Предустановка
- Создайте токен доступа
InstallerDownloadс областью действия - Создайте токен аутентификации
- Определите конечные точки связи АктивногоШлюза и аутентификацию. Используйте информацию о подключении GET для API АктивногоШлюза.
- Получите UUID вашего пространства имен kube-system
Системные требования
Образ АктивногоШлюза Ключ-АСТРОМ поддерживается различными версиями Kubernetes и OpenShift. Полный список см. в разделе Поддержка технологий - Kubernetes.
Образы доступны для следующих архитектур:
- x86-64
- ARM64 (AArch64)
- s390x
Директории контейнеров
Чтобы обеспечить бесперебойную интеграцию с вашими инструментами и адаптируемость к вашим потребностям, мы предлагаем наши образы контейнеров различными способами, обеспечивающими максимальную гибкость:
- Встроенная директория Ключ-АСТРОМ (по умолчанию)
- Общедоступные директории
- Ваша собственная директория (рекомендуется)
Обратите внимание, что многоархитектурные образы контейнеров Ключ-АСТРОМ, поддерживающие архитектуры ЦП ARM64 (AArch64) и x86-64 на Linux, обеспечивающие совместимость на различных платформах, доступны только из общедоступных директорий. Встроенная директория Ключ-АСТРОМ предоставляет образы только x86-64.
Развертывание
Ключ-АСТРОМ предоставляет подписанные образы контейнеров для обеспечения подлинности и целостности, а также SBOM, в которых перечислены все включенные программные компоненты. Проверка подписей и просмотр SBOM позволяют эффективно управлять уязвимостями и снижать риски. Подробности проверки см. в разделе Проверка подписей образов Ключ-АСТРОМ.
Частная или общедоступная директория
- Создайте выделенное пространство имен.
- Kubernetes
kubectl create namespace astromkey - OpenShift
oc adm new-project --node-selector="" astromkey
- Kubernetes
- Создайте ключ, содержащий данные аутентификации на сервере Ключ-АСТРОМ, используемом АктивныйШлюз.
- Kubernetes
kubectl -n astromkey create secret generic astromkey-tokens \--from-literal=tenant-token=<YOUR_TENANT_TOKEN> \--from-literal=auth-token=<YOUR_AUTH_TOKEN> - OpenShift
oc -n astromkey create secret generic astromkey-tokens \--from-literal=tenant-token=<YOUR_TENANT_TOKEN> \--from-literal=auth-token=<YOUR_AUTH_TOKEN>
Вам нужно заменить<YOUR_TENANT_TOKEN>c значениемtenantToken, полученным в Предустановке из информации о подключении.<YOUR_AUTH_TOKEN>с индивидуальным токеном АктивногоШлюза, полученным в Предустановке.
- Kubernetes
- Создайте файл
ag-deployment-example.yamlсо следующим содержимым:
ag-deployment-example.yaml
| apiVersion: v1
kind: Service metadata: name: astromkey-activegate namespace: astromkey spec: type: ClusterIP selector: app.kubernetes.io/component: activegate component.astromkey.com/feature: activegate ports: - protocol: TCP port: 443 targetPort: ag-https --- apiVersion: apps/v1 kind: StatefulSet metadata: name: astromkey-activegate namespace: astromkey labels: app.kubernetes.io/component: activegate component.astromkey.com/feature: activegate spec: podManagementPolicy: Parallel serviceName: "" selector: matchLabels: app.kubernetes.io/component: activegate component.astromkey.com/feature: activegate template: metadata: labels: app.kubernetes.io/component: activegate component.astromkey.com/feature: activegate spec: affinity: nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: kubernetes.io/arch operator: In values: - <CPU_ARCHITECTURE> - key: kubernetes.io/os operator: In values: - linux containers: - name: activegate image: <REPOSITORY_URL>/astromkey-activegate:<IMAGE_TAG> imagePullPolicy: Always ports: - containerPort: 9999 name: ag-https protocol: TCP env: - name: DT_TENANT value: <YOUR_ENVIRONMENT_ID> - name: DT_SERVER value: <YOUR_COMMUNICATION_ENDPOINTS> - name: DT_ID_SEED_NAMESPACE value: astromkey - name: DT_ID_SEED_K8S_CLUSTER_ID value: <YOUR_KUBE-SYSTEM_NAMESPACE_UUID> - name: DT_CAPABILITIES value: restInterface,kubernetes_monitoring,MSGrouter,metrics_ingest - name: DT_DEPLOYMENT_METADATA value: orchestration_tech=handcrated-ag-sts;script_version=none;orchestrator_id=none - name: DT_DNS_ENTRY_POINT value: https://$(astromkey_ACTIVEGATE_SERVICE_HOST):$(astromkey_ACTIVEGATE_SERVICE_PORT)/communication volumeMounts: - name: astromkey-tokens mountPath: /var/lib/astromkey/secrets/tokens - name: truststore-volume mountPath: /opt/astromkey/gateway/jre/lib/security/cacerts readOnly: true subPath: k8s-local.jks - name: server-certs-storage mountPath: /var/lib/astromkey/gateway/ssl - name: ag-lib-gateway-config mountPath: /var/lib/astromkey/gateway/config - name: ag-lib-gateway-temp mountPath: /var/lib/astromkey/gateway/temp - name: ag-lib-gateway-data mountPath: /var/lib/astromkey/gateway/data - name: ag-log-gateway mountPath: /var/log/astromkey/gateway - name: ag-tmp-gateway mountPath: /var/tmp/astromkey/gateway livenessProbe: failureThreshold: 2 httpGet: path: /rest/state port: ag-https scheme: HTTPS initialDelaySeconds: 30 periodSeconds: 30 successThreshold: 1 timeoutSeconds: 1 readinessProbe: failureThreshold: 3 httpGet: path: /rest/health port: ag-https scheme: HTTPS initialDelaySeconds: 30 periodSeconds: 15 successThreshold: 1 timeoutSeconds: 1 resources: requests: cpu: 500m memory: 512Mi limits: cpu: 1000m memory: 1.5Gi securityContext: allowPrivilegeEscalation: false capabilities: drop: - all privileged: false readOnlyRootFilesystem: true runAsNonRoot: true seccompProfile: type: RuntimeDefault initContainers: - name: certificate-loader image: <REPOSITORY_URL>/astromkey-activegate:<IMAGE_TAG> workingDir: /var/lib/astromkey/gateway command: ['/bin/bash'] args: ['-c', '/opt/astromkey/gateway/k8scrt2jks.sh'] volumeMounts: - mountPath: /var/lib/astromkey/gateway/ssl name: truststore-volume volumes: - name: truststore-volume emptyDir: {} - name: astromkey-tokens secret: secretName: astromkey-tokens - name: server-certs-storage emptyDir: {} - name: ag-lib-gateway-config emptyDir: {} - name: ag-lib-gateway-temp emptyDir: {} - name: ag-lib-gateway-data emptyDir: {} - name: ag-log-gateway emptyDir: {} - name: ag-tmp-gateway emptyDir: {} updateStrategy: type: RollingUpdate |
- Измените файл YAML развертывания. Добавьте в файл
ag-deployment-example.yamlсведения о конфигурации среды, обязательно заменив:CPU_ARCHITECTUREc архитектурой вашего процессора. Возможные значения:amd64,arm64, иs390x<REPOSITORY_URL>c одним из поддерживаемых реестров<IMAGE_TAG>c правильным тегом образа<YOUR_ENVIRONMENT_ID>с вашим идентификатором среды Чтобы определить идентификатор вашей среды, смотрите синтаксис ниже.- SaaS:
https://{your-environment-id}.live.astromkey.com - Managment:
https://{your-domain}/e/{your-environment-id}
- SaaS:
<YOUR_COMMUNICATION_ENDPOINTS>c значениемcommunicationEndpoints, полученным в Предустановке из информации о подключении.
Список конечных точек связи с сервером (communicationEndpoints) может со временем меняться.<YOUR_KUBE-SYSTEM_NAMESPACE_UUID>с UUID пространства имен kube-system, полученным в Предустановке.
Параметры:- необязательный Включите AppArmor, если он доступен.
Для обеспечения совместимости с более широким спектром кластеров Kubernetes профиль AppArmor не указан вag-deployment-example.yaml. Если AppArmor доступен в вашем кластере Kubernetes, мы рекомендуем вам дополнительно аннотировать StatefulSet с помощью профиляruntime/default.spec:template:metadata:annotations:container.apparmor.security.beta.kubernetes.io/activegate: runtime/default - необязательный Применяйте ограничения ресурсов в соответствии с рекомендациями по размеру. Дополнительные параметры конфигурации см. в разделе Конфигурация АктивныхШлюзов.
- Развертывание АктивногоШлюза.
- Kubernetes
kubectl apply -f ./ag-deployment-example.yaml - OpenShift
oc apply -f ./ag-deployment-example.yaml
- Kubernetes
- Чтобы убедиться, что АктившныйШлюз успешно подключился к серверу Ключ-АСТРОМ, перейдите в раздел Состояние развертывания > АктивныйШлюз.
Встроенная директория Ключ-АСТРОМ
- Создайте выделенное пространство имен.
- Kubernetes
kubectl create namespace astromkey - OpenShift
oc adm new-project --node-selector="" astromkey
- Kubernetes
- Создайте ключ, содержащий URL-адрес среды и данные аутентификации для этого реестра.
- Kubernetes
kubectl -n astromkey create secret docker-registry astromkey-docker-registry \--docker-server=<YOUR_ENVIRONMENT_URL> \--docker-username=<YOUR_ENVIRONMENT_ID> \--docker-password=<YOUR_INSTALLER_DOWNLOAD_TOKEN> - OpenShift
oc -n astromkey create secret docker-registry astromkey-docker-registry \--docker-server=<YOUR_ENVIRONMENT_URL> \--docker-username=<YOUR_ENVIRONMENT_ID> \--docker-password=<YOUR_INSTALLER_DOWNLOAD_TOKEN> -n astromkey
Вам нужно заменить<YOUR_ENVIRONMENT_URL>с URL вашей среды (безhttps://). Пример:abc12345.live.astromkey.com<YOUR_ENVIRONMENT_ID>с именем пользователя учетной записи Docker (таким же, как идентификатор в URL-адресе вашей среды выше).
Чтобы определить идентификатор вашей среды, смотрите синтаксис ниже.- SaaS-решение:
https://{your-environment-id}.live.astromkey.com - Managed:
https://{your-domain}/e/{your-environment-id} <YOUR_INSTALLER_DOWNLOAD_TOKEN>с токеном доступаInstallerDownloadс областью действия, созданной вами в разделе Предустановка.
- SaaS-решение:
- Kubernetes
- Создайте ключ, содержащий данные аутентификации на сервере Ключ-АСТРОМ, используемом АктивнымШлюзом.
- Kubernetes
kubectl -n astromkey create secret generic astromkey-tokens \--from-literal=tenant-token=<YOUR_TENANT_TOKEN> \--from-literal=auth-token=<YOUR_AUTH_TOKEN> - OpenShift
oc -n astromkey create secret generic astromkey-tokens \--from-literal=tenant-token=<YOUR_TENANT_TOKEN> \--from-literal=auth-token=<YOUR_AUTH_TOKEN>
Вам нужно заменить<YOUR_TENANT_TOKEN>с значениемtenantToken, полученным в Предустановке из информации о подключении.<YOUR_AUTH_TOKEN>с индивидуальным токеном АктивногоШлюза, полученным в Предустановке.
- Kubernetes
- Создайте файл
ag-deployment-example.yamlсо следующим содержимым:
ag-deployment-example.yaml
| apiVersion: v1
kind: Service metadata: name: astromkey-activegate namespace: astromkey spec: type: ClusterIP selector: app.kubernetes.io/component: activegate component.astromkey.com/feature: activegate ports: - protocol: TCP port: 443 targetPort: ag-https --- apiVersion: apps/v1 kind: StatefulSet metadata: name: astromkey-activegate namespace: astromkey labels: app.kubernetes.io/component: activegate component.astromkey.com/feature: activegate spec: podManagementPolicy: Parallel serviceName: "" selector: matchLabels: app.kubernetes.io/component: activegate component.astromkey.com/feature: activegate template: metadata: labels: app.kubernetes.io/component: activegate component.astromkey.com/feature: activegate spec: affinity: nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: kubernetes.io/arch operator: In values: - amd64 - key: kubernetes.io/os operator: In values: - linux containers: - name: activegate image: <YOUR_ENVIRONMENT_URL>/linux/activegate:raw imagePullPolicy: Always ports: - containerPort: 9999 name: ag-https protocol: TCP env: - name: DT_TENANT value: <YOUR_ENVIRONMENT_ID> - name: DT_SERVER value: <YOUR_COMMUNICATION_ENDPOINTS> - name: DT_ID_SEED_NAMESPACE value: astromkey - name: DT_ID_SEED_K8S_CLUSTER_ID value: <YOUR_KUBE-SYSTEM_NAMESPACE_UUID> - name: DT_CAPABILITIES value: restInterface,kubernetes_monitoring,MSGrouter,metrics_ingest - name: DT_DEPLOYMENT_METADATA value: orchestration_tech=handcrated-ag-sts;script_version=none;orchestrator_id=none - name: DT_DNS_ENTRY_POINT value: https://$(astromkey_ACTIVEGATE_SERVICE_HOST):$(astromkey_ACTIVEGATE_SERVICE_PORT)/communication volumeMounts: - name: astromkey-tokens mountPath: /var/lib/astromkey/secrets/tokens - name: truststore-volume mountPath: /opt/astromkey/gateway/jre/lib/security/cacerts readOnly: true subPath: k8s-local.jks - name: server-certs-storage mountPath: /var/lib/astromkey/gateway/ssl - name: ag-lib-gateway-config mountPath: /var/lib/astromkey/gateway/config - name: ag-lib-gateway-temp mountPath: /var/lib/astromkey/gateway/temp - name: ag-lib-gateway-data mountPath: /var/lib/astromkey/gateway/data - name: ag-log-gateway mountPath: /var/log/astromkey/gateway - name: ag-tmp-gateway mountPath: /var/tmp/astromkey/gateway livenessProbe: failureThreshold: 2 httpGet: path: /rest/state port: ag-https scheme: HTTPS initialDelaySeconds: 30 periodSeconds: 30 successThreshold: 1 timeoutSeconds: 1 readinessProbe: failureThreshold: 3 httpGet: path: /rest/health port: ag-https scheme: HTTPS initialDelaySeconds: 30 periodSeconds: 15 successThreshold: 1 timeoutSeconds: 1 resources: requests: cpu: 500m memory: 512Mi limits: cpu: 1000m memory: 1.5Gi securityContext: allowPrivilegeEscalation: false capabilities: drop: - all privileged: false readOnlyRootFilesystem: true runAsNonRoot: true seccompProfile: type: RuntimeDefault initContainers: - name: certificate-loader image: <YOUR_ENVIRONMENT_URL>/linux/activegate:raw workingDir: /var/lib/astromkey/gateway command: ['/bin/bash'] args: ['-c', '/opt/astromkey/gateway/k8scrt2jks.sh'] volumeMounts: - mountPath: /var/lib/astromkey/gateway/ssl name: truststore-volume imagePullSecrets: - name: astromkey-docker-registry volumes: - name: truststore-volume emptyDir: {} - name: astromkey-tokens secret: secretName: astromkey-tokens - name: server-certs-storage emptyDir: {} - name: ag-lib-gateway-config emptyDir: {} - name: ag-lib-gateway-temp emptyDir: {} - name: ag-lib-gateway-data emptyDir: {} - name: ag-log-gateway emptyDir: {} - name: ag-tmp-gateway emptyDir: {} updateStrategy: type: RollingUpdate |
- Измените файл YAML развертывания. Добавьте в файл
ag-deployment-example.yamlсведения о конфигурации среды, обязательно заменив:<YOUR_ENVIRONMENT_URL>с URL вашей среды (безhttps://). Пример:abc12345.live.astromkey.com<YOUR_ENVIRONMENT_ID>с именем пользователя учетной записи Docker (таким же, как идентификатор в URL-адресе вашей среды выше)
Чтобы определить идентификатор вашей среды, смотрите синтаксис ниже.- SaaS-решение:
https://{your-environment-id}.live.astromkey.com - Managed:
https://{your-domain}/e/{your-environment-id}
- SaaS-решение:
<YOUR_COMMUNICATION_ENDPOINTS>c значениемcommunicationEndpoints, полученным в Предустановке из информации о подключении.
Список конечных точек связи с сервером (communicationEndpoints) может со временем меняться.<YOUR_KUBE-SYSTEM_NAMESPACE_UUID>с UUID пространства имен kube-system, полученным в Предустановке.
Параметры:- необязательно Вы можете изменить версию образа, используя другой тег версии.
raw— Последний доступный образ1.sprint.patchlevel-raw— Образ для конкретной версии АктивногоШлюза (например,1.297.0-raw)
- необязательно Включите AppArmor, если он доступен.
Для обеспечения совместимости с более широким спектром кластеров Kubernetes профиль AppArmor не указан вag-deployment-example.yaml. Если AppArmor доступен в вашем кластере Kubernetes, мы рекомендуем вам дополнительно аннотировать StatefulSet с помощью профиляruntime/default.spec:template:metadata:annotations:container.apparmor.security.beta.kubernetes.io/activegate: runtime/default - необязательно Применяйте ограничения ресурсов в соответствии с рекомендациями по размеру.
- Развертывание АктивногоШлюза.
- Kubernetes
kubectl apply -f ./ag-deployment-example.yaml - OpenShift
oc apply -f ./ag-deployment-example.yaml
- Kubernetes
- Чтобы убедиться, что АктивныйШлюз успешно подключился к серверу Ключ-АСТРОМ, перейдите в раздел Состояние развертывания > АктивныеШлюзы.
Выделенные развертывания
- Для мониторинга Kubernetes/Openshift выберите один из следующих вариантов:
- Использовать оператор Ключ-АСТРОМ
- Развертывание АктивногоШлюза напрямую как StatefulSet
- Для сбора логов из Kubernetes используйте Мониторинг журналов.
Образы, соответствующие стандарту FIPS
АктивныйШлюз версии 1.315+
Доступен выделенный образ АктивногоШлюза, соответствующий FIPS.