使用kk在centos7上離線部署kubesphere v3.0.0詳解


環境准備
以三台centos 7.7 64bit 為例:

確保所有機器已經安裝所需依賴軟件(sudo curl openssl ebtables socat ipset conntrack docker),離線環境下可使用私有源或者rpm包(centos類OS)或deb包(debian類OS)安裝。

具體環境要求參見:https://github.com/kubesphere/kubekey/tree/release-1.0#requirements-and-recommendations

建議:可將安裝了所有依賴軟件的操作系統制作成系統鏡像使用,避免每台機器都安裝依賴軟件,即可提升交付部署效率,又可避免依賴問題的發生。

如已有k8s集群,可將kubesphere相關鏡像導入倉庫之后使用ks-installer部署: https://github.com/kubesphere/ks-installer/tree/release-3.0

鏡像倉庫
可使用harbor或其他第三方鏡像倉庫。

如需快速部署自簽名鏡像倉庫可參考:https://kubesphere.com.cn/forum/d/2240-docker-registry

安裝包下載:
提示:由於包含所有組件鏡像,該壓縮包較大,如果網絡不佳,可能會導致下載耗時較長。也可根據文檔中的鏡像列表將相關鏡像導入私有鏡像倉庫中后使用kubekey自行安裝。

# md5: 65e9a1158a682412faa1166c0cf06772
curl -Ok https://kubesphere-installer.pek3b.qingstor.com/offline/v3.0.0/kubesphere-all-v3.0.0-offline-linux-amd64.tar.gz

安裝步驟:

  1. 創建集群配置文件
    安裝包解壓后進入kubesphere-all-v3.0.0-offline-linux-amd64

./kk create config --with-kubesphere v3.0.0

修改生成的配置文件config-sample.yaml,也可使用-f參數自定義配置文件路徑。kk詳細用法可參考:https://github.com/kubesphere/kubekey

注意填寫正確的私有倉庫地址privateRegistry(如已准備好私有倉庫可設置為已有倉庫地址,若計划使用kubekey創建私有倉庫,則該參數設置為:dockerhub.kubekey.local)

apiVersion: kubekey.kubesphere.io/v1alpha1
kind: Cluster
metadata:
  name: sample
spec:
  hosts:
  - {name: node1, address: 192.168.6.17, internalAddress: 192.168.6.17, password: Qcloud@123}
  - {name: node2, address: 192.168.6.18, internalAddress: 192.168.6.18, password: Qcloud@123}
  - {name: node3, address: 192.168.6.19, internalAddress: 192.168.6.19, password: Qcloud@123}
  roleGroups:
    etcd:
    - node1
    master:
    - node1
    worker:
    - node1
    - node2
    - node3
  controlPlaneEndpoint:
    domain: lb.kubesphere.local
    address: ""
    port: "6443"
  kubernetes:
    version: v1.17.9
    imageRepo: kubesphere
    clusterName: cluster.local
  network:
    plugin: calico
    kubePodsCIDR: 10.233.64.0/18
    kubeServiceCIDR: 10.233.0.0/18
  registry:
    registryMirrors: []
    insecureRegistries: []
    privateRegistry: dockerhub.kubekey.local
  addons: []

---
apiVersion: installer.kubesphere.io/v1alpha1
kind: ClusterConfiguration
metadata:
  name: ks-installer
  namespace: kubesphere-system
  labels:
    version: v3.0.0
spec:
  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
  1. 環境初始化 (可選)
    若已安裝相關依賴,並且已經准備好鏡像倉庫,可略過該步驟。 (為避免依賴問題的產生,建議提前安裝相關依賴或使用已安裝相關依賴的系統鏡像執行安裝)

注意:如需使用kk創建自簽名鏡像倉庫,則會在當前機器啟動docker registry服務,請確保當前機器存在registry:2,如沒有,可從kubesphere-images-v3.0.0/registry.tar中導入,導入命令:docker load < registry.tar

注意:由kk啟動的鏡像倉庫端口為443,請確保所有機器均可訪問當前機器443端口。鏡像數據存儲到本地/mnt/registry (建議單獨掛盤)。

dependencies目錄中僅提供了ubuntu16.04 (ubuntu-16.04-amd64-debs.tar.gz)、ubuntu18.04 (ubuntu-18.04-amd64-debs.tar.gz)以及centos7 (centos-7-amd64-rpms.tar.gz)的相關依賴包,其它操作系統可自行制作rpm或deb依賴包。打包規則為 ${releaseID}-${versionID}-${osArch}-${debs or rpms}.tar.gz

執行如下命令會對配置文件中所有節點安裝依賴:

./kk init os -f config-sample.yaml -s ./dependencies/

如需使用kk創建自簽名鏡像倉庫,可執行如下命令:

./kk init os -f config-sample.yaml -s ./dependencies/ --add-images-repo

  1. 導入鏡像

進入kubesphere-all-v3.0.0-offline-linux-amd64/kubesphere-images-v3.0.0

使用push-images.sh將鏡像導入之前准備的倉庫中:

腳本后鏡像倉庫地址請填寫真實倉庫地址

./push-images.sh dockerhub.kubekey.local

如需自行到入鏡像,可參考如下方法:
以kubesphere/kube-apiserver:v1.17.9為例

docker tag kubesphere/kube-apiserver:v1.17.9 dockerhub.kubesphere.local/kubesphere/kube-apiserver:v1.17.9

注意: retag鏡像時需要保留原始鏡像的namespace

部署
以上准備工作完成且再次檢查配置文件無誤后,執行安裝。

執行安裝

./kk create cluster -f config-sample.yaml


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM