使用脚本部署kubernetes集群

来源:互联网 发布:c语言长整型数 编辑:程序博客网 时间:2024/05/18 01:47

docker部署

系统需求

// ubuntu 14.04  docker版本1.10.1 // 卸载已有环境apt-get purge docker-engine

安装docker

sudo apt-get updatesudo apt-get install apt-transport-https ca-certificatessudo 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 mainsudo apt-get updatesudo apt-get purge lxc-dockerapt-cache policy docker-enginesudo apt-get updatesudo apt-get install linux-image-extra-$(uname -r)sudo apt-get updatesudo apt-get install docker-engine=1.10.1-0~trustysudo 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部署

系统需求

  1. docker version 1.2 以上以及 bridge-utils(默认ubuntu都有)
  2. 所有节点机器网络互通
  3. ubuntu 14.04
  4. 多节点需要进行配置ssh连接不需要密码[1]

准备工作

  1. github下载二进制包 kubernetes.tar.gz 并解压 (本实验选择1.3.5版本)
  2. 其中 kubernetes/platforms/linux/amd64/kubectl 是与 apiserver 交互的 client 程序
  3. 解压 kubernetes/server/kubernetes-server-linux-amd64.tar.gz
  4. 在解压到的 kubernetes 文件夹中找到 kubernetes-src.tar.gz 文件
  5. 解压 kubernetes-src.tar.gz 得到源码
  6. 以下类似 kubernetes/cluster/… 路径中的 kubernetes 文件夹均指kubernetes-src.tar.gz 解压出的文件夹

部署步骤

  1. 根据部署环境 修改kubernetes/cluster/ubuntu/config-default.sh 里的配置[2]
  2. 运行修改好的config-default.sh

    ./config-default.sh
  3. 设置版本环境变量

    export KUBE_VERSION=1.3.5     // kubernetes的版本export FLANNEL_VERSION=0.5.5  // flannel的版本export ETCD_VERSION=2.2.1     // etcd的版本
  4. 为了安装进度,将 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
  5. 启动安装脚本

    // 在 kubernetes/cluster/ 目录下运行KUBERNETES_PROVIDER=ubuntu ./kube-up.sh
  6. DNS配置

    // 在 kubernetes/cluster/ubuntu 目录下运行KUBERNETES_PROVIDER=ubuntu ./deployAddons.sh

参考地址

http://kubernetes.io/docs/getting-started-guides/ubuntu/

重启kubernetes

  1. 首先到kubernetes/cluster/,命运行

    KUBERNETES_PROVIDER=ubuntu ./kube-down.sh
  2. ssh到其他节点

    cd  /opt/binrm  -rf  *service flanneld stopservice kube stopservice kubelet stopservice kube-proxy stopcd /etc/default/rm flanneldrm kubeletrm kube-proxyexit // 退出
  3. 进入 /kubernetes/cluster/ 运行

    KUBERNETES_PROVIDER=ubuntu ./kube-up.sh 

附录

[1] 配置ssh无密码登录

实验中 TargetUser 用户为 root 用户

ssh-keygen -t dsassh-add   ~/.ssh/id_dsa scp /root/.ssh/id-dsa.pub <TargetUser>@<TargetIP>:~ssh <TargetUser>@<TargetIP>cat id_dsa.pub >> ~/.ssh/authorized_keyschmod +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.io64.233.162.82   https://gcr.io/
0 0
原创粉丝点击