タグ付けされた質問 「kubernetes」

コンテナー化されたアプリケーションのデプロイ、スケーリング、および管理を自動化するオープンソースシステムであるKubernetesに関する質問。


2
Kubernetes展開のDocker
兄弟ドッカーコンテナーを作成するサードパーティライブラリを使用しています: docker run -d /var/run/docker.sock:/var/run/docker.sock ... 上記のコンテナからKubernetesデプロイメントを作成しようとしていますが、現在次のようになっています: unix:///var/run/docker.sockにあるDockerデーモンに接続できません。Dockerデーモンは実行されていますか? /var/run/docker.sockデプロイメントyamlでボリュームとして宣言していないため、これは予期されています。 問題は、これを行う方法がわからないことです。/var/run/docker.sock展開yamlのボリュームとしてマウントすることは可能ですか? そうでない場合、Kubernetes展開/ポッド内からdocker兄弟コンテナを実行するための最良のアプローチは何ですか?

2
Kubernetesで展開を自動化するにはどうすればよいですか?
Rancherを介してKubernetesをデプロイし、JenkinsがGitHubに新しいコードをチェックインするときに新しいイメージを構築してDockerHubにプッシュすると仮定すると、新しいイメージのデプロイを自動化するにはどうすればよいですか? 質問をするもう1つの方法は、「以前はOctopusを使用して展開を管理していました。KubernetesやRancherに似たようなものが組み込まれていますか?」最終的に、私が苦労しているのはこの最後のギャップです。

2
Dockerコンテナーの容量計画
8つの3.2 GHz仮想CPUと32 GBの4つの仮想マシンでアプリケーションを実行していますが、プロセスを個別のコンテナーに分割します。 ホストごとに実行するコンテナの数がわかりません。典型的な数字は何ですか?たとえば、VMとベアメタルサーバーの比率が一般的に1:10である場合、考慮すべき属性のリンク、考慮すべき決定フレームワークまたはエクスペリエンスが役立ちます。

2
Docker SwarmとKubernetesを組み合わせる
私の会社は、DevOpsスペースで少し遅れを取り戻そうとしています。私は、アプリケーションのコンテナ化とそれに伴うオーケストレーションシステムについて、多くの研究を行ってきました。より良い機能を得るためにSwarmとKubernetesを組み合わせることについて彼らが話していた記事(私が救いたいもの)に出会いました。この記事では、彼らがそれによって得たものを定義しませんでした。 私はこれがどんな利益をもたらすのだろうかと思いましたか?複雑さの層を追加することで、本当に多くの利益が得られるでしょうか? 編集:私は技術的な賛否両論を探しています。KISSは良いモットーですが、CEOや取締役会との議論に遅れを取ることはありません。 コンテナにはDockerを選択し、オーケストレーションにはSwarmを選択することをほぼ確信しています。しかし、私は私たちのスペースでKubernetesを見てみたいので、より堅牢なソリューションのためにテクノロジーを統合できるという提案が興味をそそります。

1
Kubernetesの呪文とは何ですか?
質問 Kubernetesでの魔術の呪文とは何ですか? バックグラウンド UbuntuでKubernetesをフォローして、jujure-up kubernetesを実行すると、選択するスペルを尋ねるスナップショットが表示されました。しかし、これが何を求めているのかわかりません。 Conjure-upドキュメンテーションのスペル選択は、スペルと選択を伝えますが、それらがまだ何であるかは明確ではありません。したがって、どれを選択するか(コアまたは正規)およびそれらが何かについての説明と提案を探します。

1
KubernetesのCPU使用率とDockerコンテナーメトリックの競合
最近、本番環境をKubernetesに切り替えました。コンテナーにCPU制限を適用したいのですが。適合しないCPUメトリックが競合しています。これが私の設定です: として実行されているDataDogエージェント Daemonset CPU制限なしで実行されている既存のアプリケーション 問題のコンテナはマルチスレッドのRubyアプリケーションです 2つのメトリック:kubernetes.cpu.usage.{avg,max}およびdocker.cpu.usage c4.xlarge クラスタノード(4つのvCPUまたはKubernetesの用語では4000m) kubernetes.cpu.usage.max問題のコンテナについて〜600mを報告します。docker.cpu.usage約60%を報告します。したがって、1000mのCPU制限は、通常の操作では十分な容量を超えることになります。 制限を1000mに設定しました。その後docker.container.throttlesながら大幅に上がるkubernetes.cpu.usage.maxとdocker.cpu.usage同じまま。この間、システムはすべてひざまずきます。これは私には意味がありません。 Dockerの統計を調査しました。docker stats(および基になるAPI)は、CPUコアに従って負荷を正規化しているようです。したがって、私の場合、docker.cpu.usageKubernetesに換算すると60%の(4000m * 0.60)から2400mになります。ただし、これはKubernetes番号とは相関しません。Kubernetesの数値が正しくないという私の仮説を検証するために、別の実験を行いました。制限を2600mに設定しました(追加のヘッドルームのため)。これによりスロットルは発生しませんでした。ただし、KubernetesはCPU使用率に変化がないことを確認しました。これは私を混乱させます。 だから私の質問は: これはKubernetes(またはスタック内の何か)のバグのように感じますか? 私の理解は正しいですか? 私のフォローアップ質問は、RubyアプリケーションのCPUを適切に決定する方法に関するものです。1つのコンテナーはPumaを使用します。これは、構成可能な量のスレッドを備えたマルチスレッドWebサーバーです。HTTP要求は、スレッドの1つによって処理されます。2番目のアプリケーションは、スレッドサーバーを使用するリサイクルサーバーです。各着信TCP接続は、それ自体のスレッドによって処理されます。スレッドは、接続が閉じると終了します。Ruby as GIL(Global Interpreter Lock)なので、一度に1つのスレッドのみがRubyコードを実行できます。これにより、IOなどを実行する複数のスレッドが可能になります。 最善のアプローチは、各アプリケーションで実行されるスレッドの数を制限し、スレッドの数に基づいてKubernetes CPUの制限を概算することだと思います。プロセスは分岐しないため、CPUの合計使用量を予測することは困難です。 ここでの問題は、これらのアプリケーションのCPU使用率と制限を適切に予測する方法です。


1
Tillerを高可用性にする方法は?
helmを使用してサービスをKubernetesクラスターにデプロイしています。 ティラーポッドのサービス可用性を向上させたい。そこで、ティラーのデプロイを2つのレプリカにスケーリングしました。 Helmは以前と同様に機能しており、これに関連する問題はありません。 誰かが舵と分げつの信頼性を高めるためにこれが良い考えではないかもしれない理由を誰かが持っていますか? 編集: Helm v3は、分げつの使用を減らす予定です。この問題を無関係にする helm v2で耕うん機を使用しないエクスペリエンスが必要な場合は、helm- tiller プラグインを使用できます。

1
本番環境でのDockerを使用した永続ストレージ-ソリューションとその理由
私は最近、モノリシックSaaSアプリケーションをコンテナー化されたマイクロサービスに分割したい会社で働き始めました。しかし、永続ストレージの基本的な部分を把握するのに苦労しています。なぜそれほど多くの異なる競合プラットフォームがあるのですか?Portworx、Rexray、StorageOS、Flocker、Inifintなど。 私の質問 誰かが単にNFSサーバーを起動し、階層的なフォルダー構造をストレージバックエンドとして使用しないのはなぜですか?これらのツールの1つを使用すると、どのようなメリットがありますか? Dockerでこのようなものを使用することはどれほど危険ですか?Dockerベースの環境で致命的なデータ損失の一般的な原因は何ですか? どの永続ストレージソリューションを推奨しますか、またその理由は何ですか?私の会社はSaaSプラットフォームを運用しています。データペイロードはサイズが小さい(5kb-100kb)。データ処理は、リソース消費量が中小です。全体的なボリュームは中程度ですが、増加し続けています。モノリシックアプリケーションを個別のコンテナ化されたマイクロサービスとしてクラウドに完全に移行したいと考えています。データウェアハウスを含みます。 多少は関係ありませんが、関連しています。Rancher/ Cattleとは対照的に、Kubernetesをオーケストレーターとして使用することの利点は何ですか?中小規模のプラットフォーム用にKubernetesが過剰設計されていませんか?ワンクリックインストール以外に、ランチャーでKubernetesを使用する利点はありますか? 洞察をありがとう。世間知らずでごめんなさい。すべてのドキュメントと補足資料を歓迎します。 編集:コンテキストでは、基盤となるクラウドプラットフォームとしてAzureを使用しています。

1
Ingressを使用してリモートKubernetesクラスターのサービスにアクセスする
リモートマシンにデプロイされた既存のkubernetesクラスターのサービスにアクセスしようとしています。kubectlローカルMacからアクセスできるようにクラスターを構成しました。 $ kubectl cluster-info Kubernetes master is running at https://192.168.58.114:6443 KubeDNS is running at https://192.168.58.114:6443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy 接続するサービスの入力構成は次のとおりです。 kind: Ingress apiVersion: extensions/v1beta1 metadata: name: gw-ingress namespace: vick-system selfLink: /apis/extensions/v1beta1/namespaces/vick-system/ingresses/gw-ingress uid: 52b62da6-01c1-11e9-9f59-fa163eb296d8 resourceVersion: '2695' generation: 1 creationTimestamp: '2018-12-17T06:02:23Z' annotations: kubectl.kubernetes.io/last-applied-configuration: > {"apiVersion":"extensions/v1beta1","kind":"Ingress","metadata":{"annotations":{"kubernetes.io/ingress.class":"nginx","nginx.ingress.kubernetes.io/affinity":"cookie","nginx.ingress.kubernetes.io/session-cookie-hash":"sha1","nginx.ingress.kubernetes.io/session-cookie-name":"route"},"name":"gw-ingress","namespace":"vick-system"},"spec":{"rules":[{"host":"wso2-apim-gateway","http":{"paths":[{"backend":{"serviceName":"gateway","servicePort":8280},"path":"/"}]}}],"tls":[{"hosts":["wso2-apim-gateway"]}]}} kubernetes.io/ingress.class: nginx nginx.ingress.kubernetes.io/affinity: cookie nginx.ingress.kubernetes.io/session-cookie-hash: sha1 nginx.ingress.kubernetes.io/session-cookie-name: route spec: tls: - …

1
Kubernetes Service LoadBalancerサービスからのBackendConnectionErrorsのデバッグ
最近、一部の本番インフラストラクチャをKubernetesに移動しました。LoadBalancerAWSのサービスを通じて多くのポッドが公開されています。これにより、ELBが作成され、クラスター内の各ノードがELBに登録され、ELBポートをポッドにマップするようにノードポートが構成されます。私たちのアプリケーションはロードバランサー経由で接続できますが、BackendConnectionErrors(cloudwatchによって報告された)量はリクエスト数の5-7倍です。これをデバッグする方法がわかりません。 報告されたバックエンド接続エラーの数は、アプリケーションレイヤーのエラーメトリックと相関していません。これにより、ある種のインフラストラクチャの問題がおそらく再試行によって増幅されていると結論づけることができます。ただし、この問題のデバッグ方法がわかりません。 私の仮説はこれらの1つまたは両方です。 接続管理のためにELBに欠けているいくつかの奇妙なAWS設定 クラスター内のノードには、sysctl設定またはELB経由の接続の量をブロックするその他のネットワーク構成があります いくつかの中間的なネットワークインフラストラクチャが接続を乱しています。 私の質問は、クラスター内のインスタンスのTCP /ネットワーク関連のメトリックをデバッグ/トレースするにはどうすればよいですか? 問題のCloudWatchメトリックスに関する詳細情報。

1
MongoDBやMySQLなどのデータベースにStatefulSetの代わりにHelmデプロイメントを使用するとどのような影響がありますか?
ステートレスアプリの定義は、 MongoDBやMySQLなどのデータベースサーバーに適用されるようです。Helm Chartsは、Kubernetesのテンプレートリポジトリの一種として見つかりました。ただし、安定ビルドはすべてのデプロイメントを使用します。安定した状態で提供されないインキュベーター内のみ。 DBサーバーにDeploymentを使用するとどのような影響がありますか? たとえば、クラスターで複数のインスタンスを実行しているときに、同期/レプリケーションの問題などの問題はありますか? 背景:フェイルオーバークラスターでMongoDBを実行したいので、少なくとも2つのインスタンスが実行されています。

1
コンテナーにJavaScriptベースの静的Webサイトを展開/ホストするための戦略
これは、いくつかの開発チームで時々発生しますが、「正しい」方法を理解していません。 私たちは、いくつかのhtml、js、cssファイルである静的なWebサイトに「コンパイル」する多くの反応ベースのWebアプリケーションを使用しています。 ただし、これらのアプリの「ビルド」は、機能フラグの有効化/無効化、バックエンドURLの構成など、いくつかの変数を使用します。つまり、従来の意味でバイナリを「ビルド」して、デプロイ時に設定ファイルを適用することはできません。時間-「ビルド」自体にこれらの環境固有の変数を設定する必要があるため、「ビルド」できるのはデプロイ時のみです。 とりあえず、必要な環境変数をDockerコンテナーに注入し、次の行に沿って開始コマンドを実行することでこれを解決します npm build && nginx run これにはいくつかの欠点があります。 ビルドプロセスは、コンテナーのランタイム要件に比べて多くのCPU /メモリを消費します。つまり、ランタイム要件ではなく、ビルドプロセスのコンテナーをスケーリングする必要があります。 ビルドの失敗を「追跡」するのは困難です。Kubernetesでヘルスチェックを使用できますが、ビルドに2分かかる場合でも、コンテナーのヘルスチェックエンドポイントのテストを開始してその生存を確認する前に、3分(安全のために1つ余分)待つ必要があります。 デプロイには時間がかかることがあります。「シリアル」デプロイを行うようにKubernetesを構成すると、各ポッドが開始され、2〜3分の「initialDelay」期間待機してから次のポッドが開始されます。これは、デプロイが3〜4ポッドにスケーリングされている場合、10分のデプロイ時間を簡単に見ていることを意味します。 これはすべて、私にとって非常に最適ではないと感じています。コミュニティーが「ビルド時にデプロイ」という難問を最新のJavaScript Webアプリケーションで解決する方法を聞いてみたいと思います。 Kubernetesの場合、ビルドを実行し、アーティファクトを永続ストレージに配置し、起動時にアプリコンテナーを永続ストレージから単純にプルする「init-containers」を使用できることを理解していますが、これはまだ問題を「バイパス」するように感じられます根本的な問題を解決します。

1
Kubernetes APIサーバー構成のドキュメントはどこにありますか?
ご質問 Kubernetes APIサーバー構成パラメーターの説明またはドキュメントはどこにありますか? バックグラウンド マルチノードクラスターを機能させるには、Kubernetes APIサーバー用に構成するパラメーターがあります。たとえば、KUBE_API_ADDRESS(127.0.0.1から変更する必要があるようです)です。 APIサーバーを構成する方法の明確な構成ドキュメントを探していますが、これまでのところ、それを見つけることができませんでした。 CentOS(Kubernetes.io)のセットアップは以下のとおりです。 # The address on the local server to listen to. KUBE_API_ADDRESS="--address=0.0.0.0" Kubernetes GitHubは以下のように述べています。 # --insecure-bind-address=127.0.0.1: The IP address on which to serve the --insecure-port. KUBE_API_ADDRESS="--insecure-bind-address=0.0.0.0" Vagrantボックス#250の外部からKubernetes APIサーバーに接続すると、次のようになります。 デフォルトでは、kube-apiserverは127.0.0.1でのみリッスンします。再構成しないと、別のマシンからkubectlを使用してKubernetesに接続することはできません。 Kubernetes 1.7 / etc / kubernetes / apiserverは以下にあります。 ### # kubernetes system config # …

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.