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

SMS Gateway in IBM Cloud Kubernetes Service bereitstellen

  1. Konfigurieren Sie die folgenden CLI-Tools, damit Sie über die Befehlszeile auf Ihren Kubernetes-Cluster in IBM Cloud zugreifen können.

    1. Installieren Sie die IBM Cloud-Befehlszeilenschnittstelle, die für die Interaktion mit IBM Cloud Kubernetes Service über die Befehlszeile erforderlich ist.
    2. Installieren Sie das IBM Cloud Kubernetes Service-Plug-in (ibmcloud ks) und die Kubernetes-Befehlszeilenschnittstelle.

      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.

  1. Konfigurieren Sie die IBM Cloud-Befehlszeilenschnittstelle, um die kubectl-Befehle auszuführen.

    Nachdem Sie die Befehlszeilenschnittstelle konfiguriert haben, können Sie die Kubernetes-Befehle kubectl ausführen, um mit Ihrem SMS Gateway-Cluster in IBM Cloud zu arbeiten.

  1. Wechseln Sie in das Verzeichnis sms/kubernetes/bluemix/single-tenant oder in das Verzeichnis sms/kubernetes/bluemix/multi-tenant in Ihrem lokalen Klon des sample.voice.gateway-Repositorys. Kopieren Sie den Inhalt in ein neues Verzeichnis, über das Sie SMS Gateway bereitstellen möchten.

  2. Öffnen Sie in demselben Verzeichnis die Kubernetes-Bereitstellungsdatei deploy.json, die die Konfigurationsinformationen für den SMS Gateway-Container enthält. Das env-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.json und konfigurieren Sie Ihre Tenant-Service-Berechtigungsnachweise conversation, smsProvider und tenantPhoneNumber. 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_SMS auf true. Standardmäßig können SMS-Sitzungen nur unter Verwendung der REST-API erstellt werden.

      Beispiel:

      {
      "name": "ALLOW_SESSION_CREATE_VIA_SMS",
      "value": "true"
      }
      
  3. 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.

    1. Melden Sie sich bei IBM Cloud an.

      ibmcloud login --sso
      
    2. 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
      
    3. 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
      
    4. Wenden Sie die Datei service.yaml an, die sich in dem Repository befindet, in das Sie Ihren Klon aus dem SMS Gateway-Beispiel kopiert haben.

      kubectl apply -f service.yaml
      
  4. 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-creds aus 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.json gespeichert. 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.json
    

    Dieser 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.

  5. Erstellen Sie einen Kubernetes-Pod, der die SMS Gateway-Container enthält, indem Sie Ihre Bereitstellungsdatei mit dem Befehl kubectl create angeben.

    kubectl create -f deploy.json
    

    Wenn 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.json anstelle der Datei deploy.json.

  6. 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.