SMS Gateway in Kubernetes in IBM Cloud Kubernetes Service bereitstellen
Sie können SMS Gateway in der Cloud ausführen, indem Sie das Produkt in einem Kubernetes-Cluster in IBM Cloud Kubernetes Service bereitstellen.
Vorbereitungen
-
Erstellen Sie eine Telefonnummer mit SMS-Funktionalität und erstellen Sie den IBM Watson™ Assistant-Service gemäß der Beschreibung unter Erste Schritte mit SMS Gateway.
-
Klonen Sie das auf GitHub verfügbare sample.voice.gateway-Repository oder laden Sie es herunter. Dieses Repository enthält Beispieldateien für die Bereitstellung von SMS Gateway, wie z. B. eine Kubernetes-Bereitstellungsdatei und -Servicerichtlinie.
-
Melden Sie sich für eine IBMid und ein IBM Cloud-Konto an und erstellen Sie eine IBM Watson™ Assistant-Serviceinstanz. (Nur Self-Service)
Wichtig: Notieren Sie sich die Berechtigungsnachweise. Sie müssen die Berechtigungsnachweise in der SMS Gateway-Konfiguration angeben.
-
Erstellen Sie auch in IBM Cloud einen Kubernetes-Cluster in IBM® Cloud Kubernetes Service. Weitere Informationen zum Einrichten Ihres Clusters finden Sie unter IBM Cloud Kubernetes Service.
Hinweis Lite-Cluster stehen für eine auf 30 Tage begrenzte Zeit zum kostenlosen Test zur Verfügung. Der Cluster wird nach Ablauf dieses Testzeitraums automatisch entfernt. Stellen Sie sicher, dass Sie für Bereitstellungen in Produktionsumgebungen Standardcluster verwenden. Weitere Informationen finden Sie unter cluster comparison information in der Dokumentation zu IBM Cloud Kubernetes Service.
SMS Gateway in IBM Cloud Kubernetes Service bereitstellen
-
Konfigurieren Sie die folgenden CLI-Tools, damit Sie über die Befehlszeile auf Ihren Kubernetes-Cluster in IBM Cloud zugreifen können.
- Installieren Sie die IBM Cloud-Befehlszeilenschnittstelle, die für die Interaktion mit IBM Cloud Kubernetes Service über die Befehlszeile erforderlich ist.
-
Das IBM Cloud Kubernetes Service-Plug-in (ibmcloud ks) ist erforderlich, um Ihre SMS Gateway-Cluster über die Befehlszeile zu verwalten. Mit der Kubernetes-Befehlszeilenschnittstelle können Sie native Kubernetes-Befehle für die Interaktion mit der IBM Cloud verwenden.
-
Konfigurieren Sie die IBM Cloud-Befehlszeilenschnittstelle, um die
kubectl-Befehle auszuführen.Nachdem Sie die Befehlszeilenschnittstelle konfiguriert haben, können Sie die Kubernetes-Befehle
kubectlausführen, um mit Ihrem SMS Gateway-Cluster in IBM Cloud zu arbeiten.
-
Wechseln Sie in das Verzeichnis
sms/kubernetes/bluemix/single-tenantoder in das Verzeichnissms/kubernetes/bluemix/multi-tenantin Ihrem lokalen Klon des sample.voice.gateway-Repositorys. Kopieren Sie den Inhalt in ein neues Verzeichnis, über das Sie SMS Gateway bereitstellen möchten. -
Öffnen Sie in demselben Verzeichnis die Kubernetes-Bereitstellungsdatei
deploy.json, die die Konfigurationsinformationen für den SMS Gateway-Container enthält. Dasenv-Objekt enthält eine Liste von Name/Wert-Paaren, die jeweils den Konfigurationsumgebungsvariablen entsprechen.Anmerkung: Die folgenden Beispiele zeigen eine Single-Tenant-Konfiguration. Wenn Sie eine Multi-Tenant-Konfiguration verwenden, öffnen Sie die Datei
deploy-multi-tenant.jsonund konfigurieren Sie Ihre Tenant-Service-Berechtigungsnachweiseconversation,smsProviderundtenantPhoneNumber. Weitere Informationen finden Sie unter Tenants in einer Multi-Tenant-JSON-Konfiguration für SMS Gateway konfigurieren.-
Geben Sie für Watson Assistant die Serviceberechtigungsnachweise und die Arbeitsbereichs-ID an. Informationen zur Ermittlung der Serviceberechtigungsnachweise finden Sie unter Serviceberechtigungsnachweise für Watson-Services.
Tipp: Wenn Sie die Watson Assistant-Arbeitsbereichs-ID suchen, rufen Sie die Arbeitsbereichsansicht im Watson Assistant-Tool auf. Klicken Sie in dem Arbeitsbereich, den Sie integrieren möchten, auf das Aktionssymbol (⋮) und wählen Sie den Eintrag zum Anzeigen von Details aus.
Beispiel:
{ "name": "WATSON_CONVERSATION_URL", "value": "https://gateway.watsonplatform.net/conversation/api/" }, { "name": "WATSON_CONVERSATION_USERNAME", "value": "9h7f54cb-d9ed-46b3-8492-e9a9bf555021" }, { "name": "WATSON_CONVERSATION_PASSWORD", "value": "InWtiUpYhF1Z" }, { "name": "WATSON_CONVERSATION_WORKSPACE_ID", "value": "a23de67h-e527-40d5-a867-5c0ce9e72d0d" } -
Geben Sie für den SMS-Provider die API-URL und die Anmeldeberechtigungsnachweise an.
Der Benutzername wird der Konto-SID und das Kennwort dem Authentifizierungstoken zugeordnet. Sie finden diese beiden Wert in der Konsole für Ihren SMS-Provider.
Beispiel:
{ "name": "SMS_PROVIDER_URL", "value": "https://api.twilio.com" }, { "name": "SMS_PROVIDER_USERNAME", "value": "23de67h0236e5e7c7f1ead4499h7f54cb" }, { "name": "SMS_PROVIDER_PASSWORD", "value": "9h7f54cb3b1d3736e19ac64aa23de67h" } -
Geben Sie als Wert für die Tenanttelefonnummer die vollständige Telefonnummer Ihres SMS-Providers an. Verwenden Sie das exakte Zahlenformat, das der SMS-Provider benötigt. Wenn Sie beispielsweise eine Twilio-Telefonnummer angeben möchten, geben Sie ein Pluszeichen (+) sowie die Ländervorwahl und Ortsnetzkennzahl an. Geben Sie für RestcommONE das Pluszeichen (+) nicht mit an.
Beispiel:
{ "name": "TENANT_PHONE_NUMBER", "value": "+12345556789" } -
Optional: Wenn Sie möchten, dass Benutzer durch Senden einer SMS-Nachricht an das Gateway SMS-Sitzungen erstellen können, setzen Sie den Wert für
ALLOW_SESSION_CREATE_VIA_SMSauftrue. Standardmäßig können SMS-Sitzungen nur unter Verwendung der REST-API erstellt werden.Beispiel:
{ "name": "ALLOW_SESSION_CREATE_VIA_SMS", "value": "true" }
-
-
Nachdem der Cluster bereit ist, setzen Sie den Kontext für Ihre lokale CLI auf Ihren Cluster, indem Sie eine
KUBECONFIG-Umgebungsvariable verwenden. Verwenden Sie diese Umgebungsvariable zum Ausführen der kubectl-Befehle, um mit dem Cluster zu arbeiten.-
Melden Sie sich bei IBM Cloud an.
ibmcloud login --sso -
Führen Sie den folgenden Befehl aus, um den Pfad abzurufen, den Sie für Ihre
KUBECONFIG-Umgebungsvariable von Ihrem IBM Cloud Kubernetes Service-Service verwenden können.ibmcloud cs cluster-config <Clustername_oder_ID> --admin -
Exportieren Sie die
KUBECONFIG-Variable, indem Sie den Pfad verwenden, den Sie für Ihren IBM Cloud Kubernetes Service-Cluster abgerufen haben. Das folgende Beispiel zeigt, wie Ihre Kube-Konfiguration aussehen könnte.export KUBECONFIG=/root/.bluemix/plugins/container-service/clusters/<Clustername_oder_ID>-admin/kube-config-xxxx-<Clustername_oder_ID>.yml -
Wenden Sie die Datei
service.yamlan, die sich in dem Repository befindet, in das Sie Ihren Klon aus dem SMS Gateway-Beispiel kopiert haben.kubectl apply -f service.yaml
-
-
Erstellen Sie einen geheimen Kubernetes-Schlüssel, um die Kennwortberechtigungsnachweise für Ihre Watson-Serviceinstanzen zu speichern. Führen Sie zum Erstellen des geheimen Schlüssels den Befehl
kubectl create secret generic secret-credsaus und verwenden Sie die Option--from-literal, um die Umgebungsvariable und den Kennwortberechtigungsnachweis für Ihren Watson Assistant-Service anzugeben. Das folgende Beispiel veranschaulicht, wie ein geheimer Schlüssel für eine Single-Tenant-Bereitstellung generiert wird.kubectl create secret generic secret-creds --from-literal=WATSON_CONVERSATION_PASSWORD='prqNfi8Dsj'Servicekennwörter für Multi-Tenant-Bereitstellungen werden in der Tenantkonfigurationsdatei
tenantconfig/tenantConfig.jsongespeichert. Wenn Sie eine Multi-Tenant-Konfiguration verwenden, erstellen Sie einen geheimen Kubernetes-Schlüssel mit--from-file. Informationen darüber, wie Sie Berechtigungsnachweise für Servicekennwörter konfigurieren, finden Sie unter Tenants in einer Multi-Tenant-JSON-Konfiguration für SMS Gateway konfigurieren.kubectl create secret generic secret-tenantconfig --from-file=tenantconfig/tenantConfig.jsonDieser geheime Schlüssel kann jedes Mal wiederverwendet werden, wenn Sie SMS Gateway erneut bereitstellen. Sie müssen den geheimen Schlüssel nur dann erneut erstellen, wenn Sie Serviceinstanzen ändern. Wenn Sie eine Liste der von Ihnen erstellten geheimen Schlüssel anzeigen möchten, verwenden Sie den Befehl
kubectl get secrets. -
Erstellen Sie einen Kubernetes-Pod, der die SMS Gateway-Container enthält, indem Sie Ihre Bereitstellungsdatei mit dem Befehl
kubectl createangeben.kubectl create -f deploy.jsonWenn Sie diesen Befehl ausführen, wird ein SMS Gateway-Pod in einem einzelnen Workerknoten innerhalb eines Kubernetes-Clusters bereitgestellt. Wenn Sie eine Multi-Tenant-Bereitstellung verwenden möchten, verwenden Sie die Bereitstellungsdatei
deploy-multi-tenant.jsonanstelle der Dateideploy.json. -
Suchen Sie die öffentliche IP-Adresse, um Ihre Bereitstellung auszuführen.
ibmcloud cs workers <Clustername_oder_ID>
Nächste Schritte
Nachdem Sie SMS Gateway in IBM Cloud Kubernetes Service bereitgestellt haben, konfigurieren Sie einen Webhook und testen Sie Ihre Bereitstellung gemäß der Beschreibung unter Erste Schritte mit SMS Gateway. Sie
können den Befehl ibmcloud ks workers Name_des_eigenen_Clusters ausführen, um die öffentliche IP-Adresse zu ermitteln.
Wenn Sie mit der Verwendung von kubectl für die Interaktion mit Kubernetes-Clustern nicht vertraut sind, lesen Sie die Kubernetes-Dokumentation, die einen kubectl-Spickzettel
enthält.
Sie können Ihre SMS Gateway-Bereitstellung darüber hinaus konfigurieren, indem Sie die Datei deploy.json bzw. die Datei deploy-multi-tenant.json bearbeiten, um Konfigurationsvariablen hinzuzufügen
oder zu ändern und um anschließend Ihren Pod erneut bereitzustellen.
Informationen zu Ihren Pods anzeigen
Nachdem Sie Ihre SMS Gateway-Pods gestartet haben, können Sie über das Kubernetes-Dashboard oder über die Befehlszeile Informationen zu Ihren Pods anzeigen.
- Wenn Sie das Kubernetes-Dashboard aufrufen möchten, führen Sie den Befehl
kubectl proxyaus und geben Sie anschließend die URLhttp://localhost:8001/ui/in Ihrem Browser ein. - Gehen Sie wie folgt vor, um Informationen zu Pods über die Befehlszeile abzurufen:
- Alle Pods anzeigen:
kubectl get pods - Details zu einem bestimmten Pod abrufen:
kubectl describe pod pod1
- Alle Pods anzeigen: