使用脚本部署kubernetes集群
2016-10-13 22:39
603 查看
docker部署
系统需求
// ubuntu 14.04 docker版本1.10.1 // 卸载已有环境 apt-get purge docker-engine
安装docker
sudo apt-get update sudo apt-get install apt-transport-https ca-certificates sudo apt-key adv --keyserver hkp://p80.pool.sks- keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D // 打开 /etc/apt/sources.list.d/docker.list 若无,则创建 // 写入:deb https://apt.dockerproject.org/repo ubuntu-trusty main sudo apt-get update sudo apt-get purge lxc-docker apt-cache policy docker-engine sudo apt-get update sudo apt-get install linux-image-extra-$(uname -r) sudo apt-get update sudo apt-get install docker-engine=1.10.1-0~trusty sudo service docker start // install docker-engine 速度慢可用使用deb安装 // 镜像地址 http://mirrors.aliyun.com/docker-engine/apt/repo/pool/main/d/docker-engine/docker-engine_1.10.1-0~trusty_amd64.deb // sudo dpkg -i docker-engine_1.10.1-0~trusty_amd64.deb
参考地址
https://docs.docker.com/engine/installation/linux/ubuntulinux/kubernetes部署
系统需求
docker version 1.2 以上以及 bridge-utils(默认ubuntu都有)所有节点机器网络互通
ubuntu 14.04
多节点需要进行配置ssh连接不需要密码[1]
准备工作
github下载二进制包 kubernetes.tar.gz 并解压 (本实验选择1.3.5版本)其中 kubernetes/platforms/linux/amd64/kubectl 是与 apiserver 交互的 client 程序
解压 kubernetes/server/kubernetes-server-linux-amd64.tar.gz
在解压到的 kubernetes 文件夹中找到 kubernetes-src.tar.gz 文件
解压 kubernetes-src.tar.gz 得到源码
以下类似 kubernetes/cluster/… 路径中的 kubernetes 文件夹均指kubernetes-src.tar.gz 解压出的文件夹
部署步骤
根据部署环境 修改kubernetes/cluster/ubuntu/config-default.sh 里的配置[2]运行修改好的config-default.sh
./config-default.sh
设置版本环境变量
export KUBE_VERSION=1.3.5 // kubernetes的版本 export FLANNEL_VERSION=0.5.5 // flannel的版本 export ETCD_VERSION=2.2.1 // etcd的版本
为了安装进度,将 etcd.tar.gz flannel.tar.gz kubernetes.tar.gz(提前下载好,改好名字) 拷贝到kubernetes/cluster/ubuntu下,并且修改该目录的download-release.sh,注释掉以下语句
# curl https://github.com/coreos/flannel/releases/download/v${FLANNEL_VERSION}/flannel-${FLANNEL_VERSION}-linux-amd64.tar.gz -o flannel.tar.gz # curl -L https://github.com/coreos/etcd/releases/download/v${ETCD_VERSION}/${ETCD}.tar.gz -o etcd.tar.gz # curl -L https://github.com/kubernetes/kubernetes/releases/download/v${KUBE_VERSION}/kubernetes.tar.gz -o kubernetes.tar.gz
启动安装脚本
// 在 kubernetes/cluster/ 目录下运行 KUBERNETES_PROVIDER=ubuntu ./kube-up.sh
DNS配置
// 在 kubernetes/cluster/ubuntu 目录下运行 KUBERNETES_PROVIDER=ubuntu ./deployAddons.sh
参考地址
http://kubernetes.io/docs/getting-started-guides/ubuntu/重启kubernetes
首先到kubernetes/cluster/,命运行KUBERNETES_PROVIDER=ubuntu ./kube-down.sh
ssh到其他节点
cd /opt/bin rm -rf * service flanneld stop service kube stop service kubelet stop service kube-proxy stop cd /etc/default/ rm flanneld rm kubelet rm kube-proxy exit // 退出
进入 /kubernetes/cluster/ 运行
KUBERNETES_PROVIDER=ubuntu ./kube-up.sh
附录
[1] 配置ssh无密码登录
实验中 TargetUser 用户为 root 用户ssh-keygen -t dsa ssh-add ~/.ssh/id_dsa scp /root/.ssh/id-dsa.pub <TargetUser>@<TargetIP>:~ ssh <TargetUser>@<TargetIP> cat id_dsa.pub >> ~/.ssh/authorized_keys chmod +x ~/.ssh/authorized_keys
[2] 配置k8s的export详解
// 代表所要部署的节点,使用ssh连接的用户名@节点地址 export nodes=${nodes:-"root@10.10.103.121 root@10.10.103.120"} // 代表各节点的属性,‘ai’表示既是主机也是节点,‘a’表示是主机,‘i'表示时节点 roles=${roles:-"ai i"} export roles_array=($roles) // 代表节点个数 export NUM_NODES=${NUM_NODES:-2} // 代表kubernetes服务IP范围,可根据RFC1918使用以下三个私有网络范围进行定义,不要与自己专用的私有网络冲突 export SERVICE_CLUSTER_IP_RANGE=${SERVICE_CLUSTER_IP_RANGE:-192.168.3.0/24}
三个私有网络范围:
10.0.0.0 - 10.255.255.255 (10/8 prefix)
172.16.0.0 - 172.31.255.255 (172.16/12 prefix)
192.168.0.0 - 192.168.255.255 (192.168/16 prefix)
gcr.io host IP
kubernetes默认会去gcr.io/google_containers/pause下载镜像,pod创建停留在ContainerCreating阶段,修改hosts文件解决(每个k8s Node都需要修改)64.233.162.82 gcr.io 64.233.162.82 https://gcr.io/
相关文章推荐
- Launching Applications with spark-submit【使用脚本提交作业到集群5种部署模式--】
- 使用acs-engine在Azure中国区部署kubernetes集群详解
- 使用Kubeadm在CentOS7.2上部署Kubernetes集群
- Kubernetes(二) - 使用Rancher部署K8S集群(搭建Rancher)
- 如何使用Rancher 2.0在Kubernetes集群上部署Istio
- [笔记] CentOS 7 部署 Kubernetes 集群自动化脚本部分
- 使用Rancher的RKE快速部署Kubernetes集群
- 使用Kubeadm部署 Kubernetes 集群
- Shell脚本快速部署Kubernetes集群系统
- 走心的狗 使用acs-engine在Azure中国区部署kubernetes集群详解
- 使用kubespray部署高可用kubernetes集群
- 使用Rancher的RKE快速部署Kubernetes集群
- Kubernetes(三) - 使用Rancher部署K8S集群(搭建Kubernetes)
- 在Kubernetes集群中使用Redis部署PHP留言簿应用程序
- 干货|使用kubeadm部署kubernetes集群
- 使用kuberspay部署高可用kubernetes集群
- 使用kubeadm部署kubernetes集群
- 使用Kubeadm在CentOS7.2上部署Kubernetes集群的方法
- 使用shell脚本实现自动化部署hadoop集群
- 使用Kickstat安装脚本全自动部署Centos