继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

Kubernetes平台安装教程

MadPecker
关注TA
已关注
手记 15
粉丝 8
获赞 46

1 概述

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

在Kubernetes中,我们可以创建多个容器,每个容器里面运行一个应用实例,然后通过内置的负载均衡策略,实现对这一组应用实例的管理、发现、访问,而这些细节都不需要运维人员去进行复杂的手工配置和处理。

1.1 环境准备

Kubernetes安装在Ubuntu、CentOS这两个环境上较为稳定,本次安装将以Ubuntu环境为例(CentOS环境也类似),准备两台Ubuntu虚拟机或云服务器,版本为16.04即可。

2 安装Docker&Kubernetes

2.1 安装Docker

2.1.1 添加Docker官方源

1)更新包索引:apt-getupdate

2)下载docker官方源的公钥并添加到apt的公钥库中:curl-fsSLhttps://download.docker.com/linux/ubuntu/gpg| apt-key add -
图片描述
3)添加docker官方源的仓库:add-apt-repository"deb [arch=amd64]https://download.docker.com/linux/ubuntu$(lsb_release -cs) stable"
图片描述
4)执行完以上命令之后,在/etc/apt/sources.list文件中将添加如下内容
图片描述
5)再次更新包索引:apt-getupdate

2.1.2 安装Docker

这里以安装docker-ce-17.03.2版本为例:

1)执行:apt-get install docker-ce=17.03.2ce-0ubuntu-xenial,安装Docker;

2)验证Docker安装结果:dockerversion

3)查看docker后台服务运行的情况:systemctlstatus 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 -shttps://packages.cloud.google.com/apt/doc/apt-key.gpg| apt-key add -

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

/etc/apt/sources.list.d/kubernetes.list,在该文件中加入如下内容:
图片描述
3)更新本地包缓存:apt-getupdate

2.2.3 添加Kubernetes的apt源(国内源)

1)apt-getupdate && apt-get install -y apt-transport-https

2)curlhttps://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg| apt-key add -

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

4)更新本地包缓存:apt-getupdate

2.2.4 安装kubeadm、kubelet、kubectl工具

1)apt-getinstall -y kubelet kubeadm kubectl

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

3)查看安装情况:

查看版本:kubeadmversion

查看版本:kubectlversion

查看运行状态: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上查找)将以上核心组件下载到本地,例如:dockerpull 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访问控制平面,设置环境变量:exportKUBECONFIG=/etc/kubernetes/admin.conf

3)查看安装情况:kubectlget pods -n kube-system
图片描述
以上除了dns,其他的组件都是running状态,dns要等到安装了网络插件之后才正常。

2.2.7 安装网络插件

Kubernetes的网络插件很多,这里以安装Weave为例:

1)安装WeaveNet kubectlapply -fhttps://cloud.weave.works/k8s/net?k8s-version=$(kubectl

version | base64 | tr -d ‘\n’)

2)创建weave.yaml文件,如下:
图片描述
3)执行命令进行安装:Kubectlapply -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 --tokenab7j9d.rxopqtvyv7qf6488 --discovery-token-ca-cert-hash sha256:c0d784704724ea4be3b7bb31a61404aa05a591b596405699e7c36fe3a500bec9

自此,Kubernetes集群已经安装完成。

2.3 安装Dashboard

2.3.1 下载dashboard镜像文件

1)dockerpull gcrxio/kubernetes-dashboard-amd64:v1.10.1

2)dockertag gcrxio/kubernetes-dashboard-amd64:v1.10.1 k8s.gcr.io/kubernetes-dashboard-amd64:v1.10.1

2.3.2 安装dashboard

1)下载dashboard配置文件,执行如下命令:curl-Lhttps://raw.githubusercontent.com/kubernetes/dashboard/v1.10.1/src/deploy/recommended/kubernetes-dashboard.yaml> kubernetes-dashboard.yaml

2)修改dashboard配置文件kubernetes-dashboard.yaml,并在此文件中的Service部分下添加type:NodePort和nodePort:31233,这里的31233端口可以根据实际情况进行设置,如下图:
图片描述
3)创建Pod,执行命令:kubectlcreate -f {path}/kubernetes-dashboard.yaml

2.3.3 访问dashboard

下载dashboard配置文件,执行如下命令:curl-L

1)访问地址:https://47.97.249.8:31233
图片描述

3 写在最后

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

打开App,阅读手记
1人推荐
发表评论
随时随地看视频慕课网APP