集群部署Hyperledger Fabric网络的准备工作

共764字 阅读时长约4分 访问量

环境配置

Docker部分

  1. 安装docker

Ubuntu 用户

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# 如果你过去安装过 docker,先删掉:
sudo apt-get remove docker docker-engine docker.io containerd runc

# 首先安装依赖:
sudo apt-get install apt-transport-https ca-certificates curl gnupg2 software-properties-common

# 根据你的发行版,下面的内容有所不同。你使用的发行版:
# Ubuntu
# 信任 Docker 的 GPG 公钥:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

# 添加软件仓库:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

# 最后安装
sudo apt-get update
sudo apt-get install docker-ce
  1. 普通用户执行权限添加
1
2
3
4
5
6
7
8
# 创建 docker 用户组
sudo groupadd docker
# 添加你想用普通用户权限的用户名到 docker 用户组
sudo usermod -aG docker $USER
# 系统重启后就可以使用普通用户权限执行 docker, 如果不想重启,可以使用下面的命令更新并激活组权限
newgrp docker
# 验证设置是否成功
docker run hello-world

K8s部分

  1. 安装KinD
1
2
3
4
5
6
# 官方教程:https://kind.sigs.k8s.io/docs/user/quick-start/#installing-with-a-package-manager

# For linux
curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.17.0/kind-linux-amd64
chmod +x ./kind
sudo mv ./kind /usr/local/bin/kind
  1. 安装kubectl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# 官方文档:https://kubernetes.io/docs/tasks/tools/install-kubectl-linux/

# 二进制文件安装
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"

# 验证二进制文件
curl -LO "https://dl.k8s.io/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl.sha256"
echo "$(cat kubectl.sha256) kubectl" | sha256sum --check
# 验证通过
kubectl: OK

# 安装kubectl
sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl

# 测试
kubectl version --client

# 命令补全
source <(kubectl completion bash)
  1. 安装Helm
1
2
3
4
5
# 官方教程:https://helm.sh/docs/intro/install/
# From script
curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3
chmod 700 get_helm.sh
./get_helm.sh
  1. 安装Krew
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 官方教程:https://krew.sigs.k8s.io/docs/user-guide/setup/install/

# 确保 git 已经安装
(
set -x; cd "$(mktemp -d)" &&
OS="$(uname | tr '[:upper:]' '[:lower:]')" &&
ARCH="$(uname -m | sed -e 's/x86_64/amd64/' -e 's/\(arm\)\(64\)\?.*/\1\2/' -e 's/aarch64$/arm64/')" &&
KREW="krew-${OS}_${ARCH}" &&
curl -fsSLO "https://github.com/kubernetes-sigs/krew/releases/latest/download/${KREW}.tar.gz" &&
tar zxvf "${KREW}.tar.gz" &&
./"${KREW}" install krew
)
# 将 $HOME/.krew/bin 添加到环境变量
export PATH="${KREW_ROOT:-$HOME/.krew}/bin:$PATH"

# 重启shell并检查
kubectl krew
  1. 安装Istio
1
curl -L https://istio.io/downloadIstio | sh -
  1. 创建cluster
1
2
3
4
5
6
7
8
9
10
11
12
13
cat << EOF > kind-config.yaml
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
nodes:
- role: control-plane
extraPortMappings:
- containerPort: 30949
hostPort: 80
- containerPort: 30950
hostPort: 443
EOF

kind create cluster --config=./kind-config.yaml

Fabric部分

  1. 安装k8s operator
1
2
3
helm repo add kfs https://kfsoftware.github.io/hlf-helm-charts --force-update

helm install hlf-operator --version=1.8.2 kfs/hlf-operator
  1. 安装kubectl插件
1
kubectl krew install hlf

链码部分

  1. 配置Go环境
1
2
3
4
wget https://golang.google.cn/dl/go1.19.3.linux-amd64.tar.gz
sudo rm -rf /usr/local/go && sudo tar -C /usr/local -xzf go1.19.3.linux-amd64.tar.gz
export PATH=$PATH:/usr/local/go/bin
go version

问题汇总