摘要:使用安裝集群本文撰寫時(shí),的分支不穩(wěn)定,請(qǐng)使用版本來(lái)安裝,具體來(lái)說(shuō)就是切換到最新的上。確保每個(gè)都安裝了在每個(gè)上開啟,修改,然后重啟。可參考這篇文章執(zhí)行找一臺(tái)服務(wù)器,用來(lái)執(zhí)行,的原理是通過(guò)連接到各個(gè)執(zhí)行命令安裝集群。
GitHub: https://github.com/chanjarste...
使用Kubespray安裝k8s集群本文撰寫時(shí),Kubespray的master分支不穩(wěn)定,請(qǐng)使用release版本來(lái)安裝,具體來(lái)說(shuō)就是切換到最新的tag上。
準(zhǔn)備好target nodes準(zhǔn)備好幾臺(tái)服務(wù)器,假設(shè)你準(zhǔn)備了3臺(tái)。
給每個(gè)node安裝好操作系統(tǒng),Ubuntu 16.04 Server LTS或者CentOS 7,并且有一個(gè)可以sudo的用戶或者直接有root用戶。
確保每個(gè)node都安裝了python 2.7
在每個(gè)node上開啟IPv4 Forwarding,修改/etc/sysctl.conf,然后重啟。可參考這篇文章
net.ipv4.ip_forward = 1執(zhí)行Kubespray
找一臺(tái)服務(wù)器,用來(lái)執(zhí)行Kubespray,Kubespray的原理是通過(guò)ssh連接到各個(gè)target nodes執(zhí)行命令安裝k8s集群。
將服務(wù)器的.ssh/id_rsa.pub上傳到target nodes:
ssh-copy-id user@target-node-host
在Kubespray所在的機(jī)器上安裝bash-git-prompt
到Kubespray項(xiàng)目倉(cāng)庫(kù)下載代碼:
git clone https://github.com/kubernetes-incubator/kubespray.git
使用中科大docker image mirror地址,運(yùn)行以下命令:
find . -name "*.yml" | xargs -n1 -I{} sed -i "s/gcr.io/google-containers//gcr.mirrors.ustc.edu.cn/google-containers//" {}
find . -name "*.yml" | xargs -n1 -I{} sed -i "s/gcr.io/google_containers//gcr.mirrors.ustc.edu.cn/google-containers//" {}
find . -name "*.yml" | xargs -n1 -I{} sed -i "s/quay.io/quay.mirrors.ustc.edu.cn/" {}
如果中科大地址不行,請(qǐng)更換anjia0532的地址
find . -name "*.yml" | xargs -n1 -I{} sed -i "s/gcr.io/google-containers//anjia0532/google-containers./" {}
find . -name "*.yml" | xargs -n1 -I{} sed -i "s/gcr.io/google_containers//anjia0532/google-containers./" {}
修改roles/docker/defaults/main.yml文件,設(shè)置docker倉(cāng)庫(kù)的鏡像:
docker_ubuntu_repo_base_url: "http://mirrors.aliyun.com/docker-ce/linux/ubuntu" docker_ubuntu_repo_gpgkey: "http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg" dockerproject_apt_repo_base_url: "https://mirrors.tuna.tsinghua.edu.cn/docker/apt/repo" dockerproject_apt_repo_gpgkey: "https://mirrors.tuna.tsinghua.edu.cn/docker/apt/gpg"
確保Kubespray所載機(jī)器上已經(jīng)安裝了pip
在執(zhí)行ansible-playbook命令之前修改inventory/mycluster/group_vars/k8s-cluster.yml文件:
efk_enabled: true
ingress_nginx_enabled: true
kubeconfig_localhost: true
kubectl_localhost: true
修改roles/network_plugin/calico/defaults/main.yml文件里的calico_mtu參數(shù),根據(jù)官方文檔給每個(gè)服務(wù)器設(shè)置MTU。簡(jiǎn)單來(lái)說(shuō)就是kubespray默認(rèn)為calico啟用了IP-in-IP模式,那么它的MTU應(yīng)該是網(wǎng)卡MTU-20。
根據(jù)項(xiàng)目倉(cāng)庫(kù)的指南執(zhí)行命令
安裝完畢后,找到inventory/mycluster/artifacts/admin.conf文件,copy到~/.kube/config文件,然后你就可以在Kubespray機(jī)器上使用kubectl管理k8s了
Troubleshooting 提示Permission denied之類的錯(cuò)誤可能是執(zhí)行Ansible playbook的時(shí)候,ssh到target node執(zhí)行某些命令缺少root權(quán)限。
在教程的最后一步ansible-playbook -i inventory/mycluster/hosts.ini cluster.yml,根據(jù)情況添加-b --become-user --become-method等參數(shù)。
寫本文時(shí)target node是ubuntu cloud image,所以只需添加-b參數(shù)就行了。其余情況請(qǐng)自行摸索。
同時(shí)也要記得添加-u 用戶名參數(shù)。
提示unable to resolve host這是因?yàn)槊總€(gè)target node有一個(gè)hostname,但是在/etc/hosts下沒有配置造成的,修改每個(gè)target node的/etc/hosts,比如:
127.0.0.1 localhost kube-1提示FAILED! ip in ansible_all_ipv4_addresses
這種錯(cuò)誤出現(xiàn)在云環(huán)境中,target node有兩個(gè)IP,一個(gè)是內(nèi)部IP(外部不能訪問),一個(gè)是外部IP(在OpenStack環(huán)境下就是一個(gè)是Project network IP,一個(gè)是Floating IP)。
這個(gè)時(shí)候需要修改inventory/mycluster/hosts.ini,把node的IP屬性改成內(nèi)部IP,比如下面這種:
[all] node1 ansible_host=172.50.10.2 ip=192.168.1.4 node2 ansible_host=172.50.10.13 ip=192.168.1.8 node3 ansible_host=172.50.10.15 ip=192.168.1.9 ...用kubectl訪問
在master-node下可以用kubectl來(lái)訪問k8s,但這有點(diǎn)麻煩,實(shí)際上你能夠在任意機(jī)器上安裝kubectl然后遠(yuǎn)程訪問。
方法很簡(jiǎn)單將之前提到的.kube/config放到你自己電腦(假設(shè)你用的是MAC或者Linux系統(tǒng))的目錄下,就可以了。
注意:在OpenStack環(huán)境下,每個(gè)node會(huì)被分配一個(gè)Floating IP,會(huì)導(dǎo)致你kubectl無(wú)法使用,這個(gè)時(shí)候需要你這樣做:
注釋.clusters.cluster.certificate-authority-data
添加.clusters.cluster.insecure-skip-tls-verify: true
修改.clusters.cluster.server的IP地址到一個(gè)能夠外部訪問的IP地址(這種情況出現(xiàn)在OpenStack環(huán)境下的Floating IP)
訪問Dashboard如果都安裝成功,那么你可以訪問k8s dashboard來(lái)看看安裝結(jié)果。打開瀏覽器,訪問https://{某個(gè)master的IP}:6443/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/,你會(huì)被要求登錄,你得先創(chuàng)建一個(gè)用戶并。
但是Kubespray并沒有替你創(chuàng)建用戶,所以請(qǐng)根據(jù)這篇guide來(lái)創(chuàng)建用戶,然后獲得Token,使用Token登錄。
下面講解主要步驟:
創(chuàng)建admin-user用戶。
新建一個(gè)文件名字叫做admin-user.yaml,內(nèi)容如下:
apiVersion: v1 kind: ServiceAccount metadata: name: admin-user namespace: kube-system
在kube-master上運(yùn)行kubectl create -f admin-user.yaml
綁定角色:
新建一個(gè)文件名字叫做admin-user-role.yaml,內(nèi)容如下:
apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: admin-user roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: cluster-admin subjects: - kind: ServiceAccount name: admin-user
獲得token:
kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep admin-user | awk "{print $1}")
[calico-mtu]: https://docs.projectcalico.org/v2.2/usage/configuration/mtu [kubespray-repo]: https://github.com/kubernetes-incubator/kubespray [bash-git-prompt]: https://github.com/magicmonty/bash-git-prompt [enable-ipv4-forwarding]: http://www.ducea.com/2006/08/01/how-to-enable-ip-forwarding-in-linux/ [k8s-dashboard-create-user]: https://github.com/kubernetes/dashboard/wiki/Creating-sample-user [anjia0532-mirror]: https://github.com/anjia0532/gcr.io_mirror
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/33043.html
摘要:使用安裝集群本文撰寫時(shí),的分支不穩(wěn)定,請(qǐng)使用版本來(lái)安裝,具體來(lái)說(shuō)就是切換到最新的上。確保每個(gè)都安裝了在每個(gè)上開啟,修改,然后重啟。可參考這篇文章執(zhí)行找一臺(tái)服務(wù)器,用來(lái)執(zhí)行,的原理是通過(guò)連接到各個(gè)執(zhí)行命令安裝集群。 GitHub: https://github.com/chanjarste... 使用Kubespray安裝k8s集群 本文撰寫時(shí),Kubespray的master分支不穩(wěn)定...
摘要:現(xiàn)在,越來(lái)越多的開發(fā)人員不再使用傳統(tǒng)的應(yīng)用程序服務(wù)器,而是開始使用作為分布式應(yīng)用程序平臺(tái)開發(fā)人員使用作為后端數(shù)據(jù)庫(kù)。而我們已注意到,將諸如之類的輕量級(jí)安裝程序嵌入到分布式應(yīng)用程序中,滿足了很多來(lái)自用戶的興趣與需求。 作為Rancher 2.0的重要組件,Rancher Kubernetes Engine(RKE)現(xiàn)已正式全面發(fā)布!這是Rancher Labs推出的新的開源項(xiàng)目,一個(gè)極致...
摘要:現(xiàn)在,越來(lái)越多的開發(fā)人員不再使用傳統(tǒng)的應(yīng)用程序服務(wù)器,而是開始使用作為分布式應(yīng)用程序平臺(tái)開發(fā)人員使用作為后端數(shù)據(jù)庫(kù)。而我們已注意到,將諸如之類的輕量級(jí)安裝程序嵌入到分布式應(yīng)用程序中,滿足了很多來(lái)自用戶的興趣與需求。 作為Rancher 2.0的重要組件,Rancher Kubernetes Engine(RKE)現(xiàn)已正式全面發(fā)布!這是Rancher Labs推出的新的開源項(xiàng)目,一個(gè)極致...
摘要:一環(huán)境二安裝配置免密登錄,配置節(jié)點(diǎn)所需鏡像的文件由于某些鏡像國(guó)內(nèi)無(wú)法訪問需要現(xiàn)將鏡像通過(guò)代理下載到本地然后上傳到本地鏡像倉(cāng)庫(kù)或,同時(shí)修改配置文件,個(gè)別組件存放位置,需要新建服務(wù)器分發(fā)文件。文章轉(zhuǎn)載自公眾號(hào)北京爺們兒 K8s和TiDB都是目前開源社區(qū)中活躍的開源產(chǎn)品,TiDBOperator項(xiàng)目是一個(gè)在K8s上編排管理TiDB集群的項(xiàng)目。本文詳細(xì)記錄了部署K8s及install TiDB...
摘要:一環(huán)境二安裝配置免密登錄,配置節(jié)點(diǎn)所需鏡像的文件由于某些鏡像國(guó)內(nèi)無(wú)法訪問需要現(xiàn)將鏡像通過(guò)代理下載到本地然后上傳到本地鏡像倉(cāng)庫(kù)或,同時(shí)修改配置文件,個(gè)別組件存放位置,需要新建服務(wù)器分發(fā)文件。文章轉(zhuǎn)載自公眾號(hào)北京爺們兒 K8s和TiDB都是目前開源社區(qū)中活躍的開源產(chǎn)品,TiDBOperator項(xiàng)目是一個(gè)在K8s上編排管理TiDB集群的項(xiàng)目。本文詳細(xì)記錄了部署K8s及install TiDB...
閱讀 3698·2021-11-11 10:58
閱讀 2484·2021-09-22 15:43
閱讀 2873·2019-08-30 15:44
閱讀 2194·2019-08-30 13:08
閱讀 1824·2019-08-29 17:28
閱讀 890·2019-08-29 10:54
閱讀 678·2019-08-26 11:46
閱讀 3509·2019-08-26 11:43