SSLError: («Тайм-аут операции чтения») при попытке развернуть Kuberntes с помощью Kubespray - PullRequest
1 голос
/ 28 апреля 2019

Привет и заранее спасибо за помощь!

Я пытаюсь развернуть кластер Kubernetes, используя Kubespray (сборник рассказов). Я пытаюсь развернуть кластер на хосте 17 KVM (все узлы работают под управлением Centos 7 и размещены на голом сервере)

Однако, когда я пытаюсь запустить playbook на задании [download : file_download | Download item] Я получаю следующую ошибку (и таким образом останавливаю установку):

An exception occurred during task execution. To see the full traceback, use -vvv. The error was: SSLError: ('The read operation timed out',)                                                                                                                              
fatal: [node1]: FAILED! => {"attempts": 4, "changed": false, "msg": "failed to create temporary content file: ('The read operation timed out',)"} 

Эта ошибка одинакова для большинства узлов, НО некоторые узлы готовы загрузить.

Вот ошибка в подробном режиме:

The full traceback is:
Traceback (most recent call last):
  File "/tmp/ansible_get_url_payload_72qREk/__main__.py", line 360, in url_get
    shutil.copyfileobj(rsp, f)
  File "/usr/lib64/python2.7/shutil.py", line 49, in copyfileobj
    buf = fsrc.read(length)
  File "/usr/lib64/python2.7/socket.py", line 380, in read
    data = self._sock.recv(left)
  File "/usr/lib64/python2.7/httplib.py", line 602, in read
    s = self.fp.read(amt)
  File "/usr/lib64/python2.7/socket.py", line 380, in read
    data = self._sock.recv(left)
  File "/usr/lib64/python2.7/ssl.py", line 757, in recv
    return self.read(buflen)
  File "/usr/lib64/python2.7/ssl.py", line 651, in read
    v = self._sslobj.read(len or 1024)
SSLError: ('The read operation timed out',)

fatal: [node14]: FAILED! => {
    "attempts": 4,
    "changed": false,
    "invocation": {
        "module_args": {
            "attributes": null,
            "backup": null,
            "checksum": "",
            "client_cert": null,
            "client_key": null,
            "content": null,
            "delimiter": null,
            "dest": "/tmp/releases/kubeadm",
            "directory_mode": null,
            "follow": false,
            "force": false,
            "force_basic_auth": false,
            "group": null,
            "headers": null,
            "http_agent": "ansible-httpget",
            "mode": "0755",
            "owner": "root",
            "regexp": null,
            "remote_src": null,
            "selevel": null,
            "serole": null,
            "setype": null,
            "seuser": null,
            "sha256sum": "c4fc478572b5623857f5d820e1c107ae02049ca02cf2993e512a091a0196957b",
            "src": null,
            "timeout": 10,
            "tmp_dest": null,
            "unsafe_writes": null,
            "url": "https://storage.googleapis.com/kubernetes-release/release/v1.14.1/bin/linux/amd64/kubeadm",
            "url_password": null,
            "url_username": null,
            "use_proxy": true,
            "validate_certs": true
        }
    },
    "msg": "failed to create temporary content file: ('The read operation timed out',)"
}

Я попытался подключиться к узлам и попытаться загрузить элемент (я пытался загрузить почтовый индекс Kubspray), и это сработало, все узлы достигают Интернета и могут установить пакет.

Из подробного вывода я несколько понял, что ошибка возникла из-за Python, но я действительно не знаю, как ее решить ...

Дайте мне знать, если я смогу дать вам еще одну информацию и англичанин, заранее спасибо!

1 Ответ

1 голос
/ 05 мая 2019

Итак, я «решил» проблему.

Фактически, у Ansbible есть тайм-аут в 10 секунд для всех связанных с ssh команд / чтения / записи задачи. По неизвестным причинам задача записи на моих узлах была немного медленной, поэтому я получил эту ошибку. К счастью, вы можете изменить время до истечения времени ожидания.

Вы можете использовать аргумент -T (или-tiemout) 'time_wanted' или изменить ansible.cfg. «Базовый» файл cfg находится в etc/ansible/ansible.etc, но будьте осторожны, некоторые нестандартные игровые книги будут иметь собственный ansible.cfg, поэтому вам нужно будет найти его и изменить в соответствии со своими потребностями.

Мне повезло, 4 раза, когда я запускал playbook, он плавно установил K8s.

По причинам тестирования я запускаю свои узлы на KVM, поэтому, возможно, отсюда и медленная запись.

Надеюсь, что кто-то найдет мой ответ полезным!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...