欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

K8ssandra入門教程之Linux上部署K8ssandra到Kubernetes的過程

 更新時(shí)間:2021年10月04日 10:09:04   作者:南瓜慢說官方網(wǎng)站  
K8ssandra不僅幫助我們可以快速可靠地在Kubernetes上部署Cassandra,同時(shí)提供了許多組件,如監(jiān)控、備份、同步、訪問等,這篇文章給大家介紹K8ssandra入門教程之Linux上部署K8ssandra到Kubernetes的過程,一起看看吧

1 什么是K8ssandra

Cassandra是一款非常優(yōu)秀的開源的分布式NoSQL數(shù)據(jù)庫,被許多優(yōu)秀的大公司采用,具有高可用、彈性擴(kuò)展、性能好等特點(diǎn)。

正應(yīng)Cassandra的優(yōu)勢(shì),我們經(jīng)常需要在云上服務(wù)使用,則需要部署Cassandra到K8s上,這就有了K8ssandra。K8ssandra不僅幫助我們可以快速可靠地在Kubernetes上部署Cassandra,同時(shí)提供了許多組件,如監(jiān)控、備份、同步、訪問等。而這些都是一個(gè)Production-Ready的產(chǎn)品不可或缺的。

K8ssandra的組件架構(gòu)圖如下:

  • Cass-operator:保證整個(gè)集群正常運(yùn)行;
  • Reaper:保證一致性的同步工具;
  • Medusa:數(shù)據(jù)備份工具,支持S3、GCP Cloud Storage等;
  • Stargate:對(duì)數(shù)據(jù)訪問提供API;
  • Prometheus+Grafana:云原生的常用監(jiān)控組件。

2 安裝K8ssandra

2.1 安裝Kubenetes

如何在Ubuntu上搭建Kubernetes,在文章《VirtualBox+Ubuntu16搭建Kubernetes集群的實(shí)現(xiàn)》已經(jīng)有詳細(xì)的介紹,這里不再贅述。為了更好的兼容性,我們指定了Kubernetes的版本,命令如下:

minikube start --driver=none --kubernetes-version=v1.19.13

因?yàn)橐玫絇VC,我們創(chuàng)建一個(gè)StorageClass:

$ kubectl apply -f https://raw.githubusercontent.com/rancher/local-path-provisioner/master/deploy/local-path-storage.yaml

2.2 安裝helm3

我們需要使用Helm來部署K8ssandra,下載Helm3如下:

# 下載安裝包
curl -LO https://get.helm.sh/helm-v3.7.0-linux-amd64.tar.gz
# 解壓
tar -zxvf helm-v3.7.0-linux-amd64.tar.gz
# 移動(dòng)到bin目錄
mv linux-amd64/helm /usr/local/bin/helm

添加Helm的倉庫:

helm repo add k8ssandra https://helm.k8ssandra.io/stable

$ helm repo list
NAME            URL                             
k8ssandra       https://helm.k8ssandra.io/stable
traefik         https://helm.traefik.io/traefik 

查找一下K8ssandra相關(guān)的包:

$ helm search repo k8ssandra
NAME                            CHART VERSION   APP VERSION     DESCRIPTION                                       
k8ssandra/k8ssandra             1.3.1                           Provisions and configures an instance of the en...
k8ssandra/k8ssandra-common      0.28.4                          Helper library containing functions used by man...
k8ssandra/k8ssandra-operator    0.31.0          1.0.0           Kubernetes operator which handles the provision...
k8ssandra/backup                0.26.0                          Creates a CassandraBackup custom resource insta...
k8ssandra/cass-operator         0.31.0          1.8.0           Kubernetes operator which handles the provision...
k8ssandra/medusa-operator       0.30.1          0.1.0           Installs and configures the Medusa Operator for...
k8ssandra/reaper-operator       0.32.1          0.1.0           Configures and installs the Reaper Operator for...
k8ssandra/restore               0.27.1                          Creates a CassandraRestore custom resource inst...                       

我們安裝k8ssandra/k8ssandra就可以了。

2.3 用Helm安裝K8ssandra

Helm是一個(gè)Chart+Value的管理方式,我們準(zhǔn)備一個(gè)yaml文件(k8ssandra-values.yaml)來放一些變量:

cassandra:
  version: "4.0.0"
  cassandraLibDirVolume:
    storageClass: local-path
    size: 5Gi
  allowMultipleNodesPerWorker: true
  heap:
    size: 1G
    newGenSize: 1G
  resources:
    requests:
      cpu: 1000m
      memory: 2Gi
    limits:
      cpu: 1000m
      memory: 2Gi
  datacenters:
  - name: dc1
    size: 1
    racks:
    - name: default 
kube-prometheus-stack:
  grafana:
    adminUser: admin
    adminPassword: admin123 
stargate:
  enabled: true
  replicas: 1
  heapMB: 256
  cpuReqMillicores: 200
  cpuLimMillicores: 1000

安裝K8ssandra:

$ helm install -f k8ssandra-values.yaml k8ssandra k8ssandra/k8ssandra
NAME: k8ssandra
LAST DEPLOYED: Thu Sep 30 21:20:49 2021
NAMESPACE: default
STATUS: deployed
REVISION: 1

做一些必要的檢查如下:

$ helm list
NAME            NAMESPACE       REVISION        UPDATED                                 STATUS          CHART           APP VERSION
k8ssandra       default         1               2021-09-30 21:20:49.409672869 +0800 CST deployed        k8ssandra-1.3.1            

$ kubectl get cassandradatacenters
NAME   AGE
dc1    4m34s

$ kubectl describe CassandraDataCenter dc1 | grep "Cassandra Operator Progress:"
  Cassandra Operator Progress:  Ready

檢查一下Pod和Service:

獲取K8ssandra超級(jí)用戶的用戶名和密碼

$ kubectl get secret k8ssandra-superuser -o jsonpath="{.data.username}" | base64 --decode ; echo
k8ssandra-superuser

$ kubectl get secret k8ssandra-superuser -o jsonpath="{.data.password}" | base64 --decode ; echo
TNE5xOk45C1aQsj29qxw

2.4 增加節(jié)點(diǎn)

我們?yōu)榱烁呖捎煤腿萘?,?chuàng)建更多的Cassandra Node,直接修改k8ssandra-values.yaml如下:

cassandra:
  version: "4.0.0"
  cassandraLibDirVolume:
    storageClass: local-path
    size: 5Gi
  allowMultipleNodesPerWorker: true
  heap:
    size: 1G
    newGenSize: 1G
  resources:
    requests:
      cpu: 1000m
      memory: 2Gi
    limits:
      cpu: 1000m
      memory: 2Gi
  datacenters:
  - name: dc1
    size: 3
    racks:
    - name: racks1
    - name: racks2
    - name: racks3
kube-prometheus-stack:
  grafana:
    adminUser: admin
    adminPassword: admin123 
stargate:
  enabled: true
  replicas: 1
  heapMB: 256
  cpuReqMillicores: 200
  cpuLimMillicores: 1000

修改完之后,升級(jí)配置:

$ helm upgrade -f k8ssandra-values.yaml k8ssandra k8ssandra/k8ssandra
Release "k8ssandra" has been upgraded. Happy Helming!
NAME: k8ssandra
LAST DEPLOYED: Fri Oct  1 00:40:08 2021
NAMESPACE: default
STATUS: deployed
REVISION: 2

查看Kubernetes的相關(guān)資源:

3 查看監(jiān)控

我們對(duì)外暴露Grafana服務(wù)來看看:

kubectl expose deployment k8ssandra-grafana --type=NodePort --name=grafana-out

找到對(duì)應(yīng)的NodePort的端口30348,訪問:http://外網(wǎng)IP:30348

賬號(hào):admin/admin123

界面如下,提供良好的監(jiān)控界面:

4 總結(jié)

K8ssandra真是一個(gè)不錯(cuò)的開源項(xiàng)目,后續(xù)再介紹如何在開發(fā)中通過K8ssandra使用Cassandra吧。

代碼請(qǐng)查看:https://github.com/LarryDpk/pkslow-samples

Reference:

Apache Cassandra Operations in Kubernetes

K8ssandra Get Started

Install K8ssandra on GKE

K8ssandra Helm Chart

用Helm部署Kubernetes應(yīng)用,支持多環(huán)境部署與版本回滾

附:

使用到的鏡像:

root@k8ssandra:~# docker images | sort | grep -v REPOSITORY | grep -v k8s.gcr.io
alpine                                                   3.12.2            b14afc6dfb98   9 months ago    5.57MB
busybox                                                  1.33.1            16ea53ea7c65   2 weeks ago     1.24MB
busybox                                                  latest            16ea53ea7c65   2 weeks ago     1.24MB
datastax/cass-config-builder                             1.0.4             907e52ff2f78   4 months ago    354MB
gcr.io/k8s-minikube/storage-provisioner                  v5                6e38f40d628d   6 months ago    31.5MB
grafana/grafana                                          7.3.5             71716d95fc52   9 months ago    187MB
jettech/kube-webhook-certgen                             v1.5.0            344297e197b6   11 months ago   44.7MB
k8ssandra/cass-management-api                            3.11.10-v0.1.27   e88cc3a8ce75   2 months ago    877MB
k8ssandra/cass-management-api                            4.0.0-v0.1.28     59b9869dd160   7 weeks ago     726MB
k8ssandra/cass-operator                                  v1.7.1            dd57363b0794   4 months ago    49.4MB
k8ssandra/k8ssandra-tools                                latest            43e4bd91cf9b   42 hours ago    49MB
k8ssandra/reaper-operator                                v0.3.3            b4cb9084a5e5   2 months ago    45.9MB
k8ssandra/system-logger                                  9c4c3692          4dda0db106cb   4 months ago    5.66MB
kiwigrid/k8s-sidecar                                     1.1.0             f4bb3bf1ddc7   11 months ago   82MB
quay.io/prometheus-operator/prometheus-config-reloader   v0.44.0           73bc771f8028   10 months ago   13.4MB
quay.io/prometheus-operator/prometheus-operator          v0.44.0           f5ab8d7a1a64   10 months ago   42.6MB
quay.io/prometheus/prometheus                            v2.22.1           7cc97b58fb0e   10 months ago   168MB
rancher/local-path-provisioner                           v0.0.20           933989e1174c   2 months ago    35MB
stargateio/stargate-3_11                                 v1.0.29           c276fffd9964   3 months ago    537MB
stargateio/stargate-4_0                                  v1.0.29           be4bae3748e1   3 months ago    546MB
thelastpickle/cassandra-reaper                           2.3.1             8ad2c2784ead   2 months ago    418MB

到此這篇關(guān)于K8ssandra入門教程之Linux上部署K8ssandra到Kubernetes的過程的文章就介紹到這了,更多相關(guān)K8ssandra部署Kubernetes內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • vscode中使用Autoprefixer3.0無效的解決方法

    vscode中使用Autoprefixer3.0無效的解決方法

    這篇文章主要介紹了vscode中使用Autoprefixer3.0無效的解決方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06
  • 如何部署kubernetes-dashboard改成http免密登錄

    如何部署kubernetes-dashboard改成http免密登錄

    這篇文章主要介紹了如何部署kubernetes-dashboard改成http免密登錄,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2024-03-03
  • 一看就懂的IDEA編輯器 .http教程詳解

    一看就懂的IDEA編輯器 .http教程詳解

    這篇文章主要介紹了一看就懂的IDEA編輯器 .http教程詳解,本文以PHPStorm的ide作為例子的講解,需要的朋友可以參考下
    2020-11-11
  • 什么是RPC及RPC?和?HTTP?對(duì)比分析

    什么是RPC及RPC?和?HTTP?對(duì)比分析

    這篇文章主要介紹了什么是RPC及RPC?和?HTTP?對(duì)比分析,需要的朋友可以參考下
    2007-02-02
  • 支付寶小程序向用戶發(fā)紅包的實(shí)現(xiàn)方法

    支付寶小程序向用戶發(fā)紅包的實(shí)現(xiàn)方法

    這篇文章主要介紹了支付寶小程序向用戶發(fā)紅包的實(shí)現(xiàn)方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-11-11
  • 編程界主流腳本編程語言的比較和選擇

    編程界主流腳本編程語言的比較和選擇

    這篇文章主要介紹了編程界主流腳本編程語言的比較和選擇,本文分析了Unix/Linux Shell、Python/Jython、Ruby/JRuby、Perl、Groovy等腳本語言的優(yōu)缺點(diǎn),幫助您快速了解各大語言,需要的朋友可以參考下
    2015-05-05
  • IDEA取消git對(duì)項(xiàng)目的版本控制的實(shí)現(xiàn)

    IDEA取消git對(duì)項(xiàng)目的版本控制的實(shí)現(xiàn)

    取消Git版本控制可以簡(jiǎn)化代碼管理流程、減少學(xué)習(xí)成本、簡(jiǎn)化代碼庫管理、提高代碼安全性、加快構(gòu)建和部署速度,本文主要介紹了IDEA取消git對(duì)項(xiàng)目的版本控制的實(shí)現(xiàn),感興趣的可以了解一下
    2023-11-11
  • 使用ffmpeg 合并aac格式音頻文件的方法

    使用ffmpeg 合并aac格式音頻文件的方法

    FFmpeg是一套可以用來記錄、轉(zhuǎn)換數(shù)字音頻、視頻,并能將其轉(zhuǎn)化為流的開源計(jì)算機(jī)程序。這篇文章主要介紹了使用ffmpeg 合并aac格式音頻文件的方法,需要的朋友可以參考下
    2020-03-03
  • Matlab使用Plot函數(shù)實(shí)現(xiàn)數(shù)據(jù)動(dòng)態(tài)顯示方法總結(jié)

    Matlab使用Plot函數(shù)實(shí)現(xiàn)數(shù)據(jù)動(dòng)態(tài)顯示方法總結(jié)

    這篇文章主要介紹了Matlab使用Plot函數(shù)實(shí)現(xiàn)數(shù)據(jù)動(dòng)態(tài)顯示方法總結(jié),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02
  • Git分支管理策略

    Git分支管理策略

    這篇文章介紹了Git的分支管理策略,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-03-03

最新評(píng)論