Edit

HyperledgerFabric with Kubernetes

이문서는 https://marxi.co/ 에서 만들어졌습니다.

사양

  • 우분투 16.04 (Slave는 17 이었던거 같지만 정상작동했음.)

설치

  • 기존에 남아있는 kubernetes 삭제

    sudo apt-get purge kubeadm
    sudo apt-get purge kubectl
    sudo apt-get purge kubelet
    sudo apt-get purge kubernetes-cni
    rm -rf /etc/systemd/system/kubelet.service.d
    rm -rf /opt/cni/bin
    rm -rf ~/.kube/config

Kubernetes 설치 (version 1.13.1)

  • 참고한 자료

    https://github.com/IBM/blockchain-network-on-kubernetes/blob/master/README-ko.md
    https://medium.com/@dirty49374/kubeadm%EC%9D%84-%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC-kubernetes-%EC%84%A4%EC%B9%98%ED%95%98%EA%B8%B0-ubuntu-18-04-61710f0b4db8
    https://medium.com/@debutinfotech/deploying-hyperledger-fabric-v1-2-on-kubernetes-cluster-94a4c8032f3

  • Master, Worker 아래 명령어를 통해 설치한다.. 소스 추가 등은 기존에 한 적이 있다면 생략

    sudo su -
    # google k8s 패키지 소스 등록
    apt update && apt upgrade -y
    curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -
    cat <<EOF > /etc/apt/sources.list.d/kubernetes.list
    deb http://apt.kubernetes.io/ kubernetes-xenial main
    EOF

    apt-get update
    apt install linux-image-extra-virtual ca-certificates curl software-properties-common -y
    # docker 소스 등록
    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
    add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
    apt update
    apt install docker-ce kubelet kubeadm kubectl kubernetes-cni -y
  • Swap 제거 (Master, Worker 공통. 안해주면 kubeadm init 때 오류 발생)

    sudo su -
    swapoff -a
    vi /etc/fstab
    # swap에 해당하는 영역을 #로 커맨트
    #UUID=696444df-416c-4846-861e-ea4bb1f66ed0 none swap sw 0 0
  • Master 노드에서 아래 명령어를 통해 kubernetes 를 실행

    sudo kubeadm init --pod-network-cidr=10.244.0.0/16

    #--pod-network-cidr 옵션은 flannel 을 플러그인으로 사용할 경우 필수라고 한다.
    # 아래 join 명령어를 그대로 복사해서

    # kubeadm join 10.0.0.194:6443 --token au4wjg.rk4ft0pgf9babix7 --discovery-token-ca-cert-hash sha256:ff5aa52f16e1a738bf49fc6291e2813b43f7722d40af317bec046c1f3b50eebf
    mkdir -p $HOME/.kube
    sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
    sudo chown $(id -u):$(id -g) $HOME/.kube/config
    export KUBECONFIG=$HOME/.kube/config
    export KUBECONFIG=$HOME/.kube/config | tee -a ~/.bashrc
    # ~~플러그인 설치 여기서는 수많은 network 플러그인 중 weave net 설치함~~ -> 내부 domain 을 못찾는 이슈가 생김.
    kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d '\n')"
    >https://www.weave.works/docs/net/latest/kubernetes/kube-addon/
    # 아래는 flannel 설치 방법
    kubectl -n kube-system apply -f https://raw.githubusercontent.com/coreos/flannel/bc79dd1505b0c8681ece4de4c0d86c5cd2643275/Documentation/kube-flannel.yml
    >https://raw.githubusercontent.com/coreos/flannel/bc79dd1505b0c8681ece4de4c0d86c5cd2643275/Documentation/kube-flannel.yml
  • Worker 노드에서 아래 명령어 실행

    #마스터의 kubeadm init 결과로 나온 join 명령을 그대로 복사하여 붙여넣는다.
    kubeadm join 10.0.0.194:6443 --token *************** --discovery-token-ca-cert-hash sha256:****************

플러그인 설치

  • 대시보드 (마스터 노드)

    https://kubernetes.io/docs/tasks/access-application-cluster/web-ui-dashboard/

    kubectl create -f https://raw.githubusercontent.com/kubernetes/dashboard/master/aio/deploy/recommended/kubernetes-dashboard.yaml
    kubectl proxy --port=8001 --address=10.0.0.194 --accept-hosts='^10.0.0.[0-9]*$'
    # 기본적으로 서버내 브라우저로 하면 정상동작한다.. 위로 하면 api 정보만 나옴. 다른 옵션을 추가로 줘야 할 듯 함.
    #로그인 토큰 얻기
    kubectl -n kube-system get secret
    kubectl -n kube-system describe secrets replicaset-controller-token-kzpmc
    eyJhbGciOiJSUzI1NiIsImtpZCI6IiJ9.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlLXN5c3RlbSIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJyZXBsaWNhc2V0LWNvbnRyb2xsZXItdG9rZW4tcGI3ZmwiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC5uYW1lIjoicmVwbGljYXNldC1jb250cm9sbGVyIiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQudWlkIjoiYWRjNjgxYWEtMTUzOC0xMWU5LWIzYzgtMTAxZjc0MGRhMjcwIiwic3ViIjoic3lzdGVtOnNlcnZpY2VhY2NvdW50Omt1YmUtc3lzdGVtOnJlcGxpY2FzZXQtY29udHJvbGxlciJ9.jjM7B4mx8bUgjvLRMaiTSTbKQKbGJ9V3HbkJ-3muAnqWNk7FJxK25LneO69pONGr_EhFKdfGj_u_Tsgc3gMtKaE_vrCDBKInZzLSMsG4lx4BptA0T7kLiS0yo52kZC5JQ4hucVWE4k7Qkw2AvOVDQikiNiN9Ygcg4Dj6YtF43HTsV4zX8bYgi5emGZTC8AOx-5gTaYY6oAEAT-A1xsJcxjxbB-21IujibplCLo-5QtXMPFURZOuGNvHdU3E9dCwZB1ErsmYrLr6__W2Ra9dvR9Yp6-kuth4_yDyM2NTI4xTzIJz_iQSdg4rAPx0EKzz0Jja8il2v9UEYyEP-NRvzeg

    #위 로그인은 마스터의 local에서만 가능함

Hyperledger Fabric 설치

  • git 받기

    cd /root/fabric
    git clone https://github.com/IBM/blockchain-network-on-kubernetes.git
    cd blockchain-network-on-kubernetes
  • Kubernetes 서버 버전이 v1.11.x 이상인 경우 아래 커멘드 실행.


    ## macOS
    sed -i '' s#unix:///host/var/run/docker.sock#tcp://docker:2375# configFiles/peersDeployment.yaml
    ## Linux
    sed -i s#unix:///host/var/run/docker.sock#tcp://docker:2375# configFiles/peersDeployment.yaml
  • container 에 host 수정 (실행이 안되는 오류로 도메인문제인지 확인하기 위해 사용)

    kubectl describe pods/blockchain-orderer-7db9889bcc-2k5rf | grep IP | awk {'print $2'}
    #find ./ -name "*" -exec sed -i 's/old/new/g' {} \;
  • 패브릭 배포

    chmod +x setup_blockchainNetwork.sh
    ./setup_blockchainNetwork.sh

이슈

  1. 패브릭 배포할 때 ./setup_blockchainNetwork.sh 명령어 실행시 특정 명령어가 무한루프 도는 오류

    • 내부 스크립트를 한땀한땀 따서 실행. -> 그 뒤 setup_blockchainNetwork.sh 를 커스터마이징 하여 해결 완료.

  2. PV, PVC 생성 후, pod 생성할 때 디렉터리 공유가 안되는 현상 (/shared 가 계속 copy 성공해도 비어있음.)

    • 원원

      • 원인을 local 과 hostPath 형태의 Volume 이 accessMode ReadWriteMany 를 지원 안해서라고 판단됨.

      • 원인 추측 출처 http://arisu1000.tistory.com/27849

      • nfs 를 설치하기로 함. (10.0.0.194 서버)

    • 해결

      • NFS 설치 후 적용

      • 출처 : http://darksoulstory.tistory.com/9

      • 설치 진행 후 /shared/nfs 폴더 생성

        apt-get install nfs-common nfs-kernel-server portmap
        mkdir /shared/nfs
        cd /shared/nfs
        chmod 777 /shared/nfs
        chown nobody:nogroup /shared/nfs
      • NFS 설정 파일 변경

          • vi /etc/exports 하여 하단에 내용 추가

            #형식 : [/공유 디렉터리] [접근 IP] [옵션]
            /shared/nfs * (rw,no_root_squash,async)

      • NFS 커널 서버 및 NFS 포트맵 재 시작

        systemctl restart nfs-kernel-server
        systemctl restart portmap

      • 클라이언트에서 유틸 설치 진행

        apt install nfs-common
        apt install cifs-utils
        #테스트
        mount -t nfs -o nolock 10.0.0.194:/shared/nfs /mnt/nfs
        mkdir /mnt/nfs/a
  3. 채널 생성 실패.

    • 실행

      • kubectl create -f ${KUBECONFIG_FOLDER}/create_channel.yaml

      • 오류 출력 문구

      • Error: failed to create deliver client: orderer client failed to connect to blockchain-orderer:31010: failed to create new connection: context deadline exceeded

    • 원인

      • blockchain-orderer 에 대한 도메인 네임을 못찾아서 생긴 문제.

      • network plugin 으로 weave net 을 사용하였는데, 해당 네트워크에서는 DNS 에 있지 않는 도메인은 못 찾는 것 같음.

    • 해결

      • 네트워크 설치 방법 변경

      • weave net 대신 flannel 를 설치하여 해결함.

마치며…

  • IBM 에서 제공한 Kubernetes 에서 Hyperledger Fabric 을 동작시키는 방법 의 문서를 토대로 작성하였는데, 이 문서가 IBM Cloud 를 사용한다는 가정하에 만들어져있던 문서다보니 디스크 볼륨 구성을 새로하였습니다.

  • 네트워크 부분에서는 flannel 의 latest 버전이 설치가 안되고, weave net 로 설치하면 Domain 이 인식이 안되는 등의 문제가 있던 이슈도 있었습니다.

  • 좀더 자세한 자료를 얻고 싶다면, https://github.com/IBM/blockchain-network-on-kubernetes/blob/master/README-ko.md 을 확인하시기 바랍니다.

자주쓰는 명령어

kubectl describe pods/$(kubectl get pods |grep ca |awk '{print $1}') |grep IP
# peer1 이름 확인
kubectl get pods | grep org1peer1 | awk '{print $1}'
# 체인코드 인스턴스화 JOB 로그확인
kubectl logs --all-containers=true -f `kubectl get pods|grep chaincodeinstantiate|awk '{print $1}'`
# peer1 쉘실행
kubectl exec -it `kubectl get pods|grep org1peer1|awk '{print $1}'` /bin/bash
%23%20HyperledgerFabric%20with%20Kubernetes%0A%0A%3E%20%uC774%uBB38%uC11C%uB294%20https%3A//marxi.co/%20%uC5D0%uC11C%20%uB9CC%uB4E4%uC5B4%uC84C%uC2B5%uB2C8%uB2E4.%0A%0A%23%23%20%uC0AC%uC591%0A*%20%uC6B0%uBD84%uD22C%2016.04%20%28Slave%uB294%2017%20%uC774%uC5C8%uB358%uAC70%20%uAC19%uC9C0%uB9CC%20%uC815%uC0C1%uC791%uB3D9%uD588%uC74C.%29%0A%0A%23%23%20%uC124%uCE58%0A%0A*%20%uAE30%uC874%uC5D0%20%uB0A8%uC544%uC788%uB294%20kubernetes%20%uC0AD%uC81C%0A%20%20%60%60%60%0A%20%20sudo%20apt-get%20purge%20kubeadm%0A%20%20sudo%20apt-get%20purge%20kubectl%0A%20%20sudo%20apt-get%20purge%20kubelet%0A%20%20sudo%20apt-get%20purge%20kubernetes-cni%0A%20%20rm%20-rf%20/etc/systemd/system/kubelet.service.d%0A%20%20rm%20-rf%20/opt/cni/bin%0A%20%20rm%20-rf%20%7E/.kube/config%0A%0A%20%20%60%60%60%0A%0A%23%23%23%20Kubernetes%20%uC124%uCE58%20%28version%201.13.1%29%0A%0A*%20%uCC38%uACE0%uD55C%20%uC790%uB8CC%0A%20%20%3Ehttps%3A//github.com/IBM/blockchain-network-on-kubernetes/blob/master/README-ko.md%0A%20%20%3Ehttps%3A//medium.com/@dirty49374/kubeadm%25EC%259D%2584-%25EC%2582%25AC%25EC%259A%25A9%25ED%2595%2598%25EC%2597%25AC-kubernetes-%25EC%2584%25A4%25EC%25B9%2598%25ED%2595%2598%25EA%25B8%25B0-ubuntu-18-04-61710f0b4db8%0A%20%20%3Ehttps%3A//medium.com/@debutinfotech/deploying-hyperledger-fabric-v1-2-on-kubernetes-cluster-94a4c8032f3%0A%0A*%20Master%2C%20Worker%20%uC544%uB798%20%uBA85%uB839%uC5B4%uB97C%20%uD1B5%uD574%20%uC124%uCE58%uD55C%uB2E4..%20%uC18C%uC2A4%20%uCD94%uAC00%20%uB4F1%uC740%20%uAE30%uC874%uC5D0%20%uD55C%uC801%uC774%20%uC788%uB2E4%uBA74%20%uC0DD%uB7B5%uD55C%uB2E4.%0A%20%20%60%60%60%0A%20%20sudo%20su%20-%0A%0A%20%20%23%20google%20k8s%20%uD328%uD0A4%uC9C0%20%uC18C%uC2A4%20%uB4F1%uB85D%0A%20%20apt%20update%20%26%26%20apt%20upgrade%20-y%0A%20%20curl%20https%3A//packages.cloud.google.com/apt/doc/apt-key.gpg%20%7C%20apt-key%20add%20-%0A%0A%20%20cat%20%3C%3CEOF%20%3E%20/etc/apt/sources.list.d/kubernetes.list%0A%20%20deb%20http%3A//apt.kubernetes.io/%20kubernetes-xenial%20main%0A%20%20EOF%0A%0A%20%20apt-get%20update%0A%20%20apt%20install%20linux-image-extra-virtual%20ca-certificates%20curl%20software-properties-common%20-y%0A%0A%20%20%23%20docker%20%uC18C%uC2A4%20%uB4F1%uB85D%0A%20%20curl%20-fsSL%20https%3A//download.docker.com/linux/ubuntu/gpg%20%7C%20sudo%20apt-key%20add%20-%0A%0A%20%20add-apt-repository%20%20%20%20%22deb%20%5Barch%3Damd64%5D%20https%3A//download.docker.com/linux/ubuntu%20%24%28lsb_release%20-cs%29%20stable%22%0A%0A%20%20apt%20update%0A%20%20apt%20install%20docker-ce%20kubelet%20kubeadm%20kubectl%20kubernetes-cni%20-y%0A%20%20%60%60%60%0A%0A%0A*%20Swap%20%uC81C%uAC70%20%28Master%2C%20Worker%20%uACF5%uD1B5.%20%uC548%uD574%uC8FC%uBA74%20kubeadm%20init%20%uB54C%20%uC624%uB958%20%uBC1C%uC0DD%29%0A%20%20%60%60%60%0A%20%20sudo%20su%20-%0A%0A%20%20swapoff%20-a%0A%20%20vi%20/etc/fstab%0A%20%20%23%20swap%uC5D0%20%uD574%uB2F9%uD558%uB294%20%uC601%uC5ED%uC744%20%23%uB85C%20%uCEE4%uB9E8%uD2B8%0A%20%20%23UUID%3D696444df-416c-4846-861e-ea4bb1f66ed0%20none%20%20%20%20%20%20%20%20%20%20%20%20swap%20%20%20%20sw%20%20%20%20%20%20%20%20%20%20%20%20%20%200%20%20%20%20%20%20%200%0A%20%20%60%60%60%0A%0A%0A*%20Master%20%uB178%uB4DC%uC5D0%uC11C%20%uC544%uB798%20%uBA85%uB839%uC5B4%uB97C%20%uD1B5%uD574%20kubernetes%20%uB97C%20%uC2E4%uD589%uD55C%uB2E4.%0A%20%20%60%60%60%0A%20%20sudo%20kubeadm%20init%20--pod-network-cidr%3D10.244.0.0/16%0A%20%20%23--pod-network-cidr%20%uC635%uC158%uC740%20flannel%20%uC744%20%uD50C%uB7EC%uADF8%uC778%uC73C%uB85C%20%uC0AC%uC6A9%uD560%20%uACBD%uC6B0%20%uD544%uC218%uB77C%uACE0%20%uD55C%uB2E4.%0A%0A%20%20%23%20%uC544%uB798%20join%20%uBA85%uB839%uC5B4%uB97C%20%uADF8%uB300%uB85C%20%uBCF5%uC0AC%uD574%uC11C%0A%20%20%23%20kubeadm%20join%2010.0.0.194%3A6443%20--token%20au4wjg.rk4ft0pgf9babix7%20--discovery-token-ca-cert-hash%20sha256%3Aff5aa52f16e1a738bf49fc6291e2813b43f7722d40af317bec046c1f3b50eebf%0A%0A%20%20mkdir%20-p%20%24HOME/.kube%0A%20%20sudo%20cp%20-i%20/etc/kubernetes/admin.conf%20%24HOME/.kube/config%0A%20%20sudo%20chown%20%24%28id%20-u%29%3A%24%28id%20-g%29%20%24HOME/.kube/config%0A%20%20export%20KUBECONFIG%3D%24HOME/.kube/config%0A%20%20export%20KUBECONFIG%3D%24HOME/.kube/config%20%7C%20tee%20-a%20%7E/.bashrc%0A%0A%20%20%23%20%7E%7E%uD50C%uB7EC%uADF8%uC778%20%uC124%uCE58%20%uC5EC%uAE30%uC11C%uB294%20%uC218%uB9CE%uC740%20network%20%uD50C%uB7EC%uADF8%uC778%20%uC911%20weave%20net%20%uC124%uCE58%uD568%7E%7E%20-%3E%20%uB0B4%uBD80%20domain%20%uC744%20%uBABB%uCC3E%uB294%20%uC774%uC288%uAC00%20%uC0DD%uAE40.%0A%20%20kubectl%20apply%20-f%20%22https%3A//cloud.weave.works/k8s/net%3Fk8s-version%3D%24%28kubectl%20version%20%7C%20base64%20%7C%20tr%20-d%20%27%5Cn%27%29%22%0A%20%20%3Ehttps%3A//www.weave.works/docs/net/latest/kubernetes/kube-addon/%0A%0A%20%20%23%20%uC544%uB798%uB294%20flannel%20%uC124%uCE58%20%uBC29%uBC95%0A%20%20kubectl%20-n%20kube-system%20apply%20-f%20https%3A//raw.githubusercontent.com/coreos/flannel/bc79dd1505b0c8681ece4de4c0d86c5cd2643275/Documentation/kube-flannel.yml%0A%20%20%3Ehttps%3A//raw.githubusercontent.com/coreos/flannel/bc79dd1505b0c8681ece4de4c0d86c5cd2643275/Documentation/kube-flannel.yml%0A%20%20%60%60%60%0A%0A*%20Worker%20%uB178%uB4DC%uC5D0%uC11C%20%uC544%uB798%20%uBA85%uB839%uC5B4%uB97C%20%uC2E4%uD589%uD55C%uB2E4.%0A%20%20%60%60%60%0A%20%20%23%uB9C8%uC2A4%uD130%uC758%20kubeadm%20init%20%uACB0%uACFC%uB85C%20%uB098%uC628%20join%20%uBA85%uB839%uC744%20%uADF8%uB300%uB85C%20%uBCF5%uC0AC%uD558%uC5EC%20%uBD99%uC5EC%uB123%uB294%uB2E4.%0A%20%20kubeadm%20join%2010.0.0.194%3A6443%20--token%20***************%20--discovery-token-ca-cert-hash%20sha256%3A****************%0A%20%20%60%60%60%0A%0A%0A%23%23%23%20%uD50C%uB7EC%uADF8%uC778%20%uC124%uCE58%0A%0A*%20%uB300%uC2DC%uBCF4%uB4DC%20%28%uB9C8%uC2A4%uD130%20%uB178%uB4DC%29%0A%20%20%3Ehttps%3A//kubernetes.io/docs/tasks/access-application-cluster/web-ui-dashboard/%0A%20%20%60%60%60%0A%20%20kubectl%20create%20-f%20https%3A//raw.githubusercontent.com/kubernetes/dashboard/master/aio/deploy/recommended/kubernetes-dashboard.yaml%0A%20%20kubectl%20proxy%20--port%3D8001%20--address%3D10.0.0.194%20--accept-hosts%3D%27%5E10.0.0.%5B0-9%5D*%24%27%0A%20%20%23%20%uAE30%uBCF8%uC801%uC73C%uB85C%20%uC11C%uBC84%uB0B4%20%uBE0C%uB77C%uC6B0%uC800%uB85C%20%uD558%uBA74%20%uC815%uC0C1%uB3D9%uC791%uD55C%uB2E4..%20%uC704%uB85C%20%uD558%uBA74%20api%20%uC815%uBCF4%uB9CC%20%uB098%uC634.%20%uB2E4%uB978%20%uC635%uC158%uC744%20%uCD94%uAC00%uB85C%20%uC918%uC57C%20%uD560%20%uB4EF%20%uD568.%0A%0A%20%20%23%uB85C%uADF8%uC778%20%uD1A0%uD070%20%uC5BB%uAE30%0A%20%20kubectl%20-n%20kube-system%20get%20secret%0A%20%20kubectl%20-n%20kube-system%20describe%20secrets%20replicaset-controller-token-kzpmc%0A%20%20%20eyJhbGciOiJSUzI1NiIsImtpZCI6IiJ9.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlLXN5c3RlbSIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJyZXBsaWNhc2V0LWNvbnRyb2xsZXItdG9rZW4tcGI3ZmwiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC5uYW1lIjoicmVwbGljYXNldC1jb250cm9sbGVyIiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQudWlkIjoiYWRjNjgxYWEtMTUzOC0xMWU5LWIzYzgtMTAxZjc0MGRhMjcwIiwic3ViIjoic3lzdGVtOnNlcnZpY2VhY2NvdW50Omt1YmUtc3lzdGVtOnJlcGxpY2FzZXQtY29udHJvbGxlciJ9.jjM7B4mx8bUgjvLRMaiTSTbKQKbGJ9V3HbkJ-3muAnqWNk7FJxK25LneO69pONGr_EhFKdfGj_u_Tsgc3gMtKaE_vrCDBKInZzLSMsG4lx4BptA0T7kLiS0yo52kZC5JQ4hucVWE4k7Qkw2AvOVDQikiNiN9Ygcg4Dj6YtF43HTsV4zX8bYgi5emGZTC8AOx-5gTaYY6oAEAT-A1xsJcxjxbB-21IujibplCLo-5QtXMPFURZOuGNvHdU3E9dCwZB1ErsmYrLr6__W2Ra9dvR9Yp6-kuth4_yDyM2NTI4xTzIJz_iQSdg4rAPx0EKzz0Jja8il2v9UEYyEP-NRvzeg%0A%0A%20%20%20%23%uC704%20%uB85C%uADF8%uC778%uC740%20local%uC5D0%uC11C%uB9CC%20%uAC00%uB2A5%uD55C%uB4EF/..............%0A%20%20%60%60%60%0A%0A%0A%23%23%23%20Hyperledger%20Fabric%20%uC124%uCE58%0A%0A*%20git%20%uBC1B%uAE30%0A%20%20%60%60%60%0A%20%20cd%20/root/fabric%0A%20%20git%20clone%20https%3A//github.com/IBM/blockchain-network-on-kubernetes.git%0A%20%20cd%20blockchain-network-on-kubernetes%0A%20%20%60%60%60%0A%0A*%20Kubernetes%20%uC11C%uBC84%20%uBC84%uC804%uC774%20v1.11.x%20%uC774%uC0C1%uC778%20%uACBD%uC6B0%20%uC544%uB798%20%uCEE4%uBA58%uB4DC%20%uC2E4%uD589.%0A%20%20%60%60%60%0A%20%20%23%23%20macOS%0A%20%20sed%20-i%20%27%27%20s%23unix%3A///host/var/run/docker.sock%23tcp%3A//docker%3A2375%23%20configFiles/peersDeployment.yaml%0A%20%20%23%23%20Linux%0A%20%20sed%20-i%20s%23unix%3A///host/var/run/docker.sock%23tcp%3A//docker%3A2375%23%20configFiles/peersDeployment.yaml%0A%20%20%60%60%60%0A%0A*%20container%20%uC5D0%20host%20%uC218%uC815%20%20%28%uC774%uC81C%20%uC548%uC500%29%0A%20%20%60%60%60%0A%20%20%20%20kubectl%20describe%20pods/blockchain-orderer-7db9889bcc-2k5rf%20%7C%20grep%20IP%20%7C%20awk%20%7B%27print%20%242%27%7D%0A%20%20%20%20%23find%20./%20-name%20%22*%22%20-exec%20sed%20-i%20%27s/old/new/g%27%20%7B%7D%20%5C%3B%0A%20%20%60%60%60%0A%0A*%20%uD328%uBE0C%uB9AD%20%uBC30%uD3EC%0A%20%20%60%60%60%0A%20%20chmod%20+x%20setup_blockchainNetwork.sh%0A%20%20./setup_blockchainNetwork.sh%0A%20%20%60%60%60%0A%0A%0A%0A%0A%0A%0A%23%23%23%20%uC774%uC288%0A1.%20%uD328%uBE0C%uB9AD%20%uBC30%uD3EC%uD560%20%uB54C%20./setup_blockchainNetwork.sh%20%uBA85%uB839%uC5B4%20%uC2E4%uD589%uC2DC%20%uD2B9%uC815%20%uBA85%uB839%uC5B4%uAC00%20%uBB34%uD55C%uB8E8%uD504%20%uB3C4%uB294%20%uC624%uB958%0A%20%20*%20%uB0B4%uBD80%20%uC2A4%uD06C%uB9BD%uD2B8%uB97C%20%uD55C%uB540%uD55C%uB540%20%uB530%uC11C%20%uC2E4%uD589.%20-%3E%20%uADF8%20%uB4A4%20setup_blockchainNetwork.sh%20%uB97C%20%uCEE4%uC2A4%uD130%uB9C8%uC774%uC9D5%20%uD558%uC5EC%20%uD574%uACB0%20%uC644%uB8CC.%0A%0A2.%20PV%2C%20PVC%20%uC0DD%uC131%20%uD6C4%2C%20pod%20%uC0DD%uC131%uD560%20%uB54C%20%uB514%uB809%uD130%uB9AC%20%uACF5%uC720%uAC00%20%uC548%uB418%uB294%20%uD604%uC0C1%20%28/shared%20%uAC00%20%uACC4%uC18D%20copy%20%uC131%uACF5%uD574%uB3C4%20%uBE44%uC5B4%uC788%uC74C.%29%0A%20%20*%20%uC6D0%uC778%0A%20%20%20%20*%20%uC6D0%uC778%uC744%20local%20%uACFC%20hostPath%20%uD615%uD0DC%uC758%20Volume%20%uC774%20accessMode%20ReadWriteMany%20%uB97C%20%uC9C0%uC6D0%20%uC548%uD574%uC11C%uB77C%uACE0%20%uD310%uB2E8%uB428.%0A%20%20%20%20*%20%uC6D0%uC778%20%uCD94%uCE21%20%uCD9C%uCC98%20http%3A//arisu1000.tistory.com/27849%0A%20%20%20%20*%20nfs%20%uB97C%20%uC124%uCE58%uD558%uAE30%uB85C%20%uD568.%20%2810.0.0.194%20%uC11C%uBC84%29%0A%0A%20%20*%20%uD574%uACB0%0A%20%20%20%20*%20NFS%20%uC124%uCE58%20%uD6C4%20%uC801%uC6A9%0A%20%20%20%20*%20%uCD9C%uCC98%20%3A%20http%3A//darksoulstory.tistory.com/9%0A%20%20%20%20*%20%uC124%uCE58%20%uC9C4%uD589%20%uD6C4%20/shared/nfs%20%uD3F4%uB354%20%uC0DD%uC131%0A%20%20%20%20%20%20%60%60%60%0A%20%20%20%20%20%20apt-get%20install%20nfs-common%20nfs-kernel-server%20portmap%0A%20%20%20%20%20%20mkdir%20/shared/nfs%0A%20%20%20%20%20%20cd%20/shared/nfs%0A%20%20%20%20%20%20chmod%20777%20/shared/nfs%0A%20%20%20%20%20%20chown%20nobody%3Anogroup%20%20/shared/nfs%0A%20%20%20%20%20%20%60%60%60%0A%0A%20%20%20%20*%20NFS%20%uC124%uC815%20%uD30C%uC77C%20%uBCC0%uACBD%0A%20%20%20%20%20%20*%20vi%20/etc/exports%20%uD558%uC5EC%20%uD558%uB2E8%uC5D0%20%uB0B4%uC6A9%20%uCD94%uAC00%0A%20%20%20%20%20%20%60%60%60%0A%20%20%20%20%20%20%23%uD615%uC2DD%20%3A%20%5B/%uACF5%uC720%20%uB514%uB809%uD130%uB9AC%5D%20%5B%uC811%uADFC%20IP%5D%20%5B%uC635%uC158%5D%0A%20%20%20%20%20%20/shared/nfs%20*%20%28rw%2Cno_root_squash%2Casync%29%0A%20%20%20%20%20%20%60%60%60%0A%20%20%20%20*%20NFS%20%uCEE4%uB110%20%uC11C%uBC84%20%uBC0F%20NFS%20%uD3EC%uD2B8%uB9F5%20%uC7AC%20%uC2DC%uC791%0A%20%20%20%20%20%20%60%60%60%0A%20%20%20%20%20%20systemctl%20restart%20nfs-kernel-server%0A%20%20%20%20%20%20systemctl%20restart%20portmap%0A%20%20%20%20%20%20%60%60%60%0A%0A%20%20%20%20*%20%uD074%uB77C%uC774%uC5B8%uD2B8%uC5D0%uC11C%20%uC720%uD2F8%20%uC124%uCE58%20%uC9C4%uD589%0A%20%20%20%20%20%20%60%60%60%0A%20%20%20%20%20%20apt%20install%20nfs-common%0A%20%20%20%20%20%20apt%20install%20cifs-utils%0A%20%20%20%20%20%20%23%uD14C%uC2A4%uD2B8%0A%20%20%20%20%20%20mount%20-t%20nfs%20-o%20nolock%2010.0.0.194%3A/shared/nfs%20/mnt/nfs%0A%20%20%20%20%20%20mkdir%20/mnt/nfs/a%0A%20%20%20%20%20%20%60%60%60%0A%0A3.%20%uCC44%uB110%20%uC0DD%uC131%20%uC2E4%uD328.%0A%20%20*%20%uC2E4%uD589%0A%20%20%20%20*%20kubectl%20create%20-f%20%24%7BKUBECONFIG_FOLDER%7D/create_channel.yaml%0A%20%20*%20%uC624%uB958%20%uCD9C%uB825%20%uBB38%uAD6C%0A%20%20%20%20*%20Error%3A%20failed%20to%20create%20deliver%20client%3A%20orderer%20client%20failed%20to%20connect%20to%20blockchain-orderer%3A31010%3A%20failed%20to%20create%20new%20connection%3A%20context%20deadline%20exceeded%0A%20%20*%20%uC6D0%uC778%0A%20%20%20%20*%20blockchain-orderer%20%uC5D0%20%uB300%uD55C%20%uB3C4%uBA54%uC778%20%uB124%uC784%uC744%20%uBABB%uCC3E%uC544%uC11C%20%uC0DD%uAE34%20%uBB38%uC81C.%0A%20%20%20%20*%20network%20plugin%20%uC73C%uB85C%20weave%20net%20%uC744%20%uC0AC%uC6A9%uD558%uC600%uB294%uB370%2C%20%uD574%uB2F9%20%uB124%uD2B8%uC6CC%uD06C%uC5D0%uC11C%uB294%20DNS%20%uC5D0%20%uC788%uC9C0%20%uC54A%uB294%20%uB3C4%uBA54%uC778%uC740%20%uBABB%20%uCC3E%uB294%20%uAC83%20%uAC19%uC74C.%0A%20%20*%20%uD574%uACB0%0A%20%20%20%20*%20%uB124%uD2B8%uC6CC%uD06C%0A%20%20%20%20*%20weave%20net%20%uB300%uC2E0%20flannel%20%uB97C%20%uC124%uCE58%uD558%uC5EC%20%uD574%uACB0%uD568.%0A%0A%0A%0A%0A%23%23%23%20%uB9C8%uCE58%uBA70...%0A%0A%0A*%20IBM%20%uC5D0%uC11C%20%uC81C%uACF5%uD55C%20%60Kubernetes%20%uC5D0%uC11C%20Hyperledger%20Fabric%20%uC744%20%uB3D9%uC791%uC2DC%uD0A4%uB294%20%uBC29%uBC95%60%20%uC758%20%uBB38%uC11C%uB97C%20%uD1A0%uB300%uB85C%20%uC791%uC131%uD558%uC600%uB294%uB370%2C%20%uC774%20%uBB38%uC11C%uAC00%20IBM%20Cloud%20%uB97C%20%uC0AC%uC6A9%uD55C%uB2E4%uB294%20%uAC00%uC815%uD558%uC5D0%20%uB9CC%uB4E4%uC5B4%uC838%uC788%uB358%20%uBB38%uC11C%uB2E4%uBCF4%uB2C8%20%uB514%uC2A4%uD06C%20%uBCFC%uB968%20%uAD6C%uC131%uC744%20%uC0C8%uB85C%uD558%uC600%uB2E4.%0A%0A*%20%uB124%uD2B8%uC6CC%uD06C%20%uBD80%uBD84%uC5D0%uC11C%uB294%20flannel%20%uC758%20latest%20%uBC84%uC804%uC774%20%uC124%uCE58%uAC00%20%uC548%uB418%uACE0%2C%20weave%20net%20%uB85C%20%uC124%uCE58%uD558%uBA74%20Domain%20%uC774%20%uC778%uC2DD%uC774%20%uC548%uB418%uB294%20%uB4F1%uC758%20%uBB38%uC81C%uAC00%20%uC788%uB358%20%uC774%uC288%uB3C4%20%uC788%uC5C8%uB2E4.%0A%0A*%20%uD655%uC778%uD574%uBCF4%uB2C8%20%uCC38%uACE0%uD55C%20%uBB38%uC11C%20%uC790%uCCB4%uC5D0%uC11C%20%uC0AC%uC6A9%uD55C%20Kubernetes%20%uBC84%uC804%uC774%20%uC124%uCE58%uD558%uB824%uB294%20%uBC84%uC804%uBCF4%uB2E4%200.4%20%uB0AE%uC740%20%uBC84%uC804%uC774%uC5C8%uB2E4.%0A%0A*%20%uC880%uB354%20%uC790%uC138%uD55C%20%uC790%uB8CC%uB97C%20%uC5BB%uACE0%20%uC2F6%uB2E4%uBA74%2C%20https%3A//github.com/IBM/blockchain-network-on-kubernetes/blob/master/README-ko.md%20%uC744%20%uCC38%uC870%uD558%uAE38%20%uBC14%uB780%uB2E4.%0A%0A%0A%0A%0A%0A%0A%23%23%23%20%uC790%uC8FC%uC4F0%uB294%20%uBA85%uB839%uC5B4%0A%60%60%60%0Akubectl%20describe%20pods/%24%28kubectl%20get%20pods%20%7Cgrep%20ca%20%7Cawk%20%27%7Bprint%20%241%7D%27%29%20%20%7Cgrep%20IP%0A%0A%23%20peer1%20%uC774%uB984%20%uD655%uC778%0Akubectl%20get%20pods%20%7C%20grep%20org1peer1%20%7C%20awk%20%27%7Bprint%20%241%7D%27%0A%0A%23%20peer1%20%uB85C%uADF8%uD655%uC778%0Akubectl%20logs%20--all-containers%3Dtrue%20-f%20%60kubectl%20get%20pods%7Cgrep%20chaincodeinstantiate%7Cawk%20%27%7Bprint%20%241%7D%27%60%0A%0A%23%20peer1%20%uC258%uC2E4%uD589%0Akubectl%20exec%20-it%20%60kubectl%20get%20pods%7Cgrep%20org1peer1%7Cawk%20%27%7Bprint%20%241%7D%27%60%20/bin/bash%0A%0A%60%60%60%0A


+ Recent posts