or
or
By clicking below, you agree to our terms of service.
New to HackMD? Sign up
Syntax | Example | Reference | |
---|---|---|---|
# Header | Header | 基本排版 | |
- Unordered List |
|
||
1. Ordered List |
|
||
- [ ] Todo List |
|
||
> Blockquote | Blockquote |
||
**Bold font** | Bold font | ||
*Italics font* | Italics font | ||
~~Strikethrough~~ | |||
19^th^ | 19th | ||
H~2~O | H2O | ||
++Inserted text++ | Inserted text | ||
==Marked text== | Marked text | ||
[link text](https:// "title") | Link | ||
 | Image | ||
`Code` | Code |
在筆記中貼入程式碼 | |
```javascript var i = 0; ``` |
|
||
:smile: | ![]() |
Emoji list | |
{%youtube youtube_id %} | Externals | ||
$L^aT_eX$ | LaTeX | ||
:::info This is a alert area. ::: |
This is a alert area. |
On a scale of 0-10, how likely is it that you would recommend HackMD to your friends, family or business associates?
Please give us some advice and help us improve HackMD.
Do you want to remove this version name and description?
Syncing
xxxxxxxxxx
監視できない
133.242.236.104
ubuntu
IXEQOI0FbjuyHU
2019-08-29T22:36:06+09:00
問題文
あなたは新しくkubernetesのクラスタを構築しました。そして、クラスタの情報を取得するためにnotifierというアプリケーションを作りました。このアプリケーションは自身がデプロイされたクラスタのPodに関するイベントを外部のサーバにwebhookする機能を持っています。
さて、そのアプリケーションをデプロイしてRunningと表示されるのですが、なぜかイベントを見ることが出来ません。なんとかしてイベントを見れるようにしてください。
条件
notifierのイメージを変更してはいけない
notifierはkubernetesの内部に設置すること
default namespaceに別のPodをデプロイする際に、デフォルトで権限を与えすぎないようにすること
ゴール
miscサーバ上でlocalhostにcurlすると、最新のイベントが確認できる。
情報
k8s
kubernetesが動作しているマシン。kubernetesの上ではnotifierが動作している。また、/manifestsにはnotifierをデプロイする際に使用したマニフェストが保存されている。
192.168.0.1
admin
kkkkkkkks
misc
Docker Registryやwebappなどが動作しているマシン。
192.168.0.201
admin
kkkkkkkks
各アプリケーションの説明
notifier
kubernetes上で動作しているアプリケーション。kubernetesのPodリソースを監視し、作成, 変更, 削除があった場合には http://misc/webhook にイベント情報を飛ばす。
webapp
misc上で動作しているWebhookを受け取るアプリケーション。notifierから受け取った最新10件のイベント情報を http://misc で公開している。
考察
これ
ServiceAccount を作成して Pod から kubectl を使って Pod の情報を取得する - Qiita
回答
お疲れさまです。大橋です。
問題「監視できない!」の回答をお送りいたします。
動作の確認
まず、初めにどの箇所でのエラーが発生しているかを特定するために、miscの動作とPodのログを確認しました。
miscの動作の確認
Podのログの確認
以上より、miscは適切に動作しており、kubernetesの権限設定が正しく行われていないことがわかりました。
設定
以下のページを参考に、設定を行いました。
Configure Service Accounts for Pods - Kubernetes
notifier-serviceaccount.yaml
notifire-clusterrolebinding.yaml
notifier.yaml
上のようにファイルを設定した後、以下のコマンドを実行しました。
結果の確認
miscサーバー上で
http://localhost
にリクエストを飛ばしゴールを達成したことを確認しました。