0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

プロキシ下のk8sクラスタ構築で詰まったこと

Posted at

概要

プロキシ環境下でKubernetesクラスタを構築した際に、プロキシ関連で詰まったことがあったのでメモとして残しておきます。ただ、構築してから時間がたっているため発生したエラー等は残せていません。また、Kubernetesクラスタの構築についても詰まったところのみ記事にしています。構築してた当時は全然記事が無かったので解決に時間がかかりましたが、今はそこそこ記事があるのでトラブルシュートしやすいかもしれません。

環境

  • 外部との通信でプロキシを経由する必要がある
  • クラスタ構築にはkubeadm,kubelet、クラスタ内のノード間通信にはcalicoを使う
  • マスター1台,ワーカー2台(全てプロキシ下に配置)
  • Kubernetes以外のこと(apt,wget等)のプロキシ設定については既に済ませている

Kubernetesクラスタの構築

通常通りkubeadm,kubelet,kubectl,containerd等をインストールする。
(省略しますが後日追記か別に記事を書くかもしれません)

詰まったこと

  • containerd のプロキシ設定
  • ノード間の通信設定

最後の方に設定をまとめて書いてます。

containerd のプロキシ設定

dockerhubからコンテナイメージを取得できませんでした。エラーを確認したところプロキシっぽかったのでcontainerdにプロキシの設定を追加したところこのエラーは解決しました。

ノード間の通信設定

プロキシ環境下のコンピュータでは外部との通信のために環境変数等でプロキシを用いるように設定すると思います。通常は同じネットワーク下であればプロキシを使わずに通信を行いますが、Kubernetesクラスタでは10.96.0.0/12のようなIPアドレスで通信を行うためプロキシを経由して通信を行おうとします。そのため、ワーカーノードをクラスタへ追加することはできますがノード間通信に失敗するためpodが動きません。これは、containerdの設定でクラスタ内の通信にプロキシを使わないように設定すれば解決出来ました。

設定内容

設定ファイルは存在しないかったので作成したと記憶しています。

/etc/systemd/system/containerd.service.d/http-proxy.conf
[Service]
Environment="NO_PROXY=10.96.0.0/12"
Environment="HTTP_PROXY={proxy}:{port}"

必要だったか不明の設定

いろいろ調べていた際に、calicoを使うためにはkubeletのcniオプションを有効にする必要があるらしいので有効にしました。
(kubeadm-flags.envに追記)

/var/lib/kubelet/kubeadm-flags.env
KUBELET_KUBEADM_ARGS="--container-runtime=remote --container-runtime-endpoint=/run/containerd/containerd.sock --pod-infra-container-image=k8s.gcr.io/pause:3.6 --network-plugin=cni"

参考URLとその他

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?