最小化安裝k8s

最小化安裝k8s

96 
Nick_4438 
2018.07.11 10:40* 字數 670 閱讀 0評論 0

1.前言

以前寫過一篇二進制手工安裝k8s的文章,過程複雜,搞了多日才安裝成功。
直到最近,在github上看到一個使用Ansible安裝k8s的工程,安裝過程之簡單着實讓我驚訝,感謝做者的開源精神。node

原項目地址: https://github.com/gjmzj/kubeasz
做者fork項目地址:https://github.com/qiujiahong/kubeaszpython

本文是讀該項目的的讀書筆記,相對原文稍微有一點改動,文中介紹了最小話安裝的流程,讀者若是須要作高可用安裝能夠參考github項目;
本文介紹最小化安裝k8s;
安裝系統版本: CentOS Linux release 7.5.1804 (Core)git

2.基礎系統配置

  • 推薦內存2G/硬盤30G以上
  • CentOS Linux release 7.5.1804 (Core)
  • 配置基礎網絡、更新源、SSH登錄等

3.安裝依賴工具

CentOS 7 請執行如下腳本:github

# 文檔中腳本默認均以root用戶執行 # 安裝 epel 源 yum install epel-release -y # 安裝依賴工具 yum install git python python-pip -y 

3.ansible安裝及準備

# 安裝ansible (國內若是安裝太慢能夠直接用pip阿里雲加速) #pip install pip --upgrade #pip install ansible pip install pip --upgrade -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com pip install --no-cache-dir ansible -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com # 配置ansible ssh密鑰登錄 ssh-keygen -t rsa -b 2048 回車 回車 回車 ssh-copy-id $IP #$IP爲本虛機地址,按照提示輸入yes 和root密碼 

4.安裝kubernetes集羣

  • 4.1 下載項目源碼
# 方式一:使用git clone git clone https://github.com/gjmzj/kubeasz.git mkdir -p /etc/ansible mv kubeasz/* /etc/ansible # 方式二:從發佈頁面 https://github.com/gjmzj/kubeasz/releases 下載源碼解壓到一樣目錄 
  • 4.2a 下載二進制文件
    請從分享的百度雲連接,下載解壓到/etc/ansible/bin目錄,若是你有合適網絡環境也能夠按照/down/download.sh自行從官網下載各類tar包
tar zxvf k8s.1-9-8.tar.gz   # 以安裝k8s v1.9.8爲例 mv bin/* /etc/ansible/bin 
  • 4.2b [可選]下載離線docker鏡像
    服務器使用內部yum源/apt源,可是沒法訪問公網狀況下,請下載離線docker鏡像完成集羣安裝;從百度雲盤把basic_images_kubeasz_x.y.tar.gz 下載解壓到/etc/ansible/down 目錄
tar zxvf basic_images_kubeasz_0.2.tar.gz -C /etc/ansible/down
  • 4.3 配置集羣參數
cd /etc/ansible cp example/hosts.allinone.example hosts vim hosts # 根據實際狀況修改此hosts文件,全部節點改爲本機IP # 驗證ansible安裝,正常能看到每一個節點返回 SUCCESS ansible all -m ping 
  • 4.4 開始安裝
    若是你對集羣安裝流程不熟悉,請閱讀項目首頁 安裝步驟 講解後分步安裝,並對 每步都進行驗證
# 分步安裝 ansible-playbook 01.prepare.yml ansible-playbook 02.etcd.yml ansible-playbook 03.docker.yml ansible-playbook 04.kube-master.yml ansible-playbook 05.kube-node.yml ansible-playbook 06.network.yml ansible-playbook 07.cluster-addon.yml # 一步安裝 #ansible-playbook 90.setup.yml 
  • [可選]對集羣節點進行操做系統層面的安全加固 ansible-playbook roles/os-harden/os-harden.yml,詳情請參考os-harden項目

5.驗證安裝

若是提示kubectl: command not found,退出從新ssh登錄一下,環境變量生效便可docker

kubectl version
kubectl get componentstatus # 能夠看到scheduler/controller-manager/etcd等組件 Healthy kubectl get node # 能夠看到單 node Ready狀態 kubectl get pod --all-namespaces # 能夠查看全部集羣pod狀態,默認已安裝網絡插件、coredns、metrics-server等 kubectl get svc --all-namespaces # 能夠查看全部集羣服務狀態 # 能夠看到 # kubernetes master(apiserver)組件 running # kubernetes-dashboard is running at.. kubectl cluster-info # 獲取訪問dashboard token kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep admin-user | awk '{print $1}') # 使用瀏覽器訪問前面``kubectl cluster-info ``獲取的dashboard地址,最後一條命令獲取的token登錄。 

6.安裝主要組件

# 安裝kubedns,默認已集成安裝 #kubectl create -f /etc/ansible/manifests/kubedns # 安裝dashboard,默認已集成安裝 #kubectl create -f /etc/ansible/manifests/dashboard 
  • 登錄 dashboard能夠查看和管理集羣,更多內容請查閱dashboard文檔

7.清理集羣

以上步驟建立的K8S開發測試環境請盡情折騰,碰到錯誤儘可能經過查看日誌、上網搜索、提交issues等方式解決;固然若是是完全奔潰了,能夠清理集羣后從新建立。vim

ansible-playbook 99.clean.yml

若是出現清理失敗,相似報錯:... Device or resource busy: '/var/run/docker/netns/xxxxxxxxxx',須要手動umount該目錄後從新清理api

$ umount /var/run/docker/netns/xxxxxxxxxx
$ ansible-playbook /etc/ansible/tools/clean_one_node.yml
相關文章
相關標籤/搜索