Instalador do Sensedia Service Mesh
Sobre o instalador
O instalador do Sensedia Service Mesh agora está mais simples.
Em 3 passos, você já terá o Sensedia Service Mesh instalado em seu cluster.
Requisitos
-
Um cluster Kubernetes.
-
As versões do Kubernetes suportadas são 1.22 - 1.25.
-
-
Quaisquer ferramentas necessárias para interagir com o seu Kubernetes ou fornecedor de ambiente em nuvem. Normalmente, isso inclui uma ferramenta de interface de linha de comando. Aqui estão alguns links úteis para obter essas ferramentas, bem como para verificar a documentação do seu fornecedor caso necessite de informações mais detalhadas:
-
Docker, para executar o instalador.
-
Cert-Manager (o gerenciador de certificados nativo do Kubernetes)
-
Provedor OpenId Connect
-
Uma conexão com o Keycloak
Passo 01: Obtenha os arquivos de configuração
Dentro do diretório desejado, execute o seguinte comando para obter os arquivos de configuração a serem utilizados pelo instalador:
curl -L https://sensedia-mesh-installer.sensedia.com/ | sh -
Se a execução do comando acima for bem-sucedida, o diretório sensedia-mesh-config
será criado no local onde ele foi executado.
Esse diretório contém os seguintes arquivos:
. ├── .env ├── setup.sh └── values └── sensedia ├── keycloak-adp-values.yaml ├── manager-values.yaml └── operator-values.yaml
Os arquivos .env
, keycloak-adp-values.yaml
e manager-values.yaml
deverão ser alterados no passo seguinte.
O arquivo operator-values.yaml
deverá, a princípio, permanecer vazio.
Caso necessário, a equipe da Sensedia fornecerá informações para serem adicionadas a ele.
Passo 02: Realizando as configurações de instalação
A instalação do Sensedia Service Mesh requer que algumas configurações sejam realizadas.
Para realizá-las, os seguintes arquivos contidos no diretório sensedia-mesh-config
deverão ser modificados:
-
.env
-
values/sensedia/keycloak-adp-values.yaml
-
values/sensedia/manager-values.yaml
As subseções a seguir trazem instruções sobre como realizar as configurações de instalação.
Informe a URL do repositório Helm
-
Entre em contato com a Sensedia para obter a URL do repositório Helm;
-
Substitua o parâmetro
<HELMR>
do arquivo.env
pela URL que você obteve:
# Helm repository for Sensedia Mesh SENSEDIA_HELM_REPO=<HELMR> # Attention!!! Be careful when changing the value to true! It will be used to remove Istio and Sensedia Mesh FORCE_UNINSTALL_SERVICES=false
O instalador não solicita confirmação antes de remover os serviços. Por isso, para evitar que os serviços sejam removidos por acidente, o valor predefinido de |
Configure o Keycloak para o gerenciamento das permissões de usuário
No arquivo values/sensedia/keycloak-adp-values.yaml
, substitua os valores indicados por <EDIT>
pelos valores correspondentes a sua conexão com o Keycloak:
# -- Enable to install Sensedia Mesh Keycloak Adapter
enabled: true
# -- keycloak connection parameters
keycloak:
# -- The base url for connecting to a Keycloak Admin API. It should contain the scheme, host and port, but not path. For example: https://keycloak.mydomain.com/
baseUrl: <EDIT>
# -- Sensedia Service Mesh Client Id for authenticating when using Keycloak Admin Apis with the OAuth2 Client Credentials Protocol
clientId: <EDIT>
# -- Sensedia Service Mesh Client Secret for authenticating when using Keycloak Admin Apis with the OAuth2 Client Credentials Protocol
clientSecret: <EDIT>
# -- The Keycloak realm that Sensedia Mesh will authenticate to. All Sensedia Mesh client configuration and its users should belong to this realm
realm: <EDIT>
Com o valor do campo enabled especificado como true , o Keycloak Adapter será instalado.
|
Autenticação
O Sensedia Service Mesh requer um provedor OpenId Connect para autenticação.
Para configurar o OpenId Connect, você precisará criar um novo Client no seu provedor OpenId e obter dele as seguintes informações:
-
Client Secret
-
Client Id
-
URL do provedor
De posse dessas informações, substitua os valores indicados por <EDIT>
nos campos manager.openid.baseUrl
, manager.oauth.client.id
e manager.oauth.client.secret
do arquivo values/sensedia/manager-values.yaml
:
webUI:
host: <EDIT>
scheme: "http"
manager:
sensediaAuth:
enabled: false
openid:
enabled: true
baseUrl: <EDIT>
scopes: profile;email
oauth:
client:
id: <EDIT>
secret: <EDIT>
iam:
adapter: keycloak
ingress:
enabled: true
host: <EDIT>
tls: true
annotations: <EDIT>
Além desses campos, há também os campos manager.openid.scopes
e manager.openid.extraParams
, que são opcionais.
A configuração de manager.openid.scopes
permite ao Sensedia Service Mesh obter o nome de usuário e o endereço de e-mail e utilizá-los para exibir informações do usuário na interface gráfica do produto.
O valor de manager.openid.extraParams
é específico a cada provedor OpenId.
Ele pode ser usado para especificar parâmetros query à URL de autenticação OpenID, no formato chave=valor
.
Por exemplo, ao usar extraParams: "hd=sensedia.com"
, estamos solicitando ao provedor que aceite apenas contas sensedia.com
para iniciar uma sessão.
Expondo a interface Web do Sensedia Service Mesh
A instalação do Sensedia Service Mesh não expõe a aplicação para fora do cluster Kubernetes. A razão disso é permitir que cada usuário decida qual abordagem utilizar para fazê-lo.
O ponto de entrada da aplicação é o serviço mesh-router
do namespace sensedia-system
.
Para expor a aplicação, basta expor esse serviço.
Para informações detalhadas para cada Provedor de Serviços de Nuvem, consulte as seguintes documentações:
No arquivo values/sensedia/manager-values.yaml
você deve informar:
-
O host do seu ambiente provisionado nos campos
webUI.host
eingress.host
; -
As anotações específicas do seu Provedor de Serviços de Nuvem no campo
ingress.annotations
.
(Opcional) Configurando uma instância do MongoDB própria
O instalador já possui uma instância do MongoDB pré-configurada.
Caso deseje utilizar as configurações de sua própria instância, edite o arquivo values/sensedia/manager-values.yaml
incluindo as informações correspondentes como a seguir:
manager:
mongodb: # parameters for MongoDB connection
host: "mesh-manager-mongodb"
port: "27017"
database: "mesh-manager"
user: "admin" # application's database user, used by mesh-manager
password: "admin"
migrationUser: "admin" # migration's database user with "dbAdmin" role, used to create the required collections and indexes for the application
migrationPassword: "admin"
mongodb: # demo feature. Creates a database automatically
auth:
rootPassword: "root" # sets the password for the root user
databases: ["mesh-manager"] # database's name
usernames: ["admin"] # initializes database with these users
passwords: ["admin"] # sets the password for the users above, respectively
Passo 03: Instalando o Sensedia Service Mesh
-
Acesse o cluster Kubernetes onde o Sensedia Service Mesh será instalado.
-
Certifique-se de possuir as permissões necessárias para acessar esse cluster. Para isso, você pode tentar executar o seguinte comando:
kubectl get po -A
-
No diretório
sensedia-mesh-config
, execute o seguinte comando para instalar o Sensedia Service Mesh e suas dependências:./setup.sh
Verificando a instalação
Você pode usar o seguinte comando para verificar se as aplicações helm estão instaladas:
helm list -n sensedia-system NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION mesh-init sensedia-system 1 2022-03-08 16:04:25 -0300 -03 deployed sensedia-mesh-init-1.4.0 1.4.0.0 mesh-manager sensedia-system 1 2022-03-08 16:50:28 -0300 -03 deployed sensedia-mesh-manager-1.4.0 1.4.0.0 mesh-operator sensedia-system 1 2022-03-08 16:04:25 -0300 -03 deployed sensedia-mesh-operator-1.4.0 1.4.0.0
Caso haja algum erro, tente repetir o processo ou entre em contato com o suporte da Sensedia.
Acessando a interface Web de usuário
Obtenha o ingress mesh-manager
com este comando:
kubectl get ingress sensedia-mesh-manager -n sensedia-system NAME HOSTS ADDRESS PORTS AGE sensedia-mesh-manager manager-sensedia-mesh-api-platform-testing.sensedia-eng.com e1a0fd59-sensediasystem-se-6385-1406950746.us-east-1.elb.amazonaws.com 80, 443 43m
O host deve corresponder ao host configurado anteriormente quando da instalação do manager. Em seguida, poderá acessar a interface de usuário pelo seu navegador.
Se todo o processo tiver ocorrido bem, você verá todas as suas malhas (meshes) na tela principal.
Desinstalação
-
No arquivo
.env
do diretóriosensedia-mesh-config
, altere paratrue
o valor da variávelFORCE_UNINSTALL_SERVICES
. -
Execute o seguinte comando no diretório
sensedia-mesh-config
(isso irá desinstalar o Sensedia Service Mesh e suas dependências):
./setup.sh uninstallAll
O instalador não solicita confirmação antes de remover os serviços. |
Share your suggestions with us!
Click here and then [+ Submit idea]