ラベル kubernets の投稿を表示しています。 すべての投稿を表示
ラベル kubernets の投稿を表示しています。 すべての投稿を表示

2020年5月17日日曜日

kubernetesのcronjobをすぐ実行する方法

方法1

一時実行用ジョブを作成

kubectl create job ジョブ名 --from=cronjob/元のcronjob名
例↓ 例えば元のcronjobの名前はlog_rotate、すぐ実行してほしい名前はonetime_job
kubectl create job onetime_job --from=cronjob/log_rotate

上記のコマンドで「onetime_job」というジョブが作成られてそしてすぐ実行されます。

方法2

ステップ1、cronjobの実行履歴を確認
kubectl get pod | grep cronjobの名前

上記のコマンドで実行済みのジョブ履歴を表示することができます。

ステップ2、実行履歴からイメージを取得
kubectl describe pod ステップ1で取得したpod名
ステップ3、テスト用PODを作成
kubectl run test --image=ステップ2で取得したイメージ名 --restart=Never --command sleep infinity
ステップ4、PODにログインして手動でジョブを実行
kubectl exec -it test bash
# ジョブを実行
ステップ5、最後テストPODを削除
kubectl delete pod test

2020年5月10日日曜日

「kubectl run」コマンドで存続し続けるPodを作成する方法

ネットワークのトラブルシューティングや、DBの接続確認などでテスト用Podを使いたい時があります。その都度yamlファイルを作成してデプロイするのは面倒に感じますよね。
以下のコマンドを使えば、ワンラインで存続し続けるPodを作成することができます。
kubectl run [pod名] --image=[イメージ名] --restart=Never --command sleep infinity
例↓ mysql接続テストするためのpodを作成
kubectl run mysql-test --image=mysql:5.6 --restart=Never --command sleep infinity
オプション「–-command」はpodが立ち上がったら実行するコマンドを意味します。
そして「sleep infinity」は「無限に待つ」になります。つまり永遠停止しないことになります。

statefulsetのロールアウト履歴確認する方法

自分のプロジェクトはstatefulsetを使ってpodを管理しています。
最近statefulsetのロールアウト履歴を確認する必要があったので調査してみました。
まず確認用コマンドです↓
kubectl rollout history statefulset [statefulsetの名前]
実行例↓
kubectl rollout history statefulset web-front
statefulset.apps/web-front
REVISION
0
0
0
0
0
0
0
0
0
0
0
0
45
46
47
48
49
50
51
52
53
54
55
56

2020年1月28日火曜日

「kubectl get all」で実行しても全リソースが表示されない件

kubernetesの初心者です。
全リソースを表示するためよく「kubectl get all」を使います。
何故か表示されてないリソースもあることに気づきました。

解決方法

調査したところ、namespaceの指定が足りて無いことが分かりました。
namespaceを指定しないと、デフォルトnamespaceのリソースが表示されます。。
namespaceを関係なく全リソースを表示するには、「-A」をつける必要があります。

namespace 関係なく前リソースを表示
kubectl get all -A
 
# 特定のnamespaceのリソース表示
kubectl get all --namespace=[namespace名]
 
default namespaceのリソース表示
kubectl get all