心地よいライフハック

これ便利だな〜と思ったことを書き溜めていければと思います。

Kubernetes を CentOS 7 で とりあえず始めてみるには

Kubernetes をインストール して、pod を生成し、
とりあえずコンテナを動作させるまでの手順 ( CentOS7.3 )
 
一旦 Kubernetes を動かしてから、勉強を始める人 用です。
 
( 動作環境 )
仮想OS - CentOS 7.3
 
( ゴール )
nginx コンテナ の 起動確認
 
- - -
 
! 注意点 !
 
# で始めるコマンド文は、root権限 で実行
$ で始めるコマンド文は、ユーザー権限 で実行
 
このユーザーは、 kubectl など Kubernetes関連のコマンドが一通り問題なく使える状態にしておいてください。
 
- -
 
1. Kubernetes の 構成を知る。
ref.
 
2. マスターを作成する。
ref.
 
3. ノード を作成する。
ref.
 
 
で これだけだとつまずく、 pull できないエラー
CentOS7 の環境によっては、nginx を pull できません。 
 
podを作って、ContainerCreating のまま進まず、以下のようなエラーが。
 

Error syncing pod, skipping: failed to "StartContainer" for "POD" with ErrImagePull: "image pull failed for registry.access.redhat.com/rhel7/pod-infrastructure:latest, this may be because there are no credentials on this request.  details: (open /etc/docker/certs.d/registry.access.redhat.com/redhat-ca.crt: no such file or directory)"

 

/etc/docker/certs.d/registry.access.redhat.com/redhat-ca.crt 
っていうリンクはあるが、実体はない。
 
Redhat Docker イメージレジストリ にアクセスするために必要な、
  Root証明書の取得
 
ref. Redhat 公式
 
  # yum install -y python-rhsm
 
  # ls -la /etc/docker/certs.d/registry.access.redhat.com/redhat-ca.crt
  lrwxrwxrwx. 1 root root 27 12月  7 23:52 /etc/docker/certs.d/registry.access.redhat.com/redhat-ca.crt -> /etc/rhsm/ca/redhat-uep.pem
 
-> Root証明書( redhat-uep.pem )が格納されたことを確認
 
○ 任意のディレクトリに yaml ファイルを作る。
 
  $ mkdir k8sYaml
  $ cd k8sYaml
 
  $ touch test-nginx.yaml
  $ vi test-nginx.yaml
 
yaml ファイルを作る
 
ref.
 
- - -  以下1行目から  - - - 
  apiVersion: v1
  kind: Pod
  metadata:
    name: nginx-pod-test
  spec:
    containers:
      - name: nginx-container
        image: docker.io/nginx
        ports:
        - containerPort: 80

 

- - -  以上  - - - 
 
 
上記ファイルを使って、pod / コンテナ を生成
 
  $ kubectl create -f test-nginx.yaml
  pod "nginx-pod-test" created
 
○ pod の動作状況確認
 
  $ kubectl get pod
  NAME             READY     STATUS    RESTARTS   AGE
  nginx-pod-test   1/1       Running   0          9m
 
-> READY 1/1 となり、動作している模様
 
○ 動作している IPアドレスの確認
 
  $ kubectl describe pod nginx-pod-test | grep IP:
  IP:   172.17.38.2
 
  ( 今回の生成したコンテナが、 172.17.38.2 だった一例 )
 
○ nginx の動作確認
 
  1. ping が通ります。
 
    $ ping 172.17.38.2
 
    64 bytes from 172.17.38.2: icmp_seq=1 ttl=64 time=0.087 ms
    64 bytes from 172.17.38.2: icmp_seq=1 ttl=64 time=0.089 ms
 
  2. curl コマンドで、 "Welcome to nginx!" と返ってくるのか確認
 
 
 
 
"Welcome to nginx!"
など HTML文 一式が 返ってくれば、OK です。
 
 
 
 
もっとKubernetesが簡単に使えるようになるといいな( ˘ω˘ )
- - -
 
(追記)
以下コマンドで消せます。
$ kubectl delete -f test-nginx.yaml
 
 
#k8s #Kubernetes #centos7 #Root証明書 #docker