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クラスタを探してチュートリアルを構築します
flannelのインストール
クbenetesのインストール
コンポーネントの配置
etcd起動:
kubernetes api server起動:
kube-controller-manager:
kube-scheduler:
kube-proxy:
Node起動コンポーネント
docker:
kubelet:
kube-proxy:
flanneld:
docker
F && Q環境構築が完了した後、masterノードは次のコマンドを実行する: 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で正常に操作できます
centos7.2 kubernetesクラスタの構築および問題点
環境準備:
説明: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
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]
理由:このチュートリアルで構築された環境と結びつけて、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で正常に操作できます