K8s系列-KubeSphere
KubeSphere 介紹
KubeSphere是k8s控制檯,ubeSphere 目前提供了工作負載管理、微服務治理、DevOps 工程、Source to Image、多租戶管理、多維度監控、日誌查詢與收集、告警通知、服務與網路、應用管理、基礎設施管理、映象管理、應用配置金鑰管理等功能模組。
kubeSphere 幫我們把諸多雲原生功能集中在一起並提供了web介面。利用KubeSphere我們可以根據我們之前學習的 Jenkins docker k8s 搭建一套完整的私有云系統,極大的減少運維以及開發的工作量。具體的搭建思路我在下一節中給出,這一節我們先安裝並使用KubeSphere。
kubeSphere 安裝
為了簡化安裝,我們這裡使用的是KubeKey,KubeKey安裝k8s的最低配置要求是2核4G,低於這個配置使用KubeKey會安裝失敗。由於KubeKey會訪問github。所以需要保證你的主機能聯網。我們本地實驗的方式可以使用前文提到過的vagrant搭建虛擬機器叢集。然後在vagrant中安裝。也可以在雲上上實驗,雲上實驗採用按量計費的方式,阿里雲收費如下,網路頻寬另計費

騰訊雲的:

騰訊雲的伺服器要便宜很多,而且阿里雲要使用按量計費需要餘額大於100 元,騰訊雲沒有這個限制,不過兩家都支援餘額提現。做雲實驗的話我建議使用騰訊雲的按量計費伺服器,100塊錢能玩很久(它的物件儲存也只要幾毛錢一個月)。阿里雲和騰訊雲都推出了輕量級雲伺服器,比普通雲伺服器便宜很多,這種伺服器是你用多少給你分配多少,比如我買了2核4g的伺服器,如果我只用了1核1g,那剩餘的資源就會被系統分配出去。這種伺服器做實驗體驗不是很好,所以沒考慮,感興趣的小夥伴可以試試這種伺服器。為了偷個懶,這次我們實驗就是在騰訊雲上進行(主要是本地機器網路不太好)。執行命令:
export KKZONE=cn
curl -sfL https://get-kk.kubesphere.io | VERSION=v2.2.2 sh -
複製

為 kk 新增可執行許可權,並初始化本地主機:
chmod +x kk
./kk init os
複製

接下來我們生成一個配置檔案來安裝k8s和kubeSphere
./kk create config [--with-kubernetes version] [--with-kubesphere version] [(-f | --file) path]
複製
示例:
## 使用預設配置建立示例配置檔案
./kk create config
## 指定要安裝的 KubeSphere 版本
./kk create config --with-kubesphere v3.3.0
./kk create config --with-kubernetes v1.22.10 --with-kubesphere v3.3.0
複製

這裡建議指定版本號,因為有的機器會不支援安裝高版本kubeSphere,指定版本生成配置檔案會有對應提示。

config-sample.yaml示例:
apiVersion: kubekey.kubesphere.io/v1alpha2
kind: Cluster
metadata:
name: sample
spec:
hosts:
- {name: node1, address: 192.168.221.128, internalAddress: 192.168.221.128, user: root, password: "root"}
roleGroups:
etcd:
- node1
control-plane:
- node1
worker:
- node1
controlPlaneEndpoint:
## Internal loadbalancer for apiservers
# internalLoadbalancer: haproxy
domain: lb.kubesphere.local
address: ""
port: 6443
kubernetes:
version: v1.18.6
clusterName: cluster.local
network:
plugin: calico
kubePodsCIDR: 10.233.64.0/18
kubeServiceCIDR: 10.233.0.0/18
## multus support. https://github.com/k8snetworkplumbingwg/multus-cni
multusCNI:
enabled: false
registry:
plainHTTP: false
privateRegistry: ""
namespaceOverride: ""
registryMirrors: []
insecureRegistries: []
addons: []
---
apiVersion: installer.kubesphere.io/v1alpha1
kind: ClusterConfiguration
metadata:
name: ks-installer
namespace: kubesphere-system
labels:
version: v3.0.0
spec:
zone: ""
local_registry: ""
persistence:
storageClass: ""
authentication:
jwtSecret: ""
etcd:
monitoring: true
endpointIps: localhost
port: 2379
tlsEnable: true
common:
es:
elasticsearchDataVolumeSize: 20Gi
elasticsearchMasterVolumeSize: 4Gi
elkPrefix: logstash
logMaxAge: 7
mysqlVolumeSize: 20Gi
minioVolumeSize: 20Gi
etcdVolumeSize: 20Gi
openldapVolumeSize: 2Gi
redisVolumSize: 2Gi
console:
enableMultiLogin: false # enable/disable multi login
port: 30880
alerting:
enabled: false
auditing:
enabled: false
devops:
enabled: false
jenkinsMemoryLim: 2Gi
jenkinsMemoryReq: 1500Mi
jenkinsVolumeSize: 8Gi
jenkinsJavaOpts_Xms: 512m
jenkinsJavaOpts_Xmx: 512m
jenkinsJavaOpts_MaxRAM: 2g
events:
enabled: false
ruler:
enabled: true
replicas: 2
logging:
enabled: false
logsidecarReplicas: 2
metrics_server:
enabled: true
monitoring:
prometheusMemoryRequest: 400Mi
prometheusVolumeSize: 20Gi
multicluster:
clusterRole: none # host | member | none
networkpolicy:
enabled: false
notification:
enabled: false
openpitrix:
enabled: false
servicemesh:
enabled: false
複製
安裝前配置:
## 指定伺服器hostname
hostnamectl set-hostname master
## 關閉防火牆:
systemctl disable firewalld
## 關閉selinux: (臨時關閉 setenforce 0)
sed -i 's/enforcing/disabled/' /etc/selinux/config
## 關閉swap(臨時關閉swapoff -a)
sed -ri 's/.*swap.*/#&/' /etc/fstab
## 同步時間
yum install ntpdate -y
ntpdate time.windows.com
複製
執行命令建立叢集:
./kk create cluster -f config-sample.yaml
## 或者直接單機安裝
./kk create cluster --with-kubesphere v3.0.0
複製

安裝過程比較耗時,中途可能出現安裝失敗的情況,可以使用該命令解除安裝再進行重灌:
./kk delete cluster
複製
安裝成功後會有如下日誌:安裝完成後執行指令:
kubectl get pod -A
複製

根據日誌訪問網頁:


kubekey 指令
- 新增節點
kk add nodes -f config-sample.yaml
- 刪除節點
kk delete node-f config-sample.yaml
- 刪除叢集
kk delete cluster kk delete cluster [-f config-sample.yaml]
- 叢集升級
kk upgrade [--with-kubernetes version] [--with-kubesphere version] kk upgrade [--with-kubernetes version] [--with-kubesphere version] [(-f | --file) path]
kubesphere 功能介紹
1)Kubernetes 資源管理 支援工作負載管理、映象管理、服務與應用路由管理 (服務發現)、金鑰配置管理等

2)微服務治理
- 支援熔斷、灰度釋出、流量管控、限流、鏈路追蹤、智慧路由等完善的微服務治理功能,同時,支援程式碼無侵入的微服務治理

3)DevOps 基於 Jenkins 的視覺化 CI / CD 流水線,支援從倉庫 (GitHub / SVN / Git)、程式碼編譯、映象製作、映象安全、推送倉庫、版本釋出、到定時構建的端到端流水線設定

4)監控

5)應用管理與編排 使用開源的OpenPitrix提供應用商店和應用倉庫服務,提供應用全生命週期管理功能

結語
k8s系列在這一篇算是終結了,下一篇會寫普羅米修斯相關的文章,然後之後按照計劃就是寫我的 poseidon 專案了,目前對自己的要求就是一週一更新。
原文來源:公眾號【六個核彈】
文章轉自:https://cloud.tencent.com/developer/article/2198509
文章來自網路,如有侵權,將第一時間刪除內容。
- Skywalking分散式追蹤與監控:起始篇
- 如何使用 docker 搭建 hadoop 分散式叢集?
- 開源女神節——撕掉標籤,自由隨我
- 開源女神節——她說
- 大牛告訴你專案在Devops下如何測試!
- DataOps 不僅僅是資料的 DevOps!
- K8s——master擴容
- Skywalking分散式追蹤與監控:起始篇
- 這可能是最為詳細的Docker入門吐血總結
- 2023年 DevOps 七大趨勢
- k8s部署redis叢集
- DevOps20個常見問題
- Nexu私服安裝配置,IDEA打包上傳私服
- 鵝場分散式系統DevOps自動化測試實踐
- 【雲原生】持續整合和部署(Jenkins)
- k8s部署手冊-v04
- 保護 DevOps 的 5 個技巧
- CI/CD如何支撐運維自動化
- DevOps 如何幫助實現安全部署
- K8s系列-KubeSphere