Невозможно запустить Alluxio в Kubernetes - PullRequest
0 голосов
/ 08 июня 2018

Я пробую alluxio 1.7.1 с докером 1.13.1, kubernetes 1.9.6, 1.10.1

Я создал образ докера alluxio в соответствии с инструкциями на https://www.alluxio.org/docs/1.7/en/Running-Alluxio-On-Docker.html

Затем я последовал руководству https://www.alluxio.org/docs/1.7/en/Running-Alluxio-On-Kubernetes.html, чтобы запустить alluxio на kubernetes.Мне удалось правильно вызвать мастер-модуль alluxio, но когда я пытаюсь вызвать alluxio worker, я получаю сообщение об ошибке «Адрес» используется.Я не изменил ничего в yamls, которые я скачал с alluxio git.Единственное изменение, которое я сделал, состояло в том, чтобы имя образа док-станции alluxio и версия API в yamls для k8s соответствовали должным образом.

Я проверил порты, используемые в моей настройке кластера k8s, и даже на узлах также.Нет никаких портов, которые alluxio хочет использовать любым другим процессом, но я все еще получаю адрес в ошибке использования.Я не могу понять, что я могу сделать для дальнейшей отладки или что я должен изменить, чтобы сделать эту работу.У меня нет другого приложения, работающего на моей установке кластера k8s.Я попытался с настройкой кластера K8S с одним узлом и кластера K8S с несколькими узлами.Я также попробовал k8s версии 1.9 и 1.10.

Определенно существует проблема со стороны рабочей станции alluxio, которую я не могу отладить.

Это журнал, который я получаю из рабочей подсистемы:

[root@vm-sushil-scrum1-08062018-alluxio-1 kubernetes]# kubectl logs po/alluxio-worker-knqt4
Formatting Alluxio Worker @ vm-sushil-scrum1-08062018-alluxio-1
2018-06-08 10:09:55,723 INFO  Configuration - Configuration file /opt/alluxio/conf/alluxio-site.properties loaded.
2018-06-08 10:09:55,845 INFO  Format - Formatting worker data folder: /alluxioworker/
2018-06-08 10:09:55,845 INFO  Format - Formatting Data path for tier 0:/dev/shm/alluxioworker
2018-06-08 10:09:55,856 INFO  Format - Formatting complete
2018-06-08 10:09:56,357 INFO  Configuration - Configuration file /opt/alluxio/conf/alluxio-site.properties loaded.
2018-06-08 10:09:56,549 INFO  TieredIdentityFactory - Initialized tiered identity TieredIdentity(node=10.194.11.7, rack=null)
2018-06-08 10:09:56,866 INFO  BlockWorkerFactory - Creating alluxio.worker.block.BlockWorker
2018-06-08 10:09:56,866 INFO  FileSystemWorkerFactory - Creating alluxio.worker.file.FileSystemWorker
2018-06-08 10:09:56,942 WARN  StorageTier - Failed to verify memory capacity
2018-06-08 10:09:57,082 INFO  log - Logging initialized @1160ms
2018-06-08 10:09:57,509 INFO  AlluxioWorkerProcess - Domain socket data server is enabled at /opt/domain.
Exception in thread "main" java.lang.RuntimeException: java.lang.RuntimeException: io.netty.channel.unix.Errors$NativeIoException: bind(..) failed: Address in use
        at alluxio.worker.AlluxioWorkerProcess.<init>(AlluxioWorkerProcess.java:164)
        at alluxio.worker.WorkerProcess$Factory.create(WorkerProcess.java:45)
        at alluxio.worker.WorkerProcess$Factory.create(WorkerProcess.java:37)
        at alluxio.worker.AlluxioWorker.main(AlluxioWorker.java:56)
Caused by: java.lang.RuntimeException: io.netty.channel.unix.Errors$NativeIoException: bind(..) failed: Address in use
        at alluxio.util.CommonUtils.createNewClassInstance(CommonUtils.java:224)
        at alluxio.worker.DataServer$Factory.create(DataServer.java:45)
        at alluxio.worker.AlluxioWorkerProcess.<init>(AlluxioWorkerProcess.java:159)
        ... 3 more
Caused by: io.netty.channel.unix.Errors$NativeIoException: bind(..) failed: Address in use
        at io.netty.channel.unix.Errors.newIOException(Errors.java:117)
        at io.netty.channel.unix.Socket.bind(Socket.java:259)
        at io.netty.channel.epoll.EpollServerDomainSocketChannel.doBind(EpollServerDomainSocketChannel.java:75)
        at io.netty.channel.AbstractChannel$AbstractUnsafe.bind(AbstractChannel.java:504)
        at io.netty.channel.DefaultChannelPipeline$HeadContext.bind(DefaultChannelPipeline.java:1226)
        at io.netty.channel.AbstractChannelHandlerContext.invokeBind(AbstractChannelHandlerContext.java:495)
        at io.netty.channel.AbstractChannelHandlerContext.bind(AbstractChannelHandlerContext.java:480)
        at io.netty.channel.DefaultChannelPipeline.bind(DefaultChannelPipeline.java:973)
        at io.netty.channel.AbstractChannel.bind(AbstractChannel.java:213)
        at io.netty.bootstrap.AbstractBootstrap$2.run(AbstractBootstrap.java:354)
        at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:399)
        at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:305)
        at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:131)
        at java.lang.Thread.run(Thread.java:748)

-----------------------
[root@vm-sushil-scrum1-08062018-alluxio-1 kubernetes]# kubectl get all
NAME                DESIRED   CURRENT   READY     UP-TO-DATE   AVAILABLE   NODE SELECTOR   AGE
ds/alluxio-worker   1         1         0         1            0           <none>          42m
ds/alluxio-worker   1         1         0         1            0           <none>          42m

NAME                          DESIRED   CURRENT   AGE
statefulsets/alluxio-master   1         1         44m

NAME                      READY     STATUS    RESTARTS   AGE
po/alluxio-master-0       1/1       Running   0          44m
po/alluxio-worker-knqt4   0/1       Error     12         42m

NAME                 TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)               AGE
svc/alluxio-master   ClusterIP   None         <none>        19998/TCP,19999/TCP   44m
svc/kubernetes       ClusterIP   10.254.0.1   <none>        443/TCP               1h

---------------------

[root@vm-sushil-scrum1-08062018-alluxio-1 kubernetes]# kubectl describe po/alluxio-worker-knqt4
Name:           alluxio-worker-knqt4
Namespace:      default
Node:           vm-sushil-scrum1-08062018-alluxio-1/10.194.11.7
Start Time:     Fri, 08 Jun 2018 10:09:05 +0000
Labels:         app=alluxio
                controller-revision-hash=3081903053
                name=alluxio-worker
                pod-template-generation=1
Annotations:    <none>
Status:         Running
IP:             10.194.11.7
Controlled By:  DaemonSet/alluxio-worker
Containers:
  alluxio-worker:
    Container ID:  docker://40a1eff2cd4dff79d9189d7cb0c4826a6b6e4871fbac65221e7cdd341240e358
    Image:         alluxio:1.7.1
    Image ID:      docker://sha256:b080715bd53efc783ee5f54e7f1c451556f93e7608e60e05b4615d32702801af
    Ports:         29998/TCP, 29999/TCP, 29996/TCP
    Command:
      /entrypoint.sh
    Args:
      worker
    State:          Waiting
      Reason:       CrashLoopBackOff
    Last State:     Terminated
      Reason:       Error
      Exit Code:    1
      Started:      Fri, 08 Jun 2018 11:01:37 +0000
      Finished:     Fri, 08 Jun 2018 11:02:02 +0000
    Ready:          False
    Restart Count:  14
    Limits:
      cpu:     1
      memory:  2G
    Requests:
      cpu:     500m
      memory:  2G
    Environment Variables from:
      alluxio-config  ConfigMap  Optional: false
    Environment:
      ALLUXIO_WORKER_HOSTNAME:   (v1:status.hostIP)
    Mounts:
      /dev/shm from alluxio-ramdisk (rw)
      /opt/domain from alluxio-domain (rw)
      /var/run/secrets/kubernetes.io/serviceaccount from default-token-7xlz7 (ro)
Conditions:
  Type           Status
  Initialized    True
  Ready          False
  PodScheduled   True
Volumes:
  alluxio-ramdisk:
    Type:    EmptyDir (a temporary directory that shares a pod's lifetime)
    Medium:  Memory
  alluxio-domain:
    Type:          HostPath (bare host directory volume)
    Path:          /tmp/domain
    HostPathType:  Directory
  default-token-7xlz7:
    Type:        Secret (a volume populated by a Secret)
    SecretName:  default-token-7xlz7
    Optional:    false
QoS Class:       Burstable
Node-Selectors:  <none>
Tolerations:     node.kubernetes.io/disk-pressure:NoSchedule
                 node.kubernetes.io/memory-pressure:NoSchedule
                 node.kubernetes.io/not-ready:NoExecute
                 node.kubernetes.io/unreachable:NoExecute
Events:
  Type     Reason                 Age                 From                                          Message
  ----     ------                 ----                ----                                          -------
  Normal   SuccessfulMountVolume  56m                 kubelet, vm-sushil-scrum1-08062018-alluxio-1  MountVolume.SetUp succeeded for volume "alluxio-domain"
  Normal   SuccessfulMountVolume  56m                 kubelet, vm-sushil-scrum1-08062018-alluxio-1  MountVolume.SetUp succeeded for volume "alluxio-ramdisk"
  Normal   SuccessfulMountVolume  56m                 kubelet, vm-sushil-scrum1-08062018-alluxio-1  MountVolume.SetUp succeeded for volume "default-token-7xlz7"
  Normal   Pulled                 53m (x5 over 56m)   kubelet, vm-sushil-scrum1-08062018-alluxio-1  Container image "alluxio:1.7.1" already present on machine
  Normal   Created                53m (x5 over 56m)   kubelet, vm-sushil-scrum1-08062018-alluxio-1  Created container
  Normal   Started                53m (x5 over 56m)   kubelet, vm-sushil-scrum1-08062018-alluxio-1  Started container
  Warning  BackOff                1m (x222 over 55m)  kubelet, vm-sushil-scrum1-08062018-alluxio-1  Back-off restarting failed container

[root@vm-sushil-scrum1-08062018-alluxio-1 kubernetes]#  lsof -n -i :19999 | grep LISTEN
java    8949 root   29u  IPv4 12518521      0t0  TCP *:dnp-sec (LISTEN)
[root@vm-sushil-scrum1-08062018-alluxio-1 kubernetes]#  lsof -n -i :19998 | grep LISTEN
java    8949 root   19u  IPv4 12520458      0t0  TCP *:iec-104-sec (LISTEN)
[root@vm-sushil-scrum1-08062018-alluxio-1 kubernetes]#  lsof -n -i :29998 | grep LISTEN
[root@vm-sushil-scrum1-08062018-alluxio-1 kubernetes]#  lsof -n -i :29999 | grep LISTEN
[root@vm-sushil-scrum1-08062018-alluxio-1 kubernetes]#  lsof -n -i :29996 | grep LISTEN

Контейнер alluxio-worker всегда перезапускается и снова и снова сбивается из-за одной и той же ошибки.

Пожалуйста, укажите, что я могу сделать, чтобы решить эту проблему.

Спасибо

Ответы [ 2 ]

0 голосов
/ 12 июня 2018

Проблема заключалась в коротком замыкании пути к сокету домена Unix.Я использовал то, что присутствовало по умолчанию в alluxio git.В интеграции по умолчанию / kubernetes / conf / alluxio.properties.template адрес для ALLUXIO_WORKER_DATA_SERVER_DOMAIN_SOCKET_ADDRESS не был завершен.Это правильно объяснено в https://www.alluxio.org/docs/1.7/en/Running-Alluxio-On-Docker.html для включения чтения короткого замыкания в рабочих контейнерах alluxio с использованием доменных сокетов unix.Просто из-за отсутствия полного пути для сокета домена unix работник alluxio не смог появиться в kubernetes, когда было включено чтение с коротким замыканием для alluxio worker.

Когда я исправил путь в интеграции / kubernetes / conf /alluxio.properties для ALLUXIO_WORKER_DATA_SERVER_DOMAIN_SOCKET_ADDRESS = / opt / domain / d Тогда все началось правильно.Теперь также некоторые тесты не пройдены, но, по-видимому, настройка alluxio выполнена правильно.Теперь я буду отлаживать, почему некоторые тесты не выполняются.

Я отправил это исправление в alluxio git, чтобы они слились с мастер-веткой.https://github.com/Alluxio/alluxio/pull/7376

0 голосов
/ 11 июня 2018

На узле, где работает ваш работник, кажется, что у вас уже используется порт.

Попытайтесь выяснить, какой процесс использует его:

sudo lsof -n -i :80 | grep LISTEN

Я прочиталФайлы конфигурации alluxio: попробуйте использовать порты 19998, 19999, 29996, 29998, 29999, заменив 80 в приведенной выше команде.

...