亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

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

發布時間:2020-06-22 13:15:46 來源:網絡 閱讀:345 作者:wx5d32e3bc1243e 欄目:云計算

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

本文介紹了如何通過Kubespray來進行部署高可用k8s集群,k8s版本為1.12.5。

1、部署手冊

代碼倉庫:https://github.com/kubernetes-sigs/kubespray

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

2、k8s?master機器配置

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

3、k8s 集群安裝步驟

step1: 設置主機間的免密登錄

由于kubespray是依賴于ansible,ansible通過ssh協議進行主機之間的訪問,所以部署之前需要設置主機之間免密登錄,步驟如下:

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

注意:不要通過使用github倉庫master分支的代碼,我這里使用的是tag v2.8.3進行部署

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安裝大部分都是使用的國外的鏡像,由于防火墻原因沒有辦法獲取到這些鏡像,所以需要自己創建鏡像倉庫并將這些鏡像獲取到上傳到鏡像倉庫中。

3.1.1 新建鏡像倉庫

鏡像倉庫我們選用的組件是Harbor,安裝步驟參考:

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

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

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

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

3.1.3 下載所需鏡像并上傳至私有鏡像倉庫

使用的鏡像列表如下,在這里我申請了一臺國外的阿里云主機,在該臺主機下載所需鏡像然后上傳至私有鏡像倉庫

例如操作某個鏡像時,需要執行如下命令:

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:?將使?的組件的鏡像倉庫修改為私有鏡像倉庫地址
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?}}"

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


docker_insecure_registries:
-?10.0.0.183:5000

3.2 Docker安裝源更改以及執行文件預處理

3.2.1 Docker安裝源更改

由于默認從Docker官方源安裝docker,速度非常慢,這里我們更換為國內阿里源,在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 可執行文件預處理

另外由于需要從google以及github下載一些可執行文件,由于防火墻原因無法直接在服務器上下載,我們可以預先將這些執行文件下載好,然后上傳到指定的服務器路徑中

可執行文件下載地址可以在roles/download/defaults/main.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"

接下來修改文件權限,并上傳到每臺服務器的/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的服務發現依賴于DNS,涉及到兩種類型的網絡:主機網絡和容器網絡,所以Kubespray提供了兩種配置來進行管理

3.4.1 dns_mode

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

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

3.4.2 resolvconf_mode

resolvconf_mode主要用來解決當容器部署為host網絡模式的時候,如何使用k8s的dns,這里我們使用的是docker_dns

resolvconf_mode:?docker_dns

3.5 網絡插件選擇

3.5.1 kube-proxy

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

3.5.2 網絡插件列表

網絡插件列表如下,我們的技術選型是calico,注意:選擇某種網絡插件,可能需要一個或多個容器鏡像,其鏡像版本也可能不同。

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

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

3.6 高可用方案

step4: 按照如下步驟進行安裝部署

#?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所在的主機,執行如下命令,可以看到各個組件正常

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/


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

安新县| 铁岭市| 长海县| 富平县| 石楼县| 嵊泗县| 呼和浩特市| 凌云县| 灵石县| 瓮安县| 凤冈县| 临沭县| 旌德县| 华宁县| 武义县| 会泽县| 左贡县| 青州市| 磴口县| 新龙县| 太原市| 和龙市| 西畴县| 本溪| 辽宁省| 武穴市| 兰州市| 望城县| 石嘴山市| 海晏县| 娄底市| 健康| 军事| 台北市| 遂平县| 平定县| 竹山县| 象山县| 马边| 孝昌县| 新巴尔虎左旗|