热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

使用脚本部署kubernetes集群

docker部署系统需求ubuntu14.04docker版本1.10.1卸载已有环境apt-getpurgedocker-engine安装dockersudo

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部署

系统需求

  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/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 // 退出
  3. 进入 /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 @:~
ssh @
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/

推荐阅读
  • ZSI.generate.Wsdl2PythonError: unsupported local simpleType restriction ... [详细]
  • 基于PgpoolII的PostgreSQL集群安装与配置教程
    本文介绍了基于PgpoolII的PostgreSQL集群的安装与配置教程。Pgpool-II是一个位于PostgreSQL服务器和PostgreSQL数据库客户端之间的中间件,提供了连接池、复制、负载均衡、缓存、看门狗、限制链接等功能,可以用于搭建高可用的PostgreSQL集群。文章详细介绍了通过yum安装Pgpool-II的步骤,并提供了相关的官方参考地址。 ... [详细]
  • 目录实现效果:实现环境实现方法一:基本思路主要代码JavaScript代码总结方法二主要代码总结方法三基本思路主要代码JavaScriptHTML总结实 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 本文主要解析了Open judge C16H问题中涉及到的Magical Balls的快速幂和逆元算法,并给出了问题的解析和解决方法。详细介绍了问题的背景和规则,并给出了相应的算法解析和实现步骤。通过本文的解析,读者可以更好地理解和解决Open judge C16H问题中的Magical Balls部分。 ... [详细]
  • Spring特性实现接口多类的动态调用详解
    本文详细介绍了如何使用Spring特性实现接口多类的动态调用。通过对Spring IoC容器的基础类BeanFactory和ApplicationContext的介绍,以及getBeansOfType方法的应用,解决了在实际工作中遇到的接口及多个实现类的问题。同时,文章还提到了SPI使用的不便之处,并介绍了借助ApplicationContext实现需求的方法。阅读本文,你将了解到Spring特性的实现原理和实际应用方式。 ... [详细]
  • FeatureRequestIsyourfeaturerequestrelatedtoaproblem?Please ... [详细]
  • 本文介绍了如何使用C#制作Java+Mysql+Tomcat环境安装程序,实现一键式安装。通过将JDK、Mysql、Tomcat三者制作成一个安装包,解决了客户在安装软件时的复杂配置和繁琐问题,便于管理软件版本和系统集成。具体步骤包括配置JDK环境变量和安装Mysql服务,其中使用了MySQL Server 5.5社区版和my.ini文件。安装方法为通过命令行将目录转到mysql的bin目录下,执行mysqld --install MySQL5命令。 ... [详细]
  • Spring学习(4):Spring管理对象之间的关联关系
    本文是关于Spring学习的第四篇文章,讲述了Spring框架中管理对象之间的关联关系。文章介绍了MessageService类和MessagePrinter类的实现,并解释了它们之间的关联关系。通过学习本文,读者可以了解Spring框架中对象之间的关联关系的概念和实现方式。 ... [详细]
  • CEPH LIO iSCSI Gateway及其使用参考文档
    本文介绍了CEPH LIO iSCSI Gateway以及使用该网关的参考文档,包括Ceph Block Device、CEPH ISCSI GATEWAY、USING AN ISCSI GATEWAY等。同时提供了多个参考链接,详细介绍了CEPH LIO iSCSI Gateway的配置和使用方法。 ... [详细]
  • 如何自行分析定位SAP BSP错误
    The“BSPtag”Imentionedintheblogtitlemeansforexamplethetagchtmlb:configCelleratorbelowwhichi ... [详细]
  • 本文介绍了在Linux下安装Perl的步骤,并提供了一个简单的Perl程序示例。同时,还展示了运行该程序的结果。 ... [详细]
  • 成功安装Sabayon Linux在thinkpad X60上的经验分享
    本文分享了作者在国庆期间在thinkpad X60上成功安装Sabayon Linux的经验。通过修改CHOST和执行emerge命令,作者顺利完成了安装过程。Sabayon Linux是一个基于Gentoo Linux的发行版,可以将电脑快速转变为一个功能强大的系统。除了作为一个live DVD使用外,Sabayon Linux还可以被安装在硬盘上,方便用户使用。 ... [详细]
  • phpcomposer 那个中文镜像是不是凉了 ... [详细]
  • 树莓派语音控制的配置方法和步骤
    本文介绍了在树莓派上实现语音控制的配置方法和步骤。首先感谢博主Eoman的帮助,文章参考了他的内容。树莓派的配置需要通过sudo raspi-config进行,然后使用Eoman的控制方法,即安装wiringPi库并编写控制引脚的脚本。具体的安装步骤和脚本编写方法在文章中详细介绍。 ... [详细]
author-avatar
再见要死不活的_454
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有