实验环境:
redhat 7.2 x86_64bit
组件 | ip |
---|---|
etcd; kube-apiserver; kube-controller-manager; kube-scheduler | 192.168.1.103 |
kube-proxy; kubelet | 192.168.1.106 |
1、etcd(master端)
本人使用的是elcolio/etcd:latest,可以使用docker命令从镜像库进行拉取:
docker pull elcolio/etcd
在master端运行:
docker run -d --net=host --restart=always --name=etcd -v /var/etcd/data:/var/etcd/data elcolio/etcd:latest
2. 启动flannel(master && slave)
flannel启动后获得可用于分配的IP集合
./flanneld --etcd-endpoints=http://192.168.1.103:4001 --etcd-prefix=/solinx.co/network --iface=eno16777736 > flan
3. 运行Kubernetes组件(master端)
可以去GitHub找最新的tar.gz包,然后解压,在类似以下目录中有各组件(需要解压第一层server目录中的kubernetes-server-linux-amd64.tar.gz才能有第二层Server目录)
运行kube-apiserver
./kube-apiserver --insecure-bind-address=0.0.0.0 --insecure-port=8080 --service-cluster-ip-range='10.254.0.0/16' --log_dir=/var/log/kube --kubelet_port=10250 --v=0 --logtostderr=false --etcd_servers=http://127.0.0.1:4001 --allow_privileged=false &
运行kube-controller-manager
./kube-controller-manager --address=0.0.0.0 --cloud-provider="" --master=127.0.0.1:8080 &
运行kube-scheduler
./kube-scheduler --master='127.0.0.1:8080' --v=0 --log_dir=/var/log/kube
4. 运行Kubernetes组件(slave端)
运行kube-proxy:
./kube-proxy --logtostderr=false --v=0 --master=http://192.168.1.103:8080
运行./kubelet:
./kubelet --api-servers=192.168.1.103:8080 --node-ip=192.168.1.103 --hostname_override=192.168.1.106 > kubelet.l
5. 集群验证
查看kubernetes版本信息
在master上查看节点信息
查看service和endpoint: