ページの先頭行へ戻る
Enterprise Service Development Platform V1.2.0 入門ガイド
FUJITSU Software

5.1 Podの作成(起動)

Podの作成(起動)は、Kubernetesにコンテナを配備することで行います。

●kubectlコマンドによる配備

  1. Kubernetes masterサーバーにログインします。
  2. 以下のマニフェストをdeployments.ymlに設定します。設定内容の詳細については、Deploymentのドキュメントを参照してください。
    • Deployment: 配備するコンテナの情報(Dockerイメージ、個数、スペックなど)

    ■deployments.ymlの設定例(Nginxのコンテナを3つ配備する場合)

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: nginx-deployment
      labels:
        app: nginx
    spec:
      replicas: 3
      selector:
        matchLabels:
          app: nginx
      template:
        metadata:
          labels:
            app: nginx
        spec:
          containers:
          - name: nginx
            image: nginx:1.7.9
            ports:
            - containerPort: 80
  3. 以下のマニフェストをservice.ymlに設定します。設定内容の詳細については、Serviceのドキュメントを参照してください。
    • Service: 払い出したコンテナの公開設定(パスやポート)

    ■service.ymlの設定例(Kubernetesクラスタ外から30036でアクセスする場合)

    kind: Service
    apiVersion: v1
    metadata:
      name: my-service
    spec:
      type: NodePort
      ports:
      - name: http
        port: 80
        targetPort: 80
        nodePort: 30036
        protocol: TCP
      selector:
        app: nginx  
  4. 以下のコマンドを実行します。

    なお、"--namespace"オプションを指定することで配備する名前空間を指定することが可能です。名前空間"kube-system"と"fj-esdp-system"は、製品が予約している名前空間のため、この名前空間には配備しないでください。

    $ kubectl apply -f deployments.yml
    $ kubectl apply -f service.yml

●GitLab Container RegistryからDockerイメージをプルする方法による配備

  1. Kubernetes masterサーバーにログインします。
  2. 認証情報(Secrets)を作成します。 Kubernetesには、Secretsと呼ばれるパスワードや鍵など秘匿性の高いデータをPodからだけ利用できる仕組みがあります。 GitLab Container RegistryからDockerイメージをプルする際には、認証が必要であるため、Secretsを作成します。 Secretsについては、Kubernetes Secretsドキュメントを参照してください。
  3. 以下のコマンドを実行します。

    $ kubectl create secret docker-registry <secret名> \
    --docker-server=<GitLab Container Registryの接続先:30020> \
    --docker-username=<製品利用者のGitLabのID> \
    --docker-password=<製品利用者のGitLabのパスワード> \
    --docker-email=<製品利用者のGitLabに登録されたE-mailアドレス>

    <GitLab Container Registryの接続先:30020>については「操作ガイド」-「CI Managementの各サービスへのアクセス先」を参照してください。

  4. 作成したsecret名をKubernetesに配備するアプリケーションで指定します。

    ・Kubernetesのマニフェストを利用する場合

    1) Podを配備するマニフェストを記載します。 以下の例のようにspec.imagePullSecrets.nameに作成した<secret名>を記載します。

    apiVersion: v1
    kind: Pod
    metadata:
      name: foo
    spec:
      containers:
        - name: foo
          image: <GitLab Container Registryの接続先:30020>sample/sampleapp:v1
      imagePullSecrets:
        - name: <secret名>

    2) kubectlコマンドによる配備を行い、Dockerイメージがプルされることを確認します。

    Podの状態が「ImagePullBackOff」の場合は、Dockerイメージのプルが失敗しています。対象Dockerイメージが存在するか、または認証情報に誤りがないかを確認してください。

    imageに指定されているイメージ名は適宜、GitLab Container Registryに格納されているイメージの格納先に読み替えて実施してください。

    また、GitLab Container Registryからイメージを取得するためには、コンテナが配備されるKubernetes masterサーバーまたはnodeサーバーでGitLab Container Registryの名前解決ができる必要があります。

●Podのデータを永続化する

Podのデータは、Podを削除すると消失します。Podのデータを永続化する場合は、コンテナ用永続ストレージを使用する必要があります。

コンテナ用永続ストレージの利用方法を参照してください。