【Kubernetes】Podのコンテナにアタッチ

スポンサーリンク

はじめに

Podのコンテナにアタッチ(接続)して、直接出力を確認する方法を紹介します。

コンテナにアタッチ

下記コマンドでPod名とコンテナ名を指定してアタッチすることで、コンテナの出力を直接確認できます。

kubectl attach <pod name> -c <container name>

-cでコンテナ名を指定しない場合は、最初のコンテナが選ばれます。

試してみる

実際に試してみます。

下記のDeploymentのマニフェストdeployment.ymlを作成します。

apiVersion: apps/v1
kind: Deployment
metadata:
  name: test-deployment
spec:
  replicas: 2
  selector:
    matchLabels:
      app: app
  template:
    metadata:
      labels:
        app: app
    spec:
      containers:
        - name: nginx
          image: nginx:latest
        - name: redis
          image: redis:latest

Deploymentを作成します。

kubectl apply -f deployment.yml

Podにポートフォワードします。

kubectl port-forward test-deployment-8c8989c98-vjc49 8080:80

ローカルホストにアクセスすることでnginxコンテナのログが出力されます。

curl localhost:8080

同時にkubectl attachでコンテナにアタッチしていると直接出力が確認できています。

❯ kubectl attach test-deployment-8c8989c98-vjc49 -c nginx
If you don't see a command prompt, try pressing enter.
127.0.0.1 - - [03/Mar/2022:13:49:33 +0000] "GET / HTTP/1.1" 200 615 "-" "curl/7.77.0" "-"
127.0.0.1 - - [03/Mar/2022:13:49:36 +0000] "GET / HTTP/1.1" 200 615 "-" "curl/7.77.0" "-"
127.0.0.1 - - [03/Mar/2022:13:49:37 +0000] "GET / HTTP/1.1" 200 615 "-" "curl/7.77.0" "-"
127.0.0.1 - - [03/Mar/2022:13:49:38 +0000] "GET / HTTP/1.1" 200 615 "-" "curl/7.77.0" "-"
127.0.0.1 - - [03/Mar/2022:13:49:39 +0000] "GET / HTTP/1.1" 200 615 "-" "curl/7.77.0" "-"

参考

タイトルとURLをコピーしました