乐趣区

Kubernetes平台的安装详解

1. 概述

Kubernetes 是 Google 开源的一个容器编排引擎,它支持自动化部署、大规模可伸缩、应用容器化管理。在生产环境中部署一个应用程序时,通常要部署该应用的多个实例以便对应用请求进行负载均衡。

在 Kubernetes 中,我们可以创建多个容器,每个容器里面运行一个应用实例,然后通过内置的负载均衡策略,实现对这一组应用实例的管理、发现、访问,而这些细节都不需要运维人员去进行复杂的手工配置和处理,本文章将介绍 Kubernetes 平台的安装过程。
1.1. 环境准备
Kubernetes 安装在 Ubuntu、CentOS 这两个环境上较为稳定,本次安装将以 Ubuntu 环境为例(CentOS 环境也类似),准备两台 Ubuntu 虚拟机或云服务器,版本为 16.04 即可。

2. 安装 Docker&Kubernetes
2.1. 安装 Docker
2.1.1 添加 Docker 官方源
1)更新包索引:

apt-get update

2)下载 docker 官方源的公钥并添加到 apt 的公钥库中:

curl-fsSL https://download.docker.com/l… | apt-key add –

3)添加 docker 官方源的仓库:

add-apt-repository “deb [arch=amd64] https://download.docker.com/l… $(lsb_release -cs) stable”

4)执行完以上命令之后,在 /etc/apt/sources.list 文件中将添加如下内容

5)再次更新包索引:

apt-get update

2.1.1 安装 Docker
这里以安装 docker-ce-17.03.2 版本为例:
1)执行:

apt-get install docker-ce=17.03.2~ce-0~ubuntu-xenial,安装 Docker;

2)验证 Docker 安装结果:

dockerversion

3)查看 docker 后台服务运行的情况:

systemctl status docker

至此,Docker 安装完成。
2.2. 安装 Kubernetes
2.2.1 Kubernetes 相关组件介绍
需要下载 kubeadm、kubelet、kubectl 等组件
1)kubeadm:作为安装工具来引导启动集群,kubeadm 将 kubernetes 核心组件以容器化的方式安装和引导启动运行;

2)kubelet:Node 组件中的

kubelet 依旧以主机后端服务的形式运行 kubernetes 集群的所有节点上,是主节点与从节点交互的关键组件;
3)kubectl:是安装集群后的命令行工具,至少安装在 master 上,对集群进行管理。

2.2.2 添加 Kubernetes 的 apt 源(google 官方源)
以下将直接添加 google 的官方源(如果你的服务器不能访问 google 官方源,请参考 2.2.3)
1)添加 kubernetes apt 源的公钥文件:

curl-s https://packages.cloud.google… | apt-key add –

2)将官方源列表加入到本地源列表配置目录中:

vi /etc/apt/sources.list.d/kubernetes.list,在该文件中加入如下内容:

3)更新本地包缓存:apt-get update

2.2.3 添加 Kubernetes 的 apt 源(国内源)
1)apt-get update && apt-get install -y apt-transport-https

2)curl https://mirrors.aliyun.com/ku… | apt-key add –

3)vi /etc/apt/sources.list.d/kubernetes.list,在该文件中加入:deb https://mirrors.aliyun.com/ku… kubernetes-xenial main

4)更新本地包缓存:

apt-get update

2.2.4 安装 kubeadm、kubelet、kubectl 工具
1)apt-get install -y kubelet kubeadm kubectl

2)apt-get install kubeadm=1.10.2-00 kubectl=1.10.2-00 kubelet=1.10.2-00(安装指定版本)

3)查看安装情况:
查看版本:kubeadm version
查看版本:kubectl version
查看运行状态:systemctl status kubelet,此时看到的状态,不是 running 的状态,是激活状态,处于定期的重启状态,这是由于 kubelet 所需要的配置还没有提供,只有在 master 节点执行 kubeadm init 或者在 work node 节点执行 kubeadm join 的时候,kubelet 所需要的配置才能被满足,kubelet 才会正常运行起来。
2.2.5 下载核心组件镜像
默认情况下 kubeadm 在安装引导集群时,会自动从网络上下载 kubernetes 的核心组件,比如:apiserver,scheduler,controller manager,kubeproxy 等,但是默认是从 k8s.gcr.io(google
容器镜像平台)上下载,国内无法连接。Master 节点需要现在如下核心组件:

1)先从国内源(可以从 dockerhub 上查找)将以上核心组件下载到本地,例如:docker pull gcrxio/kube-apiserver-amd64:v1.14.1

2)重新打标签,例如:docker tag gcrxio/kube-apiserver-amd64:v1.14.1 k8s.gcr.io/kube-apiserver-amd64:v1.14.1

3)在 Worker 节点只需要下载 pause 和 kube-proxy 镜像即可。

2.2.6 初始化 Master 节点
1)执行 kubeadm init 命令初始化:kubeadm init –apiserver-advertise-address=172.16.154.177 –pod-network-cidr=192.168.16.0/20,

如下图:

2)设置 kubectl 访问控制平面,设置环境变量:export

KUBECONFIG=/etc/kubernetes/admin.conf

3)查看安装情况:kubectl get pods -n kube-system

以上除了 dns,其他的组件都是 running 状态,dns 要等到安装了网络插件之后才正常。
2.2.7 安装网络插件
Kubernetes 的网络插件很多,这里以安装 Weave 为例:

1)安装 Weave Net

kubectl apply -f https://cloud.weave.works/k8s…$(kubectl version | base64 | tr -d ‘n’)

2)创建 weave.yaml 文件,如下:

3)执行命令进行安装:Kubectl apply -f weave.yaml

4)验证安装结果:kubectl get pods -n kube-system

2.2.8 安装 worker 节点
1)按照前面的步骤,在 worker 节点上(比如是 k8s2)安装 docker 环境

2)按照前面的步骤,在 k8s2 节点上安装 kubeadm、kubelet

3)按照前面的步骤,在 k8s2 节点上下载 pause 和 kube-proxy 镜像

2.2.9 将 worker 节点加入集群
1)在 k8s2 节点上执行 kubeadm join 命令:kubeadm join

172.16.154.178:6443 –token ab7j9d.rxopqtvyv7qf6488 –discovery-token-ca-cert-hash

sha256:c0d784704724ea4be3b7bb31a61404aa05a591b596405699e7c36fe3a500bec9

自此,Kubernetes 集群已经安装完成。
2.3. 安装 Dashboard
2.3.1 下载 dashboard 镜像文件
1)docker pull gcrxio/kubernetes-dashboard-amd64:v1.10.1

2)docker tag gcrxio/kubernetes-dashboard-amd64:v1.10.1

k8s.gcr.io/kubernetes-dashboard-amd64:v1.10.1

2.3.2 安装 dashboard
1)下载 dashboard 配置文件,执行如下命令:

curl-L https://raw.githubusercontent… > kubernetes-dashboard.yaml
2)修改 dashboard 配置文件 kubernetes-dashboard.yaml,并在此文件中的 Service 部分下添加

type: NodePort 和 nodePort: 31233,这里的 31233 端口可以根据实际情况进行设置,如下图:

3)创建 Pod,执行命令:

kubectl create -f {path}/kubernetes-dashboard.yaml

2.3.3 访问 dashboard
下载 dashboard 配置文件,执行如下命令:curl-L
1)访问地址:https://47.97.249.8:31233

本人创业团队产品 MadPecker,主要做 BUG 管理、测试管理、应用分发,网址:www.madpecker.com,有需要的朋友欢迎试用、体验!

本文为 MadPecker 团队技术人员编写,转载请标明出处

退出移动版