本文介绍了如何通过Kubespray来进行部署高可用k8集群,k8版本为1.12.5。
<强> 1部署手册强>
代码仓库:https://github.com/kubernetes-sigs/kubespray
参考文档:https://kubespray.io//
<强> 2,k8主机器配置强>
<强> 3,k8集群安装步骤强>
<强>步骤1:设置主机间的免密登录强>
由于Kubespray是依赖于ansible, ansible通过ssh协议进行主机之间的访问,所以部署之前需要设置主机之间免密登录,步骤如下:
- t rsa scp ~/. ssh/id_rsa。酒吧root@IP:/root/. ssh ssh root@IP 猫/root/.ssh/id_rsa.酒吧在祝辞/root/.ssh/authorized_keys
<强>步骤2:下载kubespray 强>
注意:不要通过使用github仓库大师分支的代码,我这里使用的是标签v2.8.3进行部署
wget https://github.com/kubernetes-sigs/kubespray/archive/v2.8.3.tar.gz 焦油-xvf v2.8.3cd kubespray-v2.8.3
<强> 3.1更换镜像强>
Kubernetes安装大部分都是使用的国外的镜像,由于防火墙原因没有办法获取到这些镜像,所以需要自己创建镜像仓库并将这些镜像获取到上传到镜像仓库中。
<强> 3.1.1新建镜像仓库强>
镜像仓库我们选用的组件是港口,安装步骤参考:https://github.com/goharbor/harbor/blob/master/docs/installation_guide.md
<强> 3.1.2整理k8集群部署中需要使用的镜像强>
在文件角色/下载/违约/main.yml文件中,可以看到使用的全量镜像列表,注意某些镜像由于功能未使用的原因所以暂时没有用的到,我们主要用到有如下镜像:
<强> 3.1.3下载所需镜像并上传至私有镜像仓库强>
使用的镜像列表如下,在这里我申请了一台国外的阿里云主机,在该台主机下载所需镜像然后上传至私有镜像仓库
例如操作某个镜像时,需要执行如下命令:
码头工人拉gcr.io/google_containers/kubernetes-dashboard-amd64: v1.10.0 码头工人标签gcr.io/google_containers/kubernetes-dashboard-amd64: v1.10.0 106.14.219.69:5000/google_containers/kubernetes-dashboard-amd64: v1.10.0 码头工人推106.14.219.69:5000/google_containers/kubernetes-dashboard-amd64: v1.10.0
<强> 3.1.4更改镜像地址并修改码头工人配置强>
在库存/testcluster group_vars/k8s-cluster/k8s-cluster。yml文件中添加如下配置:
# kubernetes回购定义图像 kube_image_repo:“10.0.0.183:5000/google_containers” # #修改:罗宾 #评论:将使?的组件的镜像仓库修改为私有镜像仓库地址 etcd_image_repo:“10.0.0.183:5000/coreos/etcd” coredns_image_repo:“10.0.0.183:5000/coredns” calicoctl_image_repo:“10.0.0.183:5000/印花/ctl” calico_node_image_repo:“10.0.0.183:5000/印花/节点” calico_cni_image_repo:“10.0.0.183:5000/印花/有限公司” calico_policy_image_repo:“10.0.0.183:5000/印花/kube-controllers” hyperkube_image_repo:“{{kube_image_repo}}/hyperkube - {{image_arch}}” pod_infra_image_repo:“{{kube_image_repo}}/暂停- {{image_arch}}” dnsautoscaler_image_repo:“{{kube_image_repo}}/cluster-proportional-autoscaler - {{image_arch}}” dashboard_image_repo:“{{kube_image_repo}}/kubernetes-dashboard - {{image_arch}}”
由于我们的私有镜像仓库未配置https证书,需要在库存/testcluster/group_vars//码头工人。yml文件中添加如下配置:
docker_insecure_registries: ——10.0.0.183:5000
<强> 3.2码头工人安装源更改以及执行文件预处理强>
<强> 3.2.1码头工人安装源更改强>
由于默认从码头工人官方源安装码头工人,速度非常慢,这里我们更换为国内阿里源,在库存/testcluster group_vars/k8s-cluster/k8s-cluster。yml文件中添加如下配置:
# CentOS/RedHat docker-ce回购 docker_rh_repo_base_url:“ docker_rh_repo_gpgkey:“ dockerproject_rh_repo_base_url:“ dockerproject_rh_repo_gpgkey:“https://mirrors.aliyun.com/docker-engine/yum/gpg”
<强> 3.2.2可执行文件预处理强>
另外由于需要从谷歌以及github下载一些可执行文件,由于防火墙原因无法直接在服务器上下载,我们可以预先将这些执行文件下载好,然后上传到指定的服务器路径中
可执行文件下载地址可以在/下载/违约/主要角色。yml文件中查找到,下载路径如下:
kubeadm_download_url:“https://storage.googleapis.com/kubernetes-release/release/v1.12.5/bin/linux/amd64/kubeadm” hyperkube_download_url:“https://storage.googleapis.com/kubernetes-release/release/v1.12.5/bin/linux/amd64/hyperkube” cni_download_url: " https://github.com/containernetworking/plugins/releases/download/v0.6.0/cni-plugins-amd64-v0.6.0.tgz "【Kubernetes系列】第3篇Kubernetes集群安装部署