使用脚本部署kubernetes集群
docker部署系统需求// ubuntu 14.04docker版本1.10.1// 卸载已有环境apt-get purge docker-engine安装dockersudo apt-get updatesudo apt-get install apt-transport-https ca-certificatessudo apt-key adv --keyserver hkp:
·
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/
更多推荐
已为社区贡献1条内容
所有评论(0)