创建部署问题时,请参考下面模板:
操作系统信息,虚拟机,Centos7.5,4C/16G
Kubernetes版本信息,v1.20.4。3节点。
KubeSphere版本信息,v3.1.0。已有K8s安装。
问题是什么,使用kubesphere-install.yaml安装KubeSphere时,安装到一定程度就卡住,不再往下进行。
具体日志如下:
2021-05-28T11:31:52+08:00 INFO : shell-operator latest
2021-05-28T11:31:52+08:00 INFO : Use temporary dir: /tmp/shell-operator
2021-05-28T11:31:52+08:00 INFO : HTTP SERVER Listening on 0.0.0.0:9115
2021-05-28T11:31:52+08:00 INFO : Initialize hooks manager …
2021-05-28T11:31:52+08:00 INFO : Search and load hooks …
2021-05-28T11:31:52+08:00 INFO : Load hook config from ‘/hooks/kubesphere/installRunner.py’
2021-05-28T11:31:54+08:00 INFO : Load hook config from ‘/hooks/kubesphere/schedule.sh’
2021-05-28T11:31:54+08:00 INFO : Initializing schedule manager …
2021-05-28T11:31:54+08:00 INFO : KUBE Init Kubernetes client
2021-05-28T11:31:54+08:00 INFO : KUBE-INIT Kubernetes client is configured successfully
2021-05-28T11:31:54+08:00 INFO : MAIN: run main loop
2021-05-28T11:31:54+08:00 INFO : MAIN: add onStartup tasks
2021-05-28T11:31:54+08:00 INFO : QUEUE add all HookRun@OnStartup
2021-05-28T11:31:54+08:00 INFO : Running schedule manager …
2021-05-28T11:31:54+08:00 INFO : MSTOR Create new metric shell_operator_live_ticks
2021-05-28T11:31:54+08:00 INFO : MSTOR Create new metric shell_operator_tasks_queue_length
2021-05-28T11:31:54+08:00 INFO : GVR for kind ‘ClusterConfiguration’ is installer.kubesphere.io/v1alpha1, Resource=clusterconfigurations
2021-05-28T11:31:57+08:00 INFO : EVENT Kube event ‘82f837ab-cc6e-44d0-804b-a79730a83157’
2021-05-28T11:31:57+08:00 INFO : QUEUE add TASK_HOOK_RUN@KUBE_EVENTS kubesphere/installRunner.py
2021-05-28T11:32:00+08:00 INFO : TASK_RUN HookRun@KUBE_EVENTS kubesphere/installRunner.py
2021-05-28T11:32:00+08:00 INFO : Running hook ‘kubesphere/installRunner.py’ binding ‘KUBE_EVENTS’ …
[WARNING]: No inventory was parsed, only implicit localhost is available
[WARNING]: provided hosts list is empty, only localhost is available. Note that
the implicit localhost does not match ‘all’
PLAY [localhost] ***************************************************************
TASK [download : include_tasks] ************************************************
skipping: [localhost]
TASK [download : Download items] ***********************************************
skipping: [localhost]
TASK [download : Sync container] ***********************************************
skipping: [localhost]
TASK [kubesphere-defaults : Configure defaults] ********************************
ok: [localhost] => {
“msg”: “Check roles/kubesphere-defaults/defaults/main.yml”
}
TASK [preinstall : check k8s version] ******************************************
changed: [localhost]
TASK [preinstall : init k8s version] *******************************************
ok: [localhost]
TASK [preinstall : Stop if kubernetes version is nonsupport] *******************
ok: [localhost] => {
“changed”: false,
“msg”: “All assertions passed”
}
TASK [preinstall : check storage class] ****************************************
changed: [localhost]
TASK [preinstall : Stop if StorageClass was not found] *************************
skipping: [localhost]
TASK [preinstall : check default storage class] ********************************
changed: [localhost]
TASK [preinstall : Stop if defaultStorageClass was not found] ******************
ok: [localhost] => {
“changed”: false,
“msg”: “All assertions passed”
}
TASK [preinstall : Kubesphere | Checking kubesphere component] *****************
changed: [localhost]
TASK [preinstall : Kubesphere | Get kubesphere component version] **************
skipping: [localhost]
TASK [preinstall : Kubesphere | Get kubesphere component version] **************
skipping: [localhost] => (item=ks-openldap)
skipping: [localhost] => (item=ks-redis)
skipping: [localhost] => (item=ks-minio)
skipping: [localhost] => (item=ks-openpitrix)
skipping: [localhost] => (item=elasticsearch-logging)
skipping: [localhost] => (item=elasticsearch-logging-curator)
skipping: [localhost] => (item=istio)
skipping: [localhost] => (item=istio-init)
skipping: [localhost] => (item=jaeger-operator)
skipping: [localhost] => (item=ks-jenkins)
skipping: [localhost] => (item=ks-sonarqube)
skipping: [localhost] => (item=logging-fluentbit-operator)
skipping: [localhost] => (item=uc)
skipping: [localhost] => (item=metrics-server)
PLAY RECAP *********************************************************************
localhost : ok=8 changed=4 unreachable=0 failed=0 skipped=6 rescued=0 ignored=0
[WARNING]: No inventory was parsed, only implicit localhost is available
[WARNING]: provided hosts list is empty, only localhost is available. Note that
the implicit localhost does not match ‘all’
PLAY [localhost] ***************************************************************
TASK [download : include_tasks] ************************************************
skipping: [localhost]
TASK [download : Download items] ***********************************************
skipping: [localhost]
TASK [download : Sync container] ***********************************************
skipping: [localhost]
TASK [kubesphere-defaults : Configure defaults] ********************************
ok: [localhost] => {
“msg”: “Check roles/kubesphere-defaults/defaults/main.yml”
}
TASK [metrics-server : Metrics-Server | Checking old installation files] *******
skipping: [localhost]
TASK [metrics-server : Metrics-Server | deleting old metrics-server] ***********
skipping: [localhost]
TASK [metrics-server : Metrics-Server | deleting old metrics-server files] *****
skipping: [localhost] => (item=metrics-server)
TASK [metrics-server : Metrics-Server | Getting metrics-server installation files] ***
skipping: [localhost]
TASK [metrics-server : Metrics-Server | Creating manifests] ********************
skipping: [localhost] => (item={‘name’: ‘values’, ‘file’: ‘values.yaml’, ‘type’: ‘config’})
TASK [metrics-server : Metrics-Server | Check Metrics-Server] ******************
skipping: [localhost]
TASK [metrics-server : Metrics-Server | Installing metrics-server] *************
skipping: [localhost]
TASK [metrics-server : Metrics-Server | Installing metrics-server retry] *******
skipping: [localhost]
TASK [metrics-server : Metrics-Server | Waitting for v1beta1.metrics.k8s.io ready] ***
skipping: [localhost]
TASK [metrics-server : Metrics-Server | import metrics-server status] **********
skipping: [localhost]
PLAY RECAP *********************************************************************
localhost : ok=1 changed=0 unreachable=0 failed=0 skipped=13 rescued=0 ignored=0
[WARNING]: No inventory was parsed, only implicit localhost is available
[WARNING]: provided hosts list is empty, only localhost is available. Note that
the implicit localhost does not match ‘all’
PLAY [localhost] ***************************************************************
TASK [download : include_tasks] ************************************************
skipping: [localhost]
TASK [download : Download items] ***********************************************
skipping: [localhost]
TASK [download : Sync container] ***********************************************
skipping: [localhost]
TASK [kubesphere-defaults : Configure defaults] ********************************
ok: [localhost] => {
“msg”: “Check roles/kubesphere-defaults/defaults/main.yml”
}
TASK [common : Kubesphere | Check kube-node-lease namespace] *******************
changed: [localhost]
TASK [common : KubeSphere | Get system namespaces] *****************************
ok: [localhost]
TASK [common : set_fact] *******************************************************
ok: [localhost]
TASK [common : debug] **********************************************************
ok: [localhost] => {
“msg”: [
“kubesphere-system”,
“kubesphere-controls-system”,
“kubesphere-monitoring-system”,
“kube-node-lease”
]
}
TASK [common : KubeSphere | Create kubesphere namespace] ***********************
changed: [localhost] => (item=kubesphere-system)
changed: [localhost] => (item=kubesphere-controls-system)
changed: [localhost] => (item=kubesphere-monitoring-system)
changed: [localhost] => (item=kube-node-lease)
TASK [common : KubeSphere | Labeling system-workspace] *************************
changed: [localhost] => (item=default)
changed: [localhost] => (item=kube-public)
changed: [localhost] => (item=kube-system)
changed: [localhost] => (item=kubesphere-system)
changed: [localhost] => (item=kubesphere-controls-system)
changed: [localhost] => (item=kubesphere-monitoring-system)
changed: [localhost] => (item=kube-node-lease)
TASK [common : KubeSphere | Create ImagePullSecrets] ***************************
changed: [localhost] => (item=default)
changed: [localhost] => (item=kube-public)
changed: [localhost] => (item=kube-system)
changed: [localhost] => (item=kubesphere-system)
changed: [localhost] => (item=kubesphere-controls-system)
changed: [localhost] => (item=kubesphere-monitoring-system)
changed: [localhost] => (item=kube-node-lease)
TASK [common : Kubesphere | Label namespace for network policy] ****************
changed: [localhost]
TASK [common : KubeSphere | Getting kubernetes master num] *********************
changed: [localhost]
TASK [common : KubeSphere | Setting master num] ********************************
ok: [localhost]
TASK [common : Kubesphere | Getting common component installation files] *******
changed: [localhost] => (item=common)
changed: [localhost] => (item=ks-crds)
TASK [common : KubeSphere | Create KubeSphere crds] ****************************
changed: [localhost]
TASK [common : KubeSphere | Recreate KubeSphere crds] **************************
changed: [localhost]
TASK [common : KubeSphere | check k8s version] *********************************
changed: [localhost]
TASK [common : Kubesphere | Getting common component installation files] *******
changed: [localhost] => (item=snapshot-controller)
TASK [common : Kubesphere | Creating snapshot controller values] ***************
changed: [localhost] => (item={‘name’: ‘custom-values-snapshot-controller’, ‘file’: ‘custom-values-snapshot-controller.yaml’})
TASK [common : Kubesphere | Remove old snapshot crd] ***************************
changed: [localhost]
TASK [common : Kubesphere | Deploy snapshot controller] ************************
changed: [localhost]
TASK [common : Kubesphere | Checking openpitrix common component] **************
changed: [localhost]
TASK [common : include_tasks] **************************************************
skipping: [localhost] => (item={‘op’: ‘openpitrix-db’, ‘ks’: ‘mysql-pvc’})
skipping: [localhost] => (item={‘op’: ‘openpitrix-etcd’, ‘ks’: ‘etcd-pvc’})
TASK [common : Getting PersistentVolumeName (mysql)] ***************************
skipping: [localhost]
TASK [common : Getting PersistentVolumeSize (mysql)] ***************************
skipping: [localhost]
TASK [common : Setting PersistentVolumeName (mysql)] ***************************
skipping: [localhost]
TASK [common : Setting PersistentVolumeSize (mysql)] ***************************
skipping: [localhost]
TASK [common : Getting PersistentVolumeName (etcd)] ****************************
skipping: [localhost]
TASK [common : Getting PersistentVolumeSize (etcd)] ****************************
skipping: [localhost]
TASK [common : Setting PersistentVolumeName (etcd)] ****************************
skipping: [localhost]
TASK [common : Setting PersistentVolumeSize (etcd)] ****************************
skipping: [localhost]
TASK [common : Kubesphere | Check mysql PersistentVolumeClaim] *****************
fatal: [localhost]: FAILED! => {“changed”: true, “cmd”: “/usr/local/bin/kubectl get pvc -n kubesphere-system mysql-pvc -o jsonpath=‘{.status.capacity.storage}’\n”, “delta”: “0:00:00.404987”, “end”: “2021-05-28 11:34:10.387264”, “msg”: “non-zero return code”, “rc”: 1, “start”: “2021-05-28 11:34:09.982277”, “stderr”: "Error from server (NotFound): persistentvolumeclaims \“mysql-pvc\” not found", “stderr_lines”: ["Error from server (NotFound): persistentvolumeclaims \“mysql-pvc\” not found"], “stdout”: "", “stdout_lines”: []}
…ignoring
TASK [common : Kubesphere | Setting mysql db pv size] **************************
skipping: [localhost]
TASK [common : Kubesphere | Check redis PersistentVolumeClaim] *****************
fatal: [localhost]: FAILED! => {“changed”: true, “cmd”: “/usr/local/bin/kubectl get pvc -n kubesphere-system redis-pvc -o jsonpath=‘{.status.capacity.storage}’\n”, “delta”: “0:00:00.400058”, “end”: “2021-05-28 11:34:12.091324”, “msg”: “non-zero return code”, “rc”: 1, “start”: “2021-05-28 11:34:11.691266”, “stderr”: "Error from server (NotFound): persistentvolumeclaims \“redis-pvc\” not found", “stderr_lines”: ["Error from server (NotFound): persistentvolumeclaims \“redis-pvc\” not found"], “stdout”: "", “stdout_lines”: []}
…ignoring
TASK [common : Kubesphere | Setting redis db pv size] **************************
skipping: [localhost]
TASK [common : Kubesphere | Check minio PersistentVolumeClaim] *****************
fatal: [localhost]: FAILED! => {“changed”: true, “cmd”: “/usr/local/bin/kubectl get pvc -n kubesphere-system minio -o jsonpath=‘{.status.capacity.storage}’\n”, “delta”: “0:00:00.383066”, “end”: “2021-05-28 11:34:13.706562”, “msg”: “non-zero return code”, “rc”: 1, “start”: “2021-05-28 11:34:13.323496”, “stderr”: "Error from server (NotFound): persistentvolumeclaims \“minio\” not found", “stderr_lines”: ["Error from server (NotFound): persistentvolumeclaims \“minio\” not found"], “stdout”: "", “stdout_lines”: []}
…ignoring
TASK [common : Kubesphere | Setting minio pv size] *****************************
skipping: [localhost]
TASK [common : Kubesphere | Check openldap PersistentVolumeClaim] **************
fatal: [localhost]: FAILED! => {“changed”: true, “cmd”: “/usr/local/bin/kubectl get pvc -n kubesphere-system openldap-pvc-openldap-0 -o jsonpath=‘{.status.capacity.storage}’\n”, “delta”: “0:00:00.191254”, “end”: “2021-05-28 11:34:15.083768”, “msg”: “non-zero return code”, “rc”: 1, “start”: “2021-05-28 11:34:14.892514”, “stderr”: "Error from server (NotFound): persistentvolumeclaims \“openldap-pvc-openldap-0\” not found", “stderr_lines”: ["Error from server (NotFound): persistentvolumeclaims \“openldap-pvc-openldap-0\” not found"], “stdout”: "", “stdout_lines”: []}
…ignoring
TASK [common : Kubesphere | Setting openldap pv size] **************************
skipping: [localhost]
TASK [common : Kubesphere | Check etcd db PersistentVolumeClaim] ***************
fatal: [localhost]: FAILED! => {“changed”: true, “cmd”: “/usr/local/bin/kubectl get pvc -n kubesphere-system etcd-pvc -o jsonpath=‘{.status.capacity.storage}’\n”, “delta”: “0:00:00.413718”, “end”: “2021-05-28 11:34:16.780274”, “msg”: “non-zero return code”, “rc”: 1, “start”: “2021-05-28 11:34:16.366556”, “stderr”: "Error from server (NotFound): persistentvolumeclaims \“etcd-pvc\” not found", “stderr_lines”: ["Error from server (NotFound): persistentvolumeclaims \“etcd-pvc\” not found"], “stdout”: "", “stdout_lines”: []}
…ignoring
TASK [common : Kubesphere | Setting etcd pv size] ******************************
skipping: [localhost]
TASK [common : Kubesphere | Check redis ha PersistentVolumeClaim] **************
fatal: [localhost]: FAILED! => {“changed”: true, “cmd”: “/usr/local/bin/kubectl get pvc -n kubesphere-system data-redis-ha-server-0 -o jsonpath=‘{.status.capacity.storage}’\n”, “delta”: “0:00:00.271598”, “end”: “2021-05-28 11:34:18.279387”, “msg”: “non-zero return code”, “rc”: 1, “start”: “2021-05-28 11:34:18.007789”, “stderr”: "Error from server (NotFound): persistentvolumeclaims \“data-redis-ha-server-0\” not found", “stderr_lines”: ["Error from server (NotFound): persistentvolumeclaims \“data-redis-ha-server-0\” not found"], “stdout”: "", “stdout_lines”: []}
…ignoring
TASK [common : Kubesphere | Setting redis ha pv size] **************************
skipping: [localhost]
TASK [common : Kubesphere | Check es-master PersistentVolumeClaim] *************
fatal: [localhost]: FAILED! => {“changed”: true, “cmd”: “/usr/local/bin/kubectl get pvc -n kubesphere-logging-system data-elasticsearch-logging-discovery-0 -o jsonpath=‘{.status.capacity.storage}’\n”, “delta”: “0:00:00.474403”, “end”: “2021-05-28 11:34:19.586634”, “msg”: “non-zero return code”, “rc”: 1, “start”: “2021-05-28 11:34:19.112231”, “stderr”: "Error from server (NotFound): namespaces \“kubesphere-logging-system\” not found", “stderr_lines”: ["Error from server (NotFound): namespaces \“kubesphere-logging-system\” not found"], “stdout”: "", “stdout_lines”: []}
…ignoring
TASK [common : Kubesphere | Setting es master pv size] *************************
skipping: [localhost]
TASK [common : Kubesphere | Check es data PersistentVolumeClaim] ***************
fatal: [localhost]: FAILED! => {“changed”: true, “cmd”: “/usr/local/bin/kubectl get pvc -n kubesphere-logging-system data-elasticsearch-logging-data-0 -o jsonpath=‘{.status.capacity.storage}’\n”, “delta”: “0:00:00.185954”, “end”: “2021-05-28 11:34:21.080603”, “msg”: “non-zero return code”, “rc”: 1, “start”: “2021-05-28 11:34:20.894649”, “stderr”: "Error from server (NotFound): namespaces \“kubesphere-logging-system\” not found", “stderr_lines”: ["Error from server (NotFound): namespaces \“kubesphere-logging-system\” not found"], “stdout”: "", “stdout_lines”: []}
…ignoring
TASK [common : Kubesphere | Setting es data pv size] ***************************
skipping: [localhost]
TASK [common : Kubesphere | Creating common component manifests] ***************
failed: [localhost] (item={‘path’: ‘etcd’, ‘file’: ‘etcd.yaml’}) => {“ansible_loop_var”: “item”, “changed”: false, “item”: {“file”: “etcd.yaml”, “path”: “etcd”}, “msg”: “AnsibleUndefinedVariable: ‘dict object’ has no attribute ‘etcdVolumeSize’”}
failed: [localhost] (item={‘name’: ‘mysql’, ‘file’: ‘mysql.yaml’}) => {“ansible_loop_var”: “item”, “changed”: false, “item”: {“file”: “mysql.yaml”, “name”: “mysql”}, “msg”: “AnsibleUndefinedVariable: ‘dict object’ has no attribute ‘mysqlVolumeSize’”}
changed: [localhost] => (item={‘path’: ‘redis’, ‘file’: ‘redis.yaml’})
PLAY RECAP *********************************************************************
localhost : ok=28 changed=23 unreachable=0 failed=1 skipped=20 rescued=0 ignored=8