kubernetesクラスタの構築と問題点

4606 ワード

from:kubernetesクラスタの構築と問題点
centos7.2 kubernetesクラスタの構築および問題点
環境準備:
  • centos7.2
  • etcd
  • flannel
  • kubenetes1.3

  • 説明:1台のpcはkubernetes masterノードを構築するために使用され、n台のkuernetesノードはkubernetesクラスタを構成し、masterノードはetcd kube-apiserver kube-controller-managerを実行する必要がある.
    node
    ip
    kube-master
    192.168….
    kube-node-1
    192.168…
    …..
    …..
    kube-node-i
    192.168…
    必要なソフトウェアのインストール
    etcdのインストール
    etcdはkubernetest masterノードにインストールしますこのチュートリアルは単機のetcdだけをインストールして、もしetcdクラスタを使う必要があるならば、自分でネット上でetcdクラスタを探してチュートリアルを構築します
    sudo wget http://code.yunfancdn.cn/huangjia/document/raw/master/kubernete/etcd-v2.2.0-linux-amd64.tar.gz
    
    sudo tar -zxf etcd-v2.2.0-linux-amd64.tar.gz
    
    sudo cd etcd-v2.2.0-linux-amd64
    
    sudo cp etcd etcdctl /usr/bin
    

    flannelのインストール
    sudo wget http://code.yunfancdn.cn/huangjia/document/raw/master/kubernete/flannel-0.5.4-linux-amd64.tar.gz
    
    sudo cd flannel-0.5.4
    
    sudo flanneld  /usr/bin
    

    クbenetesのインストール
    sudo wget http://code.yunfancdn.cn/huangjia/document/raw/master/kubernete/kubernetes.tar.gz
    
    sudo tar -zxf kubernetes.tar.gz
    
    sudo cd kubernetes
    
    sudo cp kube* /usr/bin
    

    コンポーネントの配置
    etcd起動:
    etcd -name etcd \
    -data-dir /var/lib/etcd \
    -listen-client-urls http://0.0.0.0:2378,http://0.0.0.0:4001 \
    -advertise-client-urls http://0.0.0.0:2378,http://0.0.0.0:4001 \
    >> /var/log/etcd.log 2>&1 &
    

    kubernetes api server起動:
    sudo kube-apiserver \
    --logtostderr=true --v=0 \
    --etcd_servers=http://172.17.11.254:4001 \
    --insecure-bind-address=0.0.0.0 --insecure-port=8080 \
    --service-cluster-ip-range=10.254.1.0/16 \
    >> /home/huangjia/log/kube-apiserver.log 2>&1 &
    

    kube-controller-manager:
    sudo kube-controller-manager \
    --logtostderr=true --v=0 \
    --master=http://0.0.0.0:8080 \
    >> /home/huangjia/log/kube-controller-manager.log 2>&1 &
    

    kube-scheduler:
    sudo kube-scheduler \
    --logtostderr=true --v=0 \
    --master=http://0.0.0.0:8080 \
    >> /home/huangjia/log/kube-scheduler.log 2>&1 &
    

    kube-proxy:
    sudo kube-proxy \
    --logtostderr=true --v=0 \
    --master=http://0.0.0.0:8080 \
    >> /home/huangjia/log/kube-proxy.log 2>&1 &
    

    Node起動コンポーネント
    docker:
    sudo docker -d \
    -H unix:///var/run/docker.sock -H 0.0.0.0:2375 \
    >> /home/huangjia/log/docker.log 2>&1 &
    

    kubelet:
    sudo kubelet \
    --address=0.0.0.0 \
    --port=10250 \
    --logtostderr=true --v=0 \
    --api-servers=http://0.0.0.0:8080 \
    >> /home/huangjia/log/kubelet.log 2>&1 &
    

    kube-proxy:
    sudo kube-proxy \
    --logtostderr=true --v=0 \
    --master=http://192.168.3.27:8080 \
    >> /home/huangjia/log/kube-proxy.log 2>&1 &
    

    flanneld:
    etcdctl -C http://192.168.3.206:4001 \
    set /coreos.com/network/config '{"Network":"10.0.0.0/16"}'
    
    flanneld -etcd-endpoints=http://192.168.3.206:4001 \
    >> /home/huangjia/log/flanneld.go 2>&1 &
    
    source /run/flannel/subnet.env
    
    ifconfig docker0 ${FLANNEL_SUBNET}      docker0      flannel   
    

    docker
    docker -d \
    -H unix:///var/run/docker.sock -H 0.0.0.0:2375 \
    --bip=${FLANNEL_SUBNRT} --mtu=${FLANNEL_MTU} \
    >> /home/huangjia/log/docker.log 2>&1 &
    

    F && Q
  • 環境構築が完了した後、masterノードは次のコマンドを実行する:
  • sudo kubectl get nodes      kubectl get create delete   ,       
    
    error: provided data does not appear to be a protobuf message, expected prefix [107 56 115 0]
  • 1
  • 2
  • 3

  • 理由:このチュートリアルで構築された環境と結びつけて、kubectlのデフォルトはmasterノードのip:8080方式でapiserver送信要求に接続することですが、デプロイ中にmasterノードの8080ポートが他のアプリケーションに占有されているため、apiserverのポートを9080に変更したので、直接:kubectl getなどの操作を使用すると上記のエラーが報告されます.解決策は2つあります.1つはkubectl-sを通じてhttp://matserIp:apiserverPortget 2:kubectl config set-cluster name–server=http://matserIp:apiserverPortそしてkubectl–cluster=name getで正常に操作できます