高度な記事をkubernetes

免責事項:この記事はブロガーオリジナル記事ですが、許可ブロガーなく再生してはなりません。https://blog.csdn.net/u011510825/article/details/83036908

    この記事を読む前に、次のようないくつかの基本的な概念kubernetes、理解する必要がありますなどの展開、ポッド、サービスを、それを読むことをお勧めします基本を

 

そこ使用ドッキングウィンドウの学生は、コンフィギュレーション・ファイルを書き込むためにYAMLファイルで、ドッキングウィンドウ-コンを使用している必要があります。ここでは、設定ファイルのYAMLを書くために使用されている、いくつかの重要なパラメータのkubernetesを紹介し、最後にコンフィギュレーションを与え、どのようにサービスインスタンスを更新します。

apiVersion: apps/v1
# 版本
kind: Deployment
# kind中有Deployment、Service和Pod
metadata:
  name: application
# 元数据,主要用于定义名称和标签(label)
# 指定组成pod的实际对象,spec属性包括一些containers,storage,volumes,或者其他Kubernetes需要知道的参数,以及诸如是否在容器失败时重新启动容器的属性
spec:
  selector:
    matchLabels:
      app: application
  replicas: $REPLICAS
  # 副本数
  template:
    metadata:
      labels:
        app: application
    spec:
      containers:
      - image: registry-vpc.cn-hangzhou.aliyuncs.com/21epub/applicationstore:$TAG
        imagePullPolicy: Always
        name: applicationstore
        env:
        - name: DATE
          value: $DATE
        envFrom:
          - configMapRef:
              name: applicationstore
        livenessProbe:
          tcpSocket:
            port: 9090
          initialDelaySeconds: 15
          periodSeconds: 20          
      imagePullSecrets:
      - name: vpc-reg

私たちは、その後、コンフィギュレーションファイルによっては、配置を作成します

kubectl create -f application.yaml

ポッド故障箇所を作成します

YAMLは、コンテナが実行されている状態でなければ、あなたはYAML間違って、問題を見つけて、ファイルの内容を見る必要があり、ファイルを終えました。

kubectl describe pod application

ステップバイステップは、それをデバッグします。

コンテナを起動するためにYAMLファイルを書き込んだ後、YAMLは、そのようなテスト環境と本番環境のデータベースとして、あなたは環境の複数のセットがあるかもしれないので、いくつかのパラメータは、それぞれの環境の間で異なっているがある、設定ファイルを記述する必要が使用する必要がありますない同じ、あなたは複数のセットのconfigmapを記述する必要があります。

このような、これは、テスト環境であります

apiVersion: v1
kind: ConfigMap
metadata:
  name: application
  namespace: test
data:
  ZOO_SERVERS: zk-cs:2181
  DOCKER_ENV: test
  MYSQL_HOST: test.mysql.rds.aliyuncs.com

これは、本番環境であります

apiVersion: v1
kind: ConfigMap
metadata:
  name: application
  namespace: www
data:
  ZOO_SERVERS: zk-cs:2181
  DOCKER_ENV: www
  MYSQL_HOST: www.mysql.rds.aliyuncs.com

 

これらの準備が整った後まあ、我々はshスクリプトを記述する必要があり、それぞれが開始するために、ミラーを構築し、自動的に生成されたYAMLファイルを終了し、その後、効果パブリッシングアプリケーションに、新しいYAMLファイルを適用します。

これは一例です:

#!/bin/sh
DATE=$(date)
export DATE

NAMESPACE=$1
export NAMESPACE

if [ $NAMESPACE = "test" ]
then
    REPLICAS=1
    REPLICAS_EPUB360=1
    REPLICAS_CELERY=1
    TAG="develop"
    EPUB360_CPU_REQUEST="0.5"
    EPUB360_MEM_REQUEST="0.5Gi"
    ZK_NUM=1
fi


if [ $NAMESPACE = "www" ]
then
    REPLICAS=2
    REPLICAS_EPUB360=3
    REPLICAS_CELERY=2
    TAG=$3
    EPUB360_CPU_REQUEST="1"
    EPUB360_MEM_REQUEST="1.1Gi"
    ZK_NUM=3
fi

export REPLICAS
export TAG

# applicationstore 
APPNAME=$2

kubectl apply -f $NAMESPACE/configmap/
envsubst < common/$APPNAME.yaml | kubectl apply --namespace=$NAMESPACE -f -

呼び出されたときは、環境とサービス名を渡す(更新されたアプリケーションのテスト環境のアプリケーション)

sh /hooks/reload_app.sh test application
SHこのスクリプトは、このロボットを追加bearychat、実装に私たちを取るためにhubotロボットを使用することができ、その後、それぞれが自動的にbearychatにコードを更新することができるようになります。これは私の次の章で行うための簡単な紹介です。

おすすめ

転載: blog.csdn.net/u011510825/article/details/83036908