Ubuntu14.04安装kubernetes1.2.0

本文介绍了如何在Ubuntu14.04上安装Kubernetes1.2.0,步骤包括设置节点间免密登录、安装Docker、部署网桥工具以及使用脚本下载和配置Kubernetes。最后,文章提到安装Kubernetes的基础部分完成后,还需要安装DNS和Dashboard等服务。
摘要由CSDN通过智能技术生成

准备3台虚机。规划master和node节点,在master设置免密登录,我们这的安装是通过kube-up脚本安装的。针对Kubernetes1.2
一:免密登录
以root用户登录 ssh-keygen -t rsa 生成密钥文件,一切按默认的方式生成,密钥文件生成后默认存放位置为/root/.ssh。

查看生成文件,通过命令ls -al .ssh 下面的这两个即为生成的密钥对.
进入.ssh目录将id_rsa.pub加到授权的key里面去,命令如下:

ubuntu@test-k8-master:~$ cat id_rsa.pub >> authorized_keys                                         

修改authorized_keys的权限,(这一步很重要不然的话,SSH时仍然需要密码)
chmod 600 authorized_keys
查看本机是否可以SSH无需密码登录: ssh localhost
OK , 以上证明本机登录成功。
接下来要做的就是将Master的公钥id_rsa.pub复制到Salve上去,并加入到授权的key中。 命令如下:


root@master:~$  scp ~/.ssh/id_rsa.pub root@node1:~/

由于首次登录还没有添加认证,这次仍然会提示输入密码.将公钥拷贝成功后,再登录不输入用户名密码即可。
二:安装Docker

添加gpg key

$ apt-key adv --keyserver hkp://pgp.mit.edu:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D

添加源 vi /etc/apt/sources.list.d/docker.list
添加一下内容:

# Ubuntu Precise deb https://apt.dockerproject.org/repo ubuntu-precise main# Ubuntu Trusty deb https://apt.dockerproject.org/repo ubuntu-trusty main# Ubuntu Vivid deb https://apt.dockerproject.org/repo ubuntu-vivid main# Ubuntu Wily deb https://apt.dockerproject.org/repo ubuntu-wily main

执行安装命令
更新软件包

$ sudo apt-get update

安装Docker.

$ sudo apt-get install docker-engine
具体参考https://docs.docker.com/installation/ubuntulinux/#ubuntu

在每一个node节点安装docker,如master也部署成node.master也需要安装Docker
三:安装网桥工具

在每一个master,node节点安装网桥工具

root@master:~$  apt-get install bridge-utils

**三:部署kubernetes
**

下载kubernetes1.2的安装源码。
在此网址:https://github.com/kubernetes/kubernetes,找到1.2.0的release下载下来.
将工作源码下载到本地/root/下。
我们可以根据工作目录kubernetes/cluster/ubuntu/download-release.sh下的网址将安装包下载下来。包括k8s的安装包(kubernetes.tar.gz)、etcd和flannel等

由于之前我们已经下载完release包了,这里我们就需要对down-release.sh做一些修改,防止重新下载,导致安装时间过长。进入刚才的kubernates目录,编辑cluster/ubuntu/下的download-release.sh,将其从网上下载依赖包的地址注释,将依赖包的版本与其对应。修改内容如下:

# flannel
FLANNEL_VERSION=${FLANNEL_VERSION:-"0.5.5"}
echo "Prepare flannel ${FLANNEL_VERSION} release ..."
grep -q "^${FLANNEL_VERSION}\$" binaries/.flannel 2>/dev/null || {
  #curl -L  https://github.com/coreos/flannel/releases/download/v${FLANNEL_VERSION}/flannel-${FLANNEL_VERSION}-linux-amd64.tar.gz -o flannel.tar.gz
  tar xzf flannel-0.5.5-linux-amd64.tar.gz
  cp flannel-${FLANNEL_VERSION}/flanneld binaries/master
  cp flannel-${FLANNEL_VERSION}/flanneld binaries/minion
  echo ${FLANNEL_VERSION} > binaries/.flannel
}

# ectd
ETCD_VERSION=${ETCD_VERSION:-"2.2.1"}
ETCD="etcd-v${ETCD_VERSION}-linux-amd64"
echo "Prepare etcd ${ETCD_VERSION} release ..."
grep -q "^${ETCD_VERSION}\$" binaries/.etcd 2>/dev/null || {
  #curl -L https://github.com/coreos/etcd/releases/download/v${ETCD_VERSION}/${ETCD}.tar.gz -o etcd.tar.gz
  tar xzf etcd-v2.2.1-linux-amd64.tar.gz
  cp ${ETCD}/etcd ${ETCD}/etcdctl binaries/master
  echo ${ETCD_VERSION} > binaries/.etcd
}

# k8s
KUBE_VERSION=${KUBE_VERSION:-"1.2.0"}
echo "Prepare kubernetes ${KUBE_VERSION} release ..."
grep -q "^${KUBE_VERSION}\$" binaries/.kubernetes 2>/dev/null || {
  #curl -L https://github.com/kubernetes/kubernetes/releases/download/v${KUBE_VERSION}/kubernetes.tar.gz -o kubernetes.tar.gz
  tar xzf kubernetes_1.2.0.tar.gz
  pushd kubernetes/server
  tar xzf kubernetes-server-linux-amd64.tar.gz
  popd
  cp kubernetes/server/kubernetes/server/bin/kube-apiserver \
     kubernetes/server/kubernetes/server/bin/kube-controller-manager \
     kubernetes/server/kubernetes/server/bin/kube-scheduler binaries/master
  cp kubernetes/server/kubernetes/server/bin/kubelet \
     kubernetes/server/kubernetes/server/bin/kube-proxy binaries/minion
  cp kubernetes/server/kubernetes/server/bin/kubectl binaries/
  echo ${KUBE_VERSION} > binaries/.kubernetes
}

执行download-release.sh脚本,移动解压tar.gz并创建新的binaries目录

root@master:/root/kubernetes/cluster/ubuntu# ./download-release.sh

执行完成后,把需要部署的二进制文件集中到了cluster/ubuntu/binaries内.

我们进入cluster/ubuntu目录进行节点的部署。

修改配置文件,命令如下:

root@ku8master:/data/kubernetes/cluster/ubuntu# vi config-default.sh

主要配置以下参数。

节点准备配置,脚本内容如下

export nodes=${nodes:-"root@192.168.2.63 root@192.168.2.49 root@192.168.2.50 root@192.168.2.62"}
#节点的用户名@IP

# Define all your nodes role: a(master) or i(minion) or ai(both master and minion),
# Roles must be the same order with the nodes.
roles=${roles:-"ai i i i"}
#节点的角色a:master i:node  ai:master and node注意nodes和roles位置是一一对应的
# If it practically impossible to set an array as an environment variable
# from a script, so assume variable is a string then convert it to an array
export roles_array=($roles)

# Define minion numbers
export NUM_NODES=${NUM_NODES:-4}
#node节点的数量
# define the IP range used for service cluster IPs.
# according to rfc 1918 ref: https://tools.ietf.org/html/rfc1918 choose a private ip range here.
#export SERVICE_CLUSTER_IP_RANGE=${SERVICE_CLUSTER_IP_RANGE:-192.168.3.0/24}  # formerly PORTAL_NET

export SERVICE_CLUSTER_IP_RANGE=${SERVICE_CLUSTER_IP_RANGE:-10.238.0.0/16}
#node serviceClusterIP的范围。

# Admission Controllers to invoke prior to persisting objects in cluster
#export ADMISSION_CONTROL=NamespaceLifecycle,LimitRanger,ServiceAccount,ResourceQuota,SecurityContextDeny
export ADMISSION_CONTROL=NamespaceLifecycle,LimitRanger,ServiceAccount,ResourceQuota
#由于我们调用API接口遇到权限问题,需要将SecurityContextDeny参数去掉

执行安装

在kubernetes/cluster目录执行脚本,如下所示:

root@ku8master:/data/kubernetes/cluster/ubuntu# KUBERNETES_PROVIDER=ubuntu ./kube-up.sh

上面的脚本会根据config-defualt的节点配置把cluster/ubuntu/binaries里面的文件拷贝到nodes配置的节点上,并且安装Kubernetes。
至此Kubernetes基础安装完成。
还需要安装Kubernetes的Dns,Dashboard等服务。详情见下一篇文章。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值