真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

【Kubernetes系列】第3篇Kubernetes集群安裝部署

【Kubernetes系列】第3篇 Kubernetes集群安裝部署

創(chuàng)新互聯(lián)公司2013年成立,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目成都做網(wǎng)站、成都網(wǎng)站建設(shè)網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元北辰做網(wǎng)站,已為上家服務(wù),為北辰各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:13518219792

本文介紹了如何通過(guò)Kubespray來(lái)進(jìn)行部署高可用k8s集群,k8s版本為1.12.5。

1、部署手冊(cè)

代碼倉(cāng)庫(kù):https://github.com/kubernetes-sigs/kubespray

參考文檔:https://kubespray.io/#/

2、k8s?master機(jī)器配置

【Kubernetes系列】第3篇 Kubernetes集群安裝部署

3、k8s 集群安裝步驟

step1: 設(shè)置主機(jī)間的免密登錄

由于kubespray是依賴于ansible,ansible通過(guò)ssh協(xié)議進(jìn)行主機(jī)之間的訪問(wèn),所以部署之前需要設(shè)置主機(jī)之間免密登錄,步驟如下:

ssh-keygen?-t?rsa
scp?~/.ssh/id_rsa.pub?root@IP:/root/.ssh
ssh?root@IP
cat?/root/.ssh/id_rsa.pub?>>?/root/.ssh/authorized_keys

step2: 下載kubespray

注意:不要通過(guò)使用github倉(cāng)庫(kù)master分支的代碼,我這里使用的是tag v2.8.3進(jìn)行部署

wget?https://github.com/kubernetes-sigs/kubespray/archive/v2.8.3.tar.gz
tar?-xvf?v2.8.3cd?kubespray-v2.8.3

3.1 更換鏡像

Kubernetes安裝大部分都是使用的國(guó)外的鏡像,由于防火墻原因沒(méi)有辦法獲取到這些鏡像,所以需要自己創(chuàng)建鏡像倉(cāng)庫(kù)并將這些鏡像獲取到上傳到鏡像倉(cāng)庫(kù)中。

3.1.1 新建鏡像倉(cāng)庫(kù)

鏡像倉(cāng)庫(kù)我們選用的組件是Harbor,安裝步驟參考:

https://github.com/goharbor/harbor/blob/master/docs/installation_guide.md

3.1.2 整理k8s集群部署中需要使用的鏡像

在文件roles/download/defaults/main.yml文件中,可以看到使用的全量鏡像列表,注意某些鏡像由于功能未使用的原因所以暫時(shí)沒(méi)有用到,我們主要用到有如下鏡像:

【Kubernetes系列】第3篇 Kubernetes集群安裝部署

3.1.3 下載所需鏡像并上傳至私有鏡像倉(cāng)庫(kù)

使用的鏡像列表如下,在這里我申請(qǐng)了一臺(tái)國(guó)外的阿里云主機(jī),在該臺(tái)主機(jī)下載所需鏡像然后上傳至私有鏡像倉(cāng)庫(kù)

例如操作某個(gè)鏡像時(shí),需要執(zhí)行如下命令:

docker?pull?gcr.io/google_containers/kubernetes-dashboard-amd64:v1.10.0
docker?tag?gcr.io/google_containers/kubernetes-dashboard-amd64:v1.10.0?106.14.219.69:5000/google_containers/kubernetes-dashboard-amd64:v1.10.0
docker?push?106.14.219.69:5000/google_containers/kubernetes-dashboard-amd64:v1.10.0

3.1.4 更改鏡像地址并修改Docker配置

在inventory/testcluster/group_vars/k8s-cluster/k8s-cluster.yml文件中添加如下配置:

#?kubernetes?image?repo?define
kube_image_repo:?"10.0.0.183:5000/google_containers"
##?modified?by:?robbin
#?comment:?將使?的組件的鏡像倉(cāng)庫(kù)修改為私有鏡像倉(cāng)庫(kù)地址
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/calico/ctl"
calico_node_image_repo:?"10.0.0.183:5000/calico/node"
calico_cni_image_repo:?"10.0.0.183:5000/calico/cni"
calico_policy_image_repo:?"10.0.0.183:5000/calico/kube-controllers"
hyperkube_image_repo:?"{{?kube_image_repo?}}/hyperkube-{{?image_arch?}}"
pod_infra_image_repo:?"{{?kube_image_repo?}}/pause-{{?image_arch?}}"
dnsautoscaler_image_repo:?"{{?kube_image_repo?}}/cluster-proportional-autoscaler-{{?image_arch?}}"
dashboard_image_repo:?"{{?kube_image_repo?}}/kubernetes-dashboard-{{?image_arch?}}"

由于我們的私有鏡像倉(cāng)庫(kù)未配置https證書(shū),需要在 inventory/testcluster/group_vars/all/docker.yml文件中添加如下配置:

docker_insecure_registries:
-?10.0.0.183:5000

3.2 Docker安裝源更改以及執(zhí)行文件預(yù)處理

3.2.1 Docker安裝源更改

由于默認(rèn)從Docker官方源安裝docker,速度非常慢,這里我們更換為國(guó)內(nèi)阿里源,在inventory/testcluster/group_vars/k8s-cluster/k8s-cluster.yml文件中添加如下配置:?

#?CentOS/RedHat?docker-ce?repo
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 可執(zhí)行文件預(yù)處理

另外由于需要從google以及github下載一些可執(zhí)行文件,由于防火墻原因無(wú)法直接在

接下來(lái)修改文件權(quán)限,并上傳到每臺(tái)服務(wù)器的/tmp/releases目錄下

chmod?755?cni-plugins-amd64-v0.6.0.tgz?hyperkube?kubeadm
scp?cni-plugins-amd64-v0.6.0.tgz?hyperkube?kubeadm?root@node1:/tmp/releases

3.3 組件列表

k8s所需要的組件【Kubernetes系列】第3篇 Kubernetes集群安裝部署

【Kubernetes系列】第3篇 Kubernetes集群安裝部署

可選插件列表

【Kubernetes系列】第3篇 Kubernetes集群安裝部署

3.4 DNS方案

k8s的服務(wù)發(fā)現(xiàn)依賴于DNS,涉及到兩種類型的網(wǎng)絡(luò):主機(jī)網(wǎng)絡(luò)和容器網(wǎng)絡(luò),所以Kubespray提供了兩種配置來(lái)進(jìn)行管理

3.4.1 dns_mode

dns_mode 主要用于集群內(nèi)的域名解析,有如下幾種類型,我們的技術(shù)選型是coredns,注意:選擇某種dns_mode,可能需要下載安裝多個(gè)容器鏡像,其鏡像版本也可能不同

【Kubernetes系列】第3篇 Kubernetes集群安裝部署

3.4.2 resolvconf_mode

resolvconf_mode主要用來(lái)解決當(dāng)容器部署為host網(wǎng)絡(luò)模式的時(shí)候,如何使用k8s的dns,這里我們使用的是docker_dns

resolvconf_mode:?docker_dns

3.5 網(wǎng)絡(luò)插件選擇

3.5.1 kube-proxy

kube-proxy可以選擇ipvs或者iptables,在這里我們選擇的是ipvs模式,關(guān)于這兩者的區(qū)別可以參考?華為云在 K8S 大規(guī)模場(chǎng)景下的 Service 性能優(yōu)化實(shí)踐(https://zhuanlan.zhihu.com/p/37230013)

3.5.2 網(wǎng)絡(luò)插件列表

網(wǎng)絡(luò)插件列表如下,我們的技術(shù)選型是calico,注意:選擇某種網(wǎng)絡(luò)插件,可能需要一個(gè)或多個(gè)容器鏡像,其鏡像版本也可能不同。

【Kubernetes系列】第3篇 Kubernetes集群安裝部署

3.6 高可用方案

step4: 按照如下步驟進(jìn)行安裝部署

#?Install?dependencies?from?``requirements.txt``
sudo?pip?install?-r?requirements.txt
#?Copy?`inventory/sample`?as?`inventory/mycluster`
cp?-rfp?inventory/sample?inventory/mycluster
#?Update?Ansible?inventory?file?with?inventory?builder
declare?-a?IPS=(10.10.1.3?10.10.1.4?10.10.1.5)
CONFIG_FILE=inventory/mycluster/hosts.ini?python3?contrib/invent
ory_builder/invent
ory.py?${IPS[@]}
#?Review?and?change?parameters?under?`inventory/mycluster/group_vars`
cat?inventory/mycluster/group_vars/all/all.yml
cat?inventory/mycluster/group_vars/k8s-cluster/k8s-cluster.yml
#?Deploy?Kubespray?with?Ansible?Playbook?-?run?the?playbook?as?root
#?The?option?`-b`?is?required,?as?for?example?writing?SSL?keys?in?/etc/,
#?installing?packages?and?interacting?with?various?systemd?daemons.
#?Without?-b?the?playbook?will?fail?to?run!
ansible-playbook?-i?inventory/mycluster/hosts.ini?--become?--become-user=root?clus
ter.yml

部署完成,可以登錄到k8s-master所在的主機(jī),執(zhí)行如下命令,可以看到各個(gè)組件正常

kubectl?cluster-info
kubectl?get?node
kubectl?get?pods?--all-namespaces

參考文檔:

https://github.com/kubernetes-sigs/kubespray/blob/master/docs/getting-started.md

https://xdatk.github.io/2018/04/16/kubespray2/

https://jicki.me/kubernetes/docker/2018/12/21/k8s-1.13.1-kubespray/


文章標(biāo)題:【Kubernetes系列】第3篇Kubernetes集群安裝部署
分享地址:
http://weahome.cn/article/ieshdd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部