Kubernetes(k8s)叢集部署(k8s企業級Docker容器集
0、前言
整體架構目錄:
k8s架構目錄:
1、部署master元件
master 伺服器的元件有:kube-apiserver、kube-controller-manager、kube-scheduler
因此需要下載k8s master,下載地址: ,當然大家可以下載更高版本的。
這邊需要準備這幾個檔案
kubectl(用於執行叢集命令的管理工具):具體可參考: 中文文件。
kubeconfig.sh(用來生成適用於node節點的配置檔案以及證書的)、master伺服器的k8s元件
第一步:解壓縮包 unzip master.zip
把裡面的kube-apiserver、 kube-controller-manager、 kube-scheduler 複製到 /opt/kubernetes/bin 裡面,並且把bin資料夾下面的檔案設定為可執行許可權,chmod +x /ops/kubernetes/bin/*
第二步:已把各個元件放到對應的目錄後,進入我剛才的解壓出來的資料夾中,把字尾為.sh的檔案設定為可執行許可權因為我們要開始啟動master元件
chmod +x *.sh
第三步:
把上面說到的 kubectl 管理工具放到 /ops/kubernetes/bin,一樣的也設定可執行許可權。
然後把kubeconfig.sh 放到 之前文章介紹中的 /home/ssl 目錄下,然後執行以下里面的內容,會生成如下的檔案及證書,主要用於node元件
token.csv、bootstrap.kubeconfig、kube-proxy-key.pem、kube-proxy.kubeconfig kube-proxy.pem
第四步:把生成的token.csv 檔案複製到 /opt/kubernetes/cfg/ ,因為在執行 master元件sh檔案需要用到。
第五步:終於可以了執行啦
./apiserver.sh 192.168.161.151 https://192.168.161.151:2379,https://192.168.161.152:2379,https://192.168.161.153:2379
./scheduler.sh 127.0.0.1
./controller-manager.sh 127.0.0.1
然後執行以檢視一下執行狀態 ps -ef |grep kube ,可以看到 都在執行,至此master元件已經全部執行了。
執行以下檢視叢集etcd的健康狀態啦 kubectl get cs
2、部署node元件
第一步:把上面的ssl中建立的檔案
bootstrap.kubeconfig、kube-proxy.kubeconfig
copy 到node節點上
scp -r *kubeconfig root@192.168.161.152:/opt/kubernetes/cfg
scp -r *kubeconfig root@192.168.161.153:/opt/kubernetes/cfg
第二步:在下載的k8s中找到node伺服器需要的k8s檔案元件複製到伺服器上。
然後進入到 資料夾中,然後把字尾為 sh 的檔案新增可執行許可權 chmod +x *sh
把kubelet、kube-proxy都加上可執行許可權,然後把這兩個檔案copy到/ops/kubernetes/bin 中
cp kubelet kube-proxy /opt/kubernetes/bin/
chmod +x /opt/kubernetes/bin/*
第三步:執行kubelet.sh kube-proxy.sh(節點node2也按照相同的部署)
./kubelet.sh 192.168.161.152 10.10.10.2
./proxy.sh 192.168.161.152
第四步:執行kubelet 和kube-proxy
發現執行報錯,好吧,發現沒有許可權
解決方案:需要在 master節點裡面為 請求的使用者即bootstrap.kubeconfig 裡面的 user 使用者建立角色(kubelet-bootstrap)
切換到master 上,執行以下命令即可。
kubectl create clusterrolebinding kubelet-bootstrap --clusterrole=system:node-bootstrapper --user=kubelet-bootstrap
第五步:在node伺服器上啟動kubelet,在master 上面即可以檢視 csr 證書
證書生成後,就需允許 證書
kubectl certificate approve 證書名(即上面截圖的name值)
然後就可以檢視 叢集狀態了
kubectl get node
至此,k8s叢集部署結束。
接下來就要測試一下部署webUI啦。
看下圖
3、部署webUI
需要三個檔案
dashboard-rbac.yaml :rbac 許可權
dashboard-deployment.yaml :部署pod
dashboard-service.yaml :釋出服務
分別執行:
kubectl create -f dashboard-rbac.yaml
kubectl create -f dashboard-deployment.yaml
kubectl create -f dashboard-service.yaml
執行完後,我們來看一下pod,發現dashboard已經部署成功。
接下來我們看一下發布服務的埠
大公告成。
github:
原文出處:https://www.cnblogs.com/guolianyu/p/9532047.html
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4301/viewspace-2812577/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 基於Ubuntu部署企業級kubernetes叢集---k8s叢集容部署UbuntuK8S
- Kubernetes(k8s)部署redis-cluster叢集K8SRedis
- 升級 kubeadm 部署的 k8s 叢集K8S
- Ansible部署K8s叢集K8S
- kubeadm部署K8S叢集K8S
- k8s 叢集升級K8S
- 在 Azure 中部署 Kubernetes 容器叢集
- SpringCloud微服務實戰——搭建企業級開發框架(三十五):SpringCloud + Docker + k8s實現微服務叢集打包部署-叢集環境部署SpringGCCloud微服務框架DockerK8S
- Mac + Docker + K8S 本地搭建K8S叢集MacDockerK8S
- 容器化 | 在 K8s 上部署 RadonDB MySQL Operator 和叢集K8SMySql
- k8s 部署生產vault叢集K8S
- Containerd+Kubernetes搭建k8s叢集教程。AIK8S
- 【docker-ce】k8s叢集docker容器異常重啟問題分析DockerK8S
- 容器化 | 在 Kubernetes 上部署 RadonDB MySQL 叢集MySql
- K8S如何部署Redis(單機、叢集)K8SRedis
- 通過kubeadm工具部署k8s叢集K8S
- Docker 與 K8S學習筆記(二十三)—— Kubernetes叢集搭建DockerK8S筆記
- Centos7升級K8S叢集CentOSK8S
- k8s介紹及與docker搭建叢集K8SDocker
- AnolisOS7.9部署K8s叢集K8S
- 基於kubeasz部署高可用k8s叢集K8S
- 【k8s】使用Terraform一鍵部署EKS叢集K8SORM
- 輕量化安裝 TKEStack:讓已有 K8s 叢集擁有企業級容器雲平臺的能力K8S
- Centos下部署最後一版支援Docker的k8s叢集CentOSDockerK8S
- docker部署mysql叢集DockerMySql
- Docker部署ElasticSearch叢集DockerElasticsearch
- multipass指定virualbox搭建k8s叢集(選擇docker作為預設容器)K8SDocker
- jmeter 叢集容器化部署JMeter
- Apache SeaTunnel k8s 叢集模式 Zeta 引擎部署指南ApacheK8S模式
- 【趙強老師】使用kubeadmin部署K8s叢集K8S
- 日誌分析系統 - k8s部署ElasticSearch叢集K8SElasticsearch
- 刪除k8s叢集K8S
- python管理k8s叢集PythonK8S
- 多k8s叢集管理K8S
- k8s之叢集管理K8S
- 極簡的配置單節點Kubernetes(k8s)叢集K8S
- 在kubernetes 叢集內訪問k8s API服務K8SAPI
- 使用docker部署hadoop叢集DockerHadoop