1. 程式人生 > >Kubernetes編排工具-helm中使用grpc

Kubernetes編排工具-helm中使用grpc

    前面的文章,作者已經簡單的分析了helm客戶端處理流程,模板引擎的處理流程,已經install和status命令在tiller中的處理流程。本文,作者將記錄一下在helm中使用grpc的過程,方便大家在分析helm的過程中,使用其中的grpc庫。

    helm版本拉取master上程式碼,時間為2017年04月29號,當前最新版本為v2.3.1,拉取的commit Id 為“045bf78f80024e42ddf055c8ad1d49cf2e6b91e0”.

    其中grpc庫剛好在這個版本升級到了grpc4,grpc庫對應的版本為:  version: 1.2.1  - package: google.golang.org/grpc

     相關的庫github.com/golang/protobuf 對應的commitId為 2bba0603135d7d7f5cb73b2125beeda19c09f4ef。

      github.com/grpc/grpc-go  對應的commitId為c5b7fccd204277076155f10851dad72b76a49317

      使用過程如下:

Step1: 在helm中找到grpc相關檔案的位置,在helm/_proto中,下面有grpc協議處理前的原始檔案,檔案型別為.proto


step2: 跳轉到_proto目錄下,執行make命令

可能遇到的問題1: make命令不存在

解決辦法:sudo apt-get install autoconf automake libtool curl make g++ unzip (yum -y install gcc automake autoconf libtool make)

可能遇到的問題2: /bin/sh: 1: protoc: not found

解決辦法: 這個問題是由於protobuffer的相關配置沒有配置正確造成

網上找到的解決辦法是 sudo apt-get install protobuf-compiler

但由於Ubuntu 中apt-get源上的protobuf版本不是最新版本,所有會遇到

Unrecognized syntax identifier "proto3".  This parser only recognizes "proto2" 這個問題


解決的辦法是,下載最新的proto的庫進行編譯,生成最新版的protoc

編譯過程可參考:  https://github.com/google/protobuf/blob/master/src/README.md

具體操作步驟為:

1、sudo apt-get install autoconf automake libtool curl make g++ unzip

2、git clone https://github.com/google/protobuf.git

3、./autogen.sh

4、/configure

5、make  -j8

6、make install

7、sudo ldconfig (如果該步驟不執行,則會出現動態庫找不到的情況)

這樣最新版本的protoc就安裝成功了

Step3: 再次在_proto目錄下執行make,現在可以執行成功了,但會出現沒有生成檔案的情況

Step4: 在_proto目錄下執行make clean,然後再執行make,則會發現檔案生成成功,檔案目錄為../pkg/proto