最小化安裝k8s
1.前言

本文是讀該項目的的讀書筆記,相對原文稍微有一點改動,文中介紹了最小話安裝的流程,讀者如果需要做高可用安裝可以參考github項目;
本文介紹最小化安裝k8s;
安裝系統版本: CentOS Linux release 7.5.1804 (Core)
2.基礎系統配置
推薦內存2G/硬盤30G以上
CentOS Linux release 7.5.1804 (Core)
配置基礎網絡、更新源、SSH登陸等
3.安裝依賴工具
CentOS 7 請執行以下腳本:
#?文檔中腳本默認均以root用戶執行#?安裝?epel?源yum?install?epel-release?-y#?安裝依賴工具yum?install?git?python?python-pip?-y
3.ansible安裝及準備
#?安裝ansible?(國內如果安裝太慢可以直接用pip阿里云加速)#pip?install?pip?--upgrade#pip?install?ansiblepip?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?clonegit?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安裝,正常能看到每個節點返回?SUCCESSansible?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登陸一下,環境變量生效即可
kubectl?version kubectl?get?componentstatus?#?可以看到scheduler/controller-manager/etcd等組件?Healthykubectl?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?}')#?使用瀏覽器訪問前面``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等方式解決;當然如果是徹底奔潰了,可以清理集群后重新創建。
ansible-playbook?99.clean.yml
如果出現清理失敗,類似報錯:... Device or resource busy: '/var/run/docker/netns/xxxxxxxxxx',需要手動umount該目錄后重新清理
$?umount?/var/run/docker/netns/xxxxxxxxxx $?ansible-playbook?/etc/ansible/tools/clean_one_node.yml
網絡
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。