ケプラーのクラウドプラットフォーム:9の依存関係をインストールする方法の例を解決

この記事では、依存ケプラーのクラウドプラットフォームをインストールする方法について説明します。

何Kplcloudこと?

kplcloudそれによりアプリケーションコンテナの時間のコストを削減、管理アプリケーション、アプリケーションコンテナの低減の程度に対する視覚インターフェースを介して、のPaaSの軽量Kubernetesに基づいています。

Kplcloud文字が2年近くに複数のチームで快適な富、などのためのサービス、安定した動作にされている必要があり、現在のプラットフォームは、本番環境でのアプリケーションの何百、約1,000のコンテナを走っています。

ケプラーのクラウドプラットフォーム:9の依存関係をインストールする方法の例を解決

、名前空間

ケプラーはKubernetesに新しいスペースを作成するために、独自の名前空間の下に独立に関連するサービスをお勧めします。次のコマンドを実行した空間を作成することができます

$ kubectl create namespace kpaas

または、次のコマンドを実行します。

$ kubectl apply -f install/kubernetes/namespace.yaml

第二に、永続的なストレージ構成

コンフィギュレーションの2.1永続ストレージ

あなたがあなた自身の永続化方式は改革プログラムを使用することはできませんがあればここでは、持続性のためのNFSの方法を使用しています。

$ kubectl apply -f install/kubernetes/storage/serviceaccount.yaml
$ kubectl apply -f install/kubernetes/storage/rbac.yaml
$ kubectl apply -f install/kubernetes/storage/provisioner.yaml
$ kubectl apply -f install/kubernetes/storage/stroageclass.yaml

2.2プロビジョニングを調整する必要があります

ご自身の環境にサービスアドレスとパスを転送します。

volumes:
- name: kpl-nfs-client-root
  nfs:
    server: 172.16.0.4
    path: "/home/data"
containers:
- name: kpl-nfs-client-provisioner
  image: quay.io/external_storage/nfs-client-provisioner:latest
  env:
    - name: PROVISIONER_NAME
      value: fuseim.pri/ifs
    - name: NFS_SERVER
      value: 172.16.0.4
    - name: NFS_PATH
      value: "/home/data"

ケプラーのクラウドプラットフォーム:9の依存関係をインストールする方法の例を解決

ケプラーのクラウドプラットフォーム:9の依存関係をインストールする方法の例を解決

第三に、シングルポイントの取り付けのRedis

証明するために皆を容易にするために、Redisのもkubernetesクラスタ上に展開ドッキングウィンドウのバージョンを使用し、実世界では、スタンドアロンサーバまたはクラスタのRedisを使います

あなたは、永続ストレージ・クラス・メモリはRedisのサービスをインストールするように設定永続ストアを初期化しない場合。

3.1インストール

$ kubectl apply -f install/kubernetes/redis/statefulset.yaml
$ kubectl apply -f install/kubernetes/redis/service.yaml
$ kubectl apply -f install/kubernetes/redis/configmap.yaml

内部statefulset.yamlのconfigmapに書かれたRedisの構成情報

公式Redisのデフォルト/データディレクトリを存在するので、私たちは/ dataディレクトリに永続的なストレージ構成をターゲットにする必要があります。

第四に、インストール領事クラスタ

あなたが別のクラスタ領事領事を持っているか、それを使用したくない場合は、次のコマンドを実行する必要はありません。次のコマンドは、永続ストレージに先立って存在しなければならないことをごkubernetesクラスタ前提に領事クラスタのドッキングウィンドウのバージョンをインストールします。

あなたは、永続ストア、永続的なストレージ構成されたストレージクラスを初期化して、領事クラスタをインストールしない場合。

4.1インストール

$ kubectl apply -f install/kubernetes/consul/configmap.yaml
$ kubectl apply -f install/kubernetes/consul/service.yaml
$ kubectl apply -f install/kubernetes/consul/statefulset.yaml
$ kubectl apply -f install/kubernetes/consul/ingress.yaml

私たちは、あなたがすでにうまくストレージクラスパッケージに変更storageClassNameます、永続ストレージ・クラスを持っている場合は、クラスタを展開することであるStatefulSetの方法を使用していました。

ケプラーのクラウドプラットフォーム:9の依存関係をインストールする方法の例を解決

外部アクセスのエントリを提供しingress.yaml

configmap.yaml領事クラスタサーバの設定ファイル

4.2ノート

これは、あなたが単一のポイントをkubernetes場合は、次のコードをコメントアウトされて使用し、見てする必要があるかもしれ親和性の問題をkubernetes。いいえサービスは、会議で開始することはできません。

      affinity:
        podAntiAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
            - labelSelector:
                matchLabels:
                  app: consul
                  component: server
              topologyKey: kubernetes.io/hostname
#          # 单节点用这个
#          preferredDuringSchedulingIgnoredDuringExecution:
#            - wight: 100
#              podAffinityTerm:
#                topologyKey: kubernetes.io/hostname

第五に、RabbitMQのサービスをインストールします

証明するために皆を容易にするために、RabbitMQのもkubernetesクラスタ上に展開ドッキングウィンドウのバージョンを使用し、実世界では、スタンドアロンサーバーのRabbitMQを使用します

あなたは、永続ストレージ・クラス・メモリはRabbitMQのサービスをインストールするように設定永続ストアを初期化しない場合。

5.1インストール

$ kubectl apply -f install/kubernetes/rabbitmq/statefulset.yaml
$ kubectl apply -f install/kubernetes/rabbitmq/service.yaml

ステートフル・サービス:statefulset.yaml入り口:ingress.yaml

kpassは中のRabbitMQを作成する必要があります。

  • バーチャルホスト:kplcloud
  • 交流:kplcloud交換
  • ユーザー:kplcloud
  • RoutingKey:kplcloud

ケプラーのクラウドプラットフォーム:9の依存関係をインストールする方法の例を解決

6、インストールMySQLサービス

6.1 MySQLの

証明するために皆を容易にするために、mysqlはまたkubernetesクラスタ上に展開ドッキングウィンドウのバージョンを使用し、実世界では、別のMySQLサーバーを使用します

あなたは、永続ストレージ・クラス・メモリはMySQLサービスをインストールするように設定永続ストアを初期化しない場合。

6.2インストール

$ kubectl apply -f install/kubernetes/mysql/statefulset.yaml
$ kubectl apply -f install/kubernetes/mysql/service.yaml
  • MYSQL_ROOT_PASSWORD:MySQLユーザ名
  • MYSQL_ROOT_PASSWORD:MySQLのパスワード

statefulset.yaml

このプロジェクトは、データベースを作成する必要があります。kplcloud

七、インストールELK

Logstash、ESは比較的高いと機械を尋ね、ログ解析を担当する分別収集ELKクラスタを使用することをお勧めします

あなたはヘラジカのドッカーバージョンを使用し、それが初期出荷永続ストレージがない場合は、Kubernetesクラスタにデプロイする必要がある場合は、永続的なストレージサービスをインストールするには、ストアクラス関連サービスに構成された永続ストアを初期化します。

ELK主Elasticsearch、Logstash、Kibanaいくつかのサービス、kibanaとlogstashは展開を行うことができます構成されたログデータは、ESに存在するため、フル-ESは、永続性を必要とします。

$ kubectl apply -f install/kubernetes/elk/elasticsearch.yaml
$ kubectl apply -f install/kubernetes/elk/logstash.yaml
$ kubectl apply -f install/kubernetes/elk/kibana.yaml
$ kubectl apply -f install/kubernetes/elk/ingress.yaml

八、インストールハーバー

ミラー倉庫は、クラスタ内のkubernetes上で実行していない、ドッカー取り付け構造のため、大容量のサーバーを探して、実行することはできませんようです。

:インストールを開始し、公式の説明チェックしてみてくださいhttps://github.com/goharbor/harbor/blob/master/docs/installation_guide.mdを

8.1インストール

ハーバーは、プロキシのダウンロードを追加してくださいされていない場合、私はオフライン処理の下にあったインストールファイルを、ダウンロードしてください

$ https://storage.googleapis.com/harbor-releases/release-1.8.0/harbor-offline-installer-v1.8.1.tgz

8.2解凍

$ tar -zxvf harbor-offline-installer-v1.8.1.tgz

8.3コンフィギュレーションファイルharbor.conf港

## Configuration file of Harbor

# hostname设置访问地址,可以使用ip、域名,不可以设置为127.0.0.1或localhost
hostname = hub.kpaas.nsini.com

# 访问协议,默认是http,也可以设置https,如果设置https,则nginx ssl需要设置on
ui_url_protocol = http

# mysql数据库root用户默认密码root123,实际使用时修改下
db_password = root123

max_job_workers = 3 
customize_crt = on
ssl_cert = /data/cert/server.crt
ssl_cert_key = /data/cert/server.key
secretkey_path = /data
admiral_url = NA

# 邮件设置,发送重置密码邮件时使用
email_identity = 
email_server = smtp.mydomain.com
email_server_port = 25
email_username = [email protected]
email_password = abc
email_from = admin <[email protected]>
email_ssl = false

# 启动Harbor后,管理员UI登录的密码,默认是Harbor12345
harbor_admin_password = Harbor12345

# 认证方式,这里支持多种认证方式,如LADP、本次存储、数据库认证。默认是db_auth,mysql数据库认证
auth_mode = db_auth

# LDAP认证时配置项
#ldap_url = ldaps://ldap.mydomain.com
#ldap_searchdn = uid=searchuser,ou=people,dc=mydomain,dc=com
#ldap_search_pwd = password
#ldap_basedn = ou=people,dc=mydomain,dc=com
#ldap_filter = (objectClass=person)
#ldap_uid = uid 
#ldap_scope = 3 
#ldap_timeout = 5

# 是否开启自注册
self_registration = on

# Token有效时间,默认30分钟
token_expiration = 30

# 用户创建项目权限控制,默认是everyone(所有人),也可以设置为adminonly(只能管理员)
project_creation_restriction = everyone

verify_remote_cert = on

8.4スタート・ハーバー、直接./install.shを実行するか、ドッキングウィンドウ・作曲をすることができます

$ ./install.sh
$ docker-compose start

九、プロメテウスのインストール

あなたが最初の出荷永続ストレージを持っていない場合は、永続的なストレージサービスをインストールするために、クラス関連サービスを格納するように構成された永続ストアを初期化します。

プロメテウスは、永続ストアをマウントする必要があり、ローカルデータの存在が必要になります。

$ kubectl apply -f install/kubernetes/prometheus/deployment.yaml
$ kubectl apply -f install/kubernetes/prometheus/ingress.yaml
$ kubectl apply -f install/kubernetes/prometheus/configmap.yaml
$ kubectl apply -f install/kubernetes/prometheus/serviceaccount.yaml
$ kubectl apply -f install/kubernetes/prometheus/service.yaml
$ kubectl apply -f install/kubernetes/prometheus/persistentvolumeclaim.yaml

9.1コンフィギュレーション

configmap.yamlファイルには、5つのファイルがあります。

  • etcd3.rules.yml
  • KUBE-状態metrics_rules.yml
  • kubelet_rule.yml
  • kubernetes_rule.yml
  • prometheus.yml

プロメテウス年間で4つのファイルの上に引用しました。あなたは新しいルールを持っている場合は、ここで追加することができます。

使用したい場合は、その後のAlertManagerのAlertManagerのインストールを参照してください、あなたはあなた自身のアラーム管理プラットフォームを持っている場合、9093ライン上のアドレスを変更します。そこは、現在prometheus.ymlファイルのデフォルト思春期ののAlertManagerを警告するように構成されています。

テン、インストール構成のAlertManager

AlertManagerは、主にプロメテウスからアラートデータを受信し、

10.1インストール

ドッカーを使用せずに独立して設置することができ、次の場合はkubernetesのクラスタにデプロイされています。

$ kubectl apply -f install/kubernetes/alertmanager/deployment.yaml
$ kubectl apply -f install/kubernetes/alertmanager/ingress.yaml
$ kubectl apply -f install/kubernetes/alertmanager/configmap.yaml
$ kubectl apply -f install/kubernetes/alertmanager/service.yaml

10.2設定

ここで使用するウェブフックがインターネットkplcloudにアラーム情報を送信することを意味し、kplcloudは、データ処理組み込まRabbitMQのを受けました。

apiVersion: v1
data:
  config.yml: |-
    global:

    route:
      group_by: ['alertname', 'cluster', 'service']
      group_wait: 30s
      group_interval: 5m
      repeat_interval: 10m
      receiver: webhook

    receivers:
    - name: 'webhook'
      webhook_configs:
      - url: 'http://kplcloud:8080/public/prometheus/alerts'
kind: ConfigMap
metadata:
  name: alertmanager

Kplcloud最終的なデータは、適切なルールに従って処理され、ユーザはそれぞれのプラットフォームを押します。

ケプラーのクラウドプラットフォーム:9の依存関係をインストールする方法の例を解決

XIのインストールkpaas

$ git clone github.com/kplcloud/kplcloud.git

11.1ドッカー

$ docker pull kplcloud/kplcloud:latest

11.2 kubernetes

基本サービスのインストール:install.md

あなたは他のサービスが用意されている場合は、直接kubernetesにケプラーのクラウドプラットフォームをデプロイするには、次のコマンドを実行することができます。

$ kubectl apply -f install/kubernetes/kpaas/configmap.yaml
$ kubectl apply -f install/kubernetes/kpaas/deployment.yaml
$ kubectl apply -f install/kubernetes/kpaas/service.yaml
$ kubectl apply -f install/kubernetes/kpaas/ingress.yaml

あなたは民間の倉庫を持っている場合は、マスターノード上でそれを実行することを忘れないでください:

$ kubectl create secret generic regcred --from-file=.dockerconfigjson=/root/.docker/config.json --type=kubernetes.io/dockerconfigjson -n default

K8Sはミラー民間倉庫を引っ張っする権限を持っているように、各名前空間の下に、それを作成し、

展開imagePullSecretsは、追加する必要があります。

imagePullSecrets:
- name: regcred

オープンソースアドレス:

著者:楽しいJinke -富テクノロジー-イノベーションチーム
出典:テクノロジーのCreditEase研究所

おすすめ

転載: blog.51cto.com/14159827/2447064