GraphScope 叢集部署
1 k8s叢集搭建
大致步驟如下:
- 安裝docker。在ubuntu上,可以簡單的通過命令
sudo apt install docker.io
來安裝。 - 安裝kubelet、kubeadm、kubectl。由於國外源無法訪問,可能需要新增映象,比如:
tee /etc/apt/sources.list <<-'EOF'
deb https://mirrors.aliyun.com/kubernetes/apt kubernetes-xenial main
EOF
- 安裝網路外掛。如Calico。
以上過程可以參考 http://docs.tianshu.org.cn/docs/setup/deploy-kubernetes-cluster。文件中提供了一鍵指令碼快速部署(適用於Ubuntu16.04和Ubuntu18.04),可以通過https://pan.baidu.com/s/1c89VAq_1qPBf_5URqSkBdw提取碼wpwb
獲取。
獲取之後
unzip dubheDeployScriptfile.zip
cd dubheDeployScriptfile/k8s1.16.2-ubuntu/
配置base.config
# 主節點(master節點)IP地址
masterip="172.16.123.1"
# 過濾IP段,用於過濾得到伺服器的IP地址
ip_segment="172.16.123"
# k8s版本
k8s_version="v1.16.2"
# root使用者密碼,請設定k8s叢集所有伺服器root使用者密碼為統一密碼
root_passwd="abcdefghijklmn"
# 叢集所有節點ip,有幾臺填幾臺
hostip=(
172.16.123.1
172.16.123.2
172.16.123.3
)
#以下兩項會自動生成,不用填寫!
tocken=
sha_value=
然後執行
bash k8s1.16.2.sh
執行方式基本按照文件中說明,其中有兩點需要注意:
- 在非主節點上都開啟ssh的root訪問許可權,並在base.config中配置密碼。這一步主要是拷貝
apt-key.gpg base.config node_install_k8s.sh del_kube.sh ssh_trust_init.exp ssh_trust_add.exp
這幾個檔案到worker節點。如果有其它方式拷貝,也可以不管,到這一步,master節點的叢集基本部署成功。其中base.config
中的儲存了主節點的token和sha_value,這兩個值對worker節點加入叢集至關重要,取值樣例如下:
token=s52vwv.gdx1qymhrdx8v5uq
sha_value=88c78df7457c1f74e065fbedd9ddee967cc4a4e4dd003e69f9d64374e3e5d903
- 如果多次執行指令碼,base.config中的token和sha_value會被反覆串接,此時在worker節點執行會無法加入master節點。每次重新執行指令碼要把base.config中的token和sha_value清空。即使串接了,也能識別出來,只是要手動加入,當前主節點的token和sha_value應分別為前23位(以 . 號分隔)和前64位。
如果新增了新的機器,在環境都已配置好的情況下(執行指令碼nodenode_install_k8s.sh即可),單純加入叢集可以使用以下命令:
kubeadm join 172.16.125.100:6443 --token 8urlva.75zrerl6uctfenec \
--discovery-token-ca-cert-hash sha256:c462c05da6c3685a334b1b1743d4d9b30a38b78208c338f03f5e7d67befaf8bb
注意token和sha256都要替換成對應的master節點的token和sha256。
2 拉取graphscope映象
這個GraphScope提供的官方安裝教程沒有說明,在其一鍵安裝指令碼里倒有體現(這個指令碼不太好用,親測沒有安裝成功過)。這個主要影響graphscope建立會話的時候,比如
import graphscope
graphscope.set_option(show_log=True)
sess = graphscope.session()
在沒有提前拉取映象的情況下,建立session
的時候就會卡住或者出錯,因為建立的時候預設是會去拉取docker映象的, 而這個映象很大(有8.39GB),網路條件不好的情況下很難拉取成功。所以最好提前拉取:
docker pull registry.cn-hongkong.aliyuncs.com/graphscope/graphscope:0.8.0
docker pull quay.io/coreos/etcd:v3.4.13
0.8.0
是安裝的graphscope版本號,可以通過命令python -c "import graphscope; print(graphscope.__version__)"
獲得。
如果是用kind建立的虛擬叢集,還要執行以下命令:
kind load docker-image registry.cn-hongkong.aliyuncs.com/graphscope/graphscope:0.8.0
kind load docker-image quay.io/coreos/etcd:v3.4.13