この記事を読む前に、次のようないくつかの基本的な概念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にコードを更新することができるようになります。これは私の次の章で行うための簡単な紹介です。