Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

1. クラウドネイティブは難しい… #15

Open
ISEglock17 opened this issue Aug 28, 2021 · 0 comments
Open

1. クラウドネイティブは難しい… #15

ISEglock17 opened this issue Aug 28, 2021 · 0 comments

Comments

@ISEglock17
Copy link
Collaborator

*概要*
この問題は前半フェーズと後半フェーズで別れています。 問題環境は共通のものを使用しますが、採点時は前半と後半で別に採点を行います。 よって、前半のみあるいは後半のみの提出の場合でも部分点を与える場合があります。

*前半フェイズ*
新入社員のCさんは研修でKubernetes on Openstackの環境を作るように上司のKさんから言われました。 Cさんはkubesprayを使用して、KubernetesをOpenstack上で展開しようとしましたが、うまく展開出来ないようです。 詳細には以下のようなエラーを吐いているようです。 まずは、Cさんを助けてあげてください!
TASK [kubernetes/preinstall : Update package management cache (APT)] ******************************************************* fatal: [node2]: FAILED! => {"changed": false, "msg": "Failed to update apt cache: unknown reason"} fatal: [node1]: FAILED! => {"changed": false, "msg": "Failed to update apt cache: unknown reason"}

*後半フェーズ*
Cさんの環境をうまく変更し、Kubernetesを展開することが出来ました。 その後、Kさんに報告して環境のチェックをして頂いたところ、特定の状況下で以下のようにpod間の疎通が取れないということがわかりました。 Cさんの代わりにパターンA・パターンBのどちらの場合でも疎通が取れるようにしてください。
//コンソール1 //コマンド以外の一部のログは省略してあります。 //以下の結果からnode1に展開したpod「shell1」のIPアドレスが10.233.96.3だということがわかる。 user@server01:~$ ssh -i ../.ssh/ictsc_rsa ubuntu@10.20.20.235 ubuntu@node1:~$ kubectl run shell1 -it --rm --image busybox -- sh --overrides='{ "apiVersion": "v1", "spec": { "nodename": "node1" } }' If you don't see a command prompt, try pressing enter. / # hostname -i 10.233.96.3 / #
//パターンA:別nodeにpodが展開された場合 //コンソール2 //コマンド以外の一部のログは省略してあります。 //pingコマンドの結果からnode1のpod「shell1」にnode2のpod「shell2」から疎通が取れないことがわかる ubuntu@node1:~$ kubectl run myshell2 -it --rm --image busybox -- sh --overrides='{ "apiVersion": "v1", "spec": { "nodename": "node2" } }' If you don't see a command prompt, try pressing enter. / # / # ping 10.233.96.3 PING 10.233.96.3 (10.233.96.3): 56 data bytes ^C --- 10.233.96.3 ping statistics --- packets transmitted, 0 packets received, 100% packet loss / #
//パターンB:同nodeにpodが展開された場合 //コンソール2 //コマンド以外の一部のログは省略してあります。 //pingコマンドの結果からnode1のpod「shell1」にnode1のpod「shell2」から疎通が取れることがわかる ubuntu@node1:~$ kubectl run myshell2 -it --rm --image busybox -- sh --overrides='{ "apiVersion": "v1", "spec": { "nodename": "node1" } }' If you don't see a command prompt, try pressing enter. / # ping 10.233.96.3 PING 10.233.96.3 (10.233.96.3): 56 data bytes 64 bytes from 10.233.96.3: seq=0 ttl=63 time=0.576 ms 64 bytes from 10.233.96.3: seq=1 ttl=63 time=0.429 ms ^C --- 10.233.96.3 ping statistics --- 2 packets transmitted, 2 packets received, 0% packet loss round-trip min/avg/max = 0.429/0.502/0.576 ms / #

*共通部分*
kubernetes
展開にはkubesprayを使用しようとしています。 実際に展開する際にもkubesprayを使用してください。 また、kubesprayを実行してKubernetesが展開できた場合は、VM「ictsc-master」にSSHで接続し、以下のコマンドを例としてkubectlが使用できるようにしてください。

user@server01:~$ ssh -i ../.ssh/ictsc_rsa ubuntu@[ictsc-masterのFloating IP] ubuntu@node1:~$ mkdir -p $HOME/.kube ubuntu@node1:~$ sudo cp /etc/kubernetes/admin.conf $HOME/.kube/config ubuntu@node1:~$ sudo chown $(id -u):$(id -g) $HOME/.kube/config ubuntu@node1:~$ export KUBECONFIG=$HOME/.kube/config

openstack
Openstack(mirostack)上に以下のようにVMが2台存在します。 2台ともstatusがSHUTOFFになっているため、server01の再起動時にはopenstack server start [vm名] で各VMを起動してください また、Dashboardの認証情報は以下のようになっています。
・username
 ・admin
・password
 ・QpqBUv1CrbkENSEPb5qE83cjTr7p59Hv
user@server01:~$ openstack server show ictsc-master +-------------------------------------+----------------------------------------------------------+ | Field | Value | +-------------------------------------+----------------------------------------------------------+ | OS-DCF:diskConfig | MANUAL | | OS-EXT-AZ:availability_zone | nova | | OS-EXT-SRV-ATTR:host | server01 | | OS-EXT-SRV-ATTR:hypervisor_hostname | server01 | | OS-EXT-SRV-ATTR:instance_name | instance-00000002 | | OS-EXT-STS:power_state | Shutdown | | OS-EXT-STS:task_state | None | | OS-EXT-STS:vm_state | stopped | | OS-SRV-USG:launched_at | 2021-08-07T06:11:32.000000 | | OS-SRV-USG:terminated_at | None | | accessIPv4 | | | accessIPv6 | | | addresses | test=192.168.222.222, 10.20.20.235 | | config_drive | | | created | 2021-08-07T06:11:21Z | | flavor | m1.master (4a78eb71-ec25-4dc8-8d97-1955f618b260) | | hostId | fc20b879f84666d87915b0907fa95a8c0cf72e8518942f8645b0ed45 | | id | 7022faff-f9eb-49c7-a38b-72f10cded511 | | image | ubuntu (23575e0a-b508-4610-b2aa-fe5707db9d0b) | | key_name | mykey | | name | ictsc-master | | project_id | 65081f8c8fac4442ba440d85c5861ae5 | | properties | | | security_groups | name='master' | | status | SHUTOFF | | updated | 2021-08-20T13:41:17Z | | user_id | f8f0af1a6abd458cace71a66b8062a16 | | volumes_attached | | +-------------------------------------+----------------------------------------------------------+ user@server01:~$ openstack server show ictsc-worker +-------------------------------------+----------------------------------------------------------+ | Field | Value | +-------------------------------------+----------------------------------------------------------+ | OS-DCF:diskConfig | MANUAL | | OS-EXT-AZ:availability_zone | nova | | OS-EXT-SRV-ATTR:host | server01 | | OS-EXT-SRV-ATTR:hypervisor_hostname | server01 | | OS-EXT-SRV-ATTR:instance_name | instance-00000001 | | OS-EXT-STS:power_state | Shutdown | | OS-EXT-STS:task_state | None | | OS-EXT-STS:vm_state | stopped | | OS-SRV-USG:launched_at | 2021-08-07T06:11:34.000000 | | OS-SRV-USG:terminated_at | None | | accessIPv4 | | | accessIPv6 | | | addresses | test=192.168.222.157, 10.20.20.206 | | config_drive | | | created | 2021-08-07T06:11:00Z | | flavor | m1.worker (f36b186c-8d6c-49e1-8546-250f9eed48db) | | hostId | fc20b879f84666d87915b0907fa95a8c0cf72e8518942f8645b0ed45 | | id | 133bd167-f0ad-4dea-8721-82d583bbde75 | | image | ubuntu (23575e0a-b508-4610-b2aa-fe5707db9d0b) | | key_name | mykey | | name | ictsc-worker | | project_id | 65081f8c8fac4442ba440d85c5861ae5 | | properties | | | security_groups | name='worker' | | status | SHUTOFF | | updated | 2021-08-20T13:41:17Z | | user_id | f8f0af1a6abd458cace71a66b8062a16 | | volumes_attached | | +-------------------------------------+----------------------------------------------------------+ user@server01:~$

以下、Openstack内のトポロジー図
1314

*前提条件*
・kubesprayディレクトリ内のファイルには変更は加えないでください
・openstackは現在のノードから移動・再展開しないでください。
・この問題は採点時に問題環境を確認しません。
 ・なので、この問題の解答は「なぜ、どこが、どうして、どうやって修正したのか」をレポートとして報告してください。
・提供された問題環境を現在の状態から必要以上にセキュリティレベルを下げないでください。
 ・もしも回答で下げる必要がある場合はレポート内に理由を記載してください。

*初期状態*
*前半フェイズ*
以下のコマンドを~**/kubespray** で実行しても途中でエラーを吐いて止まってしまう。
//コマンド ansible-playbook -i inventory/mycluster/hosts.yaml --become --become-user=root cluster.yml -u ubuntu --private-key=~/.ssh/ictsc_rsa
//エラー文 TASK [kubernetes/preinstall : Update package management cache (APT)] ******************************************************* fatal: [node2]: FAILED! => {"changed": false, "msg": "Failed to update apt cache: unknown reason"} fatal: [node1]: FAILED! => {"changed": false, "msg": "Failed to update apt cache: unknown reason"}

*後半フェイズ*
構築したkubernetesの各ノードにpodが建った場合に、各ノード上のpod間で疎通が取れない

  1. node1上のshell1からnode2上のshell2に対してpingを打った場合、疎通が取れない
  2. node1上のshell1からnode1上のshell1に対してpingを打った場合、疎通が取れる

*終了状態*
*前半フェイズ*
kubesprayのすべてのTaskを実行してKubernetesが展開できている。 また、node1(vm:ictsc-master)にSSHで接続し、kubectl get nodesを実行した際に正しくノードの情報が表示される。

*後半フェイズ*
構築したkubernetesの各ノードにpodが建った場合に、各ノード上のpod間で疎通が取れる

  1. node1上のshell1からnode2上のshell2に対してpingを打った場合、疎通が取れる
  2. node1上のshell1からnode1上のshell1に対してpingを打った場合、疎通が取れる

*接続情報*
VM名 ホスト名 ユーザー パスワード
server01 192.168.15.1 user ictsc2021
node1(ictsc-master on Openstack) 192.168.222.222(内部ネットワーク),10.20.20.235(FloatingIP) ubuntu /home/user/.ssh/ictsc_rsaを使用してログインする
node1(ictsc-worker on Openstack)192.168.222.157(内部ネットワー/home/user/.ssh/ictsc_rsaを使用してログインするク) 10.20.20.206(Floating IP) ubuntu

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant