Установка SuiteCRM на Minikube/K8s

Я новичок в suiteCRM и пытаюсь развернуться в Minikube. Я использую диаграммы руля в репозитории K8s:

https://github.com/kubernetes/charts/tree/master/stable/suitecrm

Я использую команду:

helm install --name red-falcon-crm -f values.yaml stable/suitecrm

Я изменил файл values.yaml, добавив в него некоторые пользовательские значения (например, адрес электронной почты, имя пользователя, пароль). Установка не удалась, хотя я не получаю очень полезных ошибок. Я получаю ошибки о том, что у меня нет разрешимого хоста, но я надеялся использовать прокси.

craig@craigs-laptop:~/redfalcon/gitlab/platform-setup/modules/suitecrm$ helm install --name red-falcon-crm -f values.yaml stable/suitecrm
NAME:   red-falcon-crm
LAST DEPLOYED: Tue Oct 31 19:13:03 2017
NAMESPACE: default
STATUS: DEPLOYED

RESOURCES:
==> v1/Pod(related)
NAME                                     READY  STATUS             RESTARTS  AGE
red-falcon-crm-mariadb-7fb6774f5c-b5w7t  0/1    ContainerCreating  0         0s

==> v1/Secret
NAME                     TYPE    DATA  AGE
red-falcon-crm-mariadb   Opaque  2     1s
red-falcon-crm-suitecrm  Opaque  2     1s

==> v1/ConfigMap
NAME                    DATA  AGE
red-falcon-crm-mariadb  1     1s

==> v1/PersistentVolumeClaim
NAME                              STATUS   VOLUME                                    CAPACITY  ACCESS MODES  STORAGECLASS  AGE
red-falcon-crm-mariadb            Bound    pvc-cf72d52d-bea1-11e7-b8a4-080027c951c6  8Gi       RWO           standard      1s
red-falcon-crm-suitecrm-apache    Pending  standard                                  1s
red-falcon-crm-suitecrm-suitecrm  Pending  standard                                  1s

==> v1/Service
NAME                     TYPE          CLUSTER-IP  EXTERNAL-IP  PORT(S)                     AGE
red-falcon-crm-mariadb   ClusterIP     10.0.0.104  <none>       3306/TCP                    1s
red-falcon-crm-suitecrm  LoadBalancer  10.0.0.89   <pending>    80:32750/TCP,443:31973/TCP  1s

==> v1beta1/Deployment
NAME                    DESIRED  CURRENT  UP-TO-DATE  AVAILABLE  AGE
red-falcon-crm-mariadb  1        1        1           0          1s


NOTES:
###############################################################################
### ERROR: You did not provide an external host in your 'helm install' call ###
###############################################################################

This deployment will be incomplete until you configure SuiteCRM with a resolvable
host. To configure SuiteCRM with the URL of your service:

1. Get the SuiteCRM URL by running:

  NOTE: It may take a few minutes for the LoadBalancer IP to be available.
        Watch the status with: 'kubectl get svc --namespace default -w red-falcon-crm-suitecrm'

  export APP_HOST=$(kubectl get svc --namespace default red-falcon-crm-suitecrm --template "{{ range (index .status.loadBalancer.ingress 0) }}{{.}}{{ end }}")
  export APP_PASSWORD=$(kubectl get secret --namespace default red-falcon-crm-suitecrm -o jsonpath="{.data.suitecrm-password}" | base64 --decode)
  export APP_DATABASE_PASSWORD=$(kubectl get secret --namespace default red-falcon-crm-mariadb -o jsonpath="{.data.mariadb-root-password}" | base64 --decode)

2. Complete your SuiteCRM deployment by running:

  helm upgrade red-falcon-crm \
    --set suitecrmHost=$APP_HOST,suitecrmPassword=$APP_PASSWORD,mariadb.mariadbRootPassword=$APP_DATABASE_PASSWORD stable/suitecrm

craig@craigs-laptop:~/redfalcon/gitlab/platform-setup/modules/suitecrm$ kubectl get svc --namespace default -w red-falcon-crm-suitecrm
NAME                      TYPE           CLUSTER-IP   EXTERNAL-IP   PORT(S)                      AGE
red-falcon-crm-suitecrm   LoadBalancer   10.0.0.89    <pending>     80:32750/TCP,443:31973/TCP   3m
^Ccraig@craigs-laptop:~/redfalcon/gitlab/platform-setup/modules/suitecrm$ minikube service red-falcon-crm-suitecrm
Waiting, endpoint for service is not ready yet...
Waiting, endpoint for service is not ready yet...
Waiting, endpoint for service is not ready yet...
Waiting, endpoint for service is not ready yet...
Waiting, endpoint for service is not ready yet...
Waiting, endpoint for service is not ready yet...
Waiting, endpoint for service is not ready yet...
Waiting, endpoint for service is not ready yet...
Waiting, endpoint for service is not ready yet...
Waiting, endpoint for service is not ready yet...
Waiting, endpoint for service is not ready yet...
Waiting, endpoint for service is not ready yet...
Waiting, endpoint for service is not ready yet...
Waiting, endpoint for service is not ready yet...
Waiting, endpoint for service is not ready yet...
Waiting, endpoint for service is not ready yet...
Waiting, endpoint for service is not ready yet...
Waiting, endpoint for service is not ready yet...
Waiting, endpoint for service is not ready yet...

Мои ценности.yaml:

## Bitnami SuiteCRM image version
## ref: https://hub.docker.com/r/bitnami/suitecrm/tags/
##
image: bitnami/suitecrm:7.9.7-r0

## Specify a imagePullPolicy
## ref: http://kubernetes.io/docs/user-guide/images/#pre-pulling-images
##
imagePullPolicy: IfNotPresent

## SuiteCRM host to create application URLs
## ref: https://github.com/bitnami/bitnami-docker-suitecrm#configuration
##
# suitecrmHost:

## loadBalancerIP for the SuiteCRM Service (optional, cloud specific)
## ref: http://kubernetes.io/docs/user-guide/services/#type-loadbalancer
##
# suitecrmLoadBalancerIP:

## User of the application
## ref: https://github.com/bitnami/bitnami-docker-suitecrm#configuration
##
suitecrmUsername: craig

## Application password
## Defaults to a random 10-character alphanumeric string if not set
## ref: https://github.com/bitnami/bitnami-docker-suitecrm#configuration
##
suitecrmPassword: <hadmypasswordhere>

## Admin email
## ref: https://github.com/bitnami/bitnami-docker-suitecrm#configuration
##
suitecrmEmail: <hadmyemail>@gmail.com

## Lastname
## ref: https://github.com/bitnami/bitnami-docker-suitecrm#configuration
##
suitecrmLastName: <hadmylastname>

## SMTP mail delivery configuration
## ref: https://github.com/bitnami/bitnami-docker-suitecrm/#smtp-configuration
##
# suitecrmSmtpHost:
# suitecrmSmtpPort:
# suitecrmSmtpUser:
# suitecrmSmtpPassword:
# suitecrmSmtpProtocol:

##
## MariaDB chart configuration
##
mariadb:
  ## MariaDB admin password
  ## ref: https://github.com/bitnami/bitnami-docker-mariadb/blob/master/README.md#setting-the-root-password-on-first-run
  ##
  mariadbRootPassword: <hadMyPasswordHere>

  ## Enable persistence using Persistent Volume Claims
  ## ref: http://kubernetes.io/docs/user-guide/persistent-volumes/
  ##
  persistence:
    enabled: true
    ## mariadb data Persistent Volume Storage Class
    ## If defined, storageClassName: <storageClass>
    ## If set to "-", storageClassName: "", which disables dynamic provisioning
    ## If undefined (the default) or set to null, no storageClassName spec is
    ##   set, choosing the default provisioner.  (gp2 on AWS, standard on
    ##   GKE, AWS & OpenStack)
    ##
    # storageClass: "-"
    accessMode: ReadWriteOnce
    size: 8Gi

## Kubernetes configuration
## For minikube, set this to NodePort, elsewhere use LoadBalancer
##
serviceType: LoadBalancer

## Enable persistence using Persistent Volume Claims
## ref: http://kubernetes.io/docs/user-guide/persistent-volumes/
##
persistence:
  enabled: true
  apache:
    ## apache data Persistent Volume Storage Class
    ## If defined, storageClassName: <storageClass>
    ## If set to "-", storageClassName: "", which disables dynamic provisioning
    ## If undefined (the default) or set to null, no storageClassName spec is
    ##   set, choosing the default provisioner.  (gp2 on AWS, standard on
    ##   GKE, AWS & OpenStack)
    ##
    # storageClass: "-"
    accessMode: ReadWriteOnce
    size: 1Gi
  suitecrm:
    ## suitecrm data Persistent Volume Storage Class
    ## If defined, storageClassName: <storageClass>
    ## If set to "-", storageClassName: "", which disables dynamic provisioning
    ## If undefined (the default) or set to null, no storageClassName spec is
    ##   set, choosing the default provisioner.  (gp2 on AWS, standard on
    ##   GKE, AWS & OpenStack)
    ##
    # storageClass: "-"
    accessMode: ReadWriteOnce
    size: 8Gi

## Configure resource requests and limits
## ref: http://kubernetes.io/docs/user-guide/compute-resources/
##
resources: {}
  # requests:
  #   memory: 512Mi
  #   cpu: 300m

Я просмотрел журналы запущенной службы (через панель управления minikube). На самом деле там не так много пользы, но, похоже, это зависает от подготовки среды CRM. Дальше этого никогда не выходит...

     nami    INFO  Initializing apache
apache  INFO  ==> Patching httpoxy...
nami    INFO  apache successfully initialized
nami    INFO  Initializing php
nami    INFO  php successfully initialized
nami    INFO  Initializing suitecrm
suitecr INFO  Preparing webserver environment...
suitecr INFO  Preparing PHP environment...
suitecr INFO  Preparing suitecrm environment...

Конечная точка службы никогда не бывает готова и никогда не завершает развертывание. Любая помощь будет оценена по достоинству.


person mornindew    schedule 01.11.2017    source источник
comment
Привет, Не могли бы вы поделиться своим файлом values.yml?   -  person Javier Salmeron    schedule 01.11.2017
comment
@JavierSalmeron - Нет проблем. Добавил его в исходный пост и удалил все данные PII.   -  person mornindew    schedule 01.11.2017


Ответы (2)


У меня никогда не работала диаграмма руля, но я нашел обходной путь. Установка через традиционный kubctrl работала нормально. Я использовал метод, представленный здесь:

https://github.com/bitnami/bitnami-docker-suitecrm

person mornindew    schedule 02.11.2017

Я думаю, что проблема связана с неправильной настройкой хоста suitecrm. Он настроен на использование LoadBalancer, но, поскольку вы используете minikube, вам необходимо вручную установить переменную APP_HOST с помощью команды, отличной от отображаемой helm. Вот что я сделал, чтобы заставить его работать:

helm install --name red-falcon-crm -f values.yaml stable/suitecrm
export APP_HOST=$(minikube ip):$(kubectl get svc red-falcon-crm-suitecrm --template "{{ (index .spec.ports 0).nodePort }}")
helm upgrade red-falcon-crm --set suitecrmHost=$APP_HOST -f values.yaml stable/suitecrm
person Javier Salmeron    schedule 15.11.2017