KubernetesのためのGithub認証ステップバイステップガイド


ダニエルOraogunによって
他の多くのユースケースに加えて、シングルサインオン(SSO)はKubernetes認証のためにうまく機能します.KubernetesのためのSSOを使用する利点は、開発者のための簡素化されたアカウント管理とプロビジョニングとセルフサービスを含みます.
開発者は、様々なオンラインツールを使ってアプリケーションを作成し、テストしたり、チームメイトと協力したりGit リポジトリ、プロジェクト管理ボード、通信チャネル.彼らのKubernetesクラスタのために別々のセットの資格情報を必要とするならば、彼らは彼らのデータが安全であることを確実とするために余分なステップをとらなければなりません.そして、それはエラーの可能性を上げます.SSOを使用することによって、開発者は他のツールに使用するのと同じ資格情報を持つクラスタに認証できます.
このチュートリアルでは、KerbernetesのSSOとKuthuTb SSOをKubernetesクラスタに実装する方法について説明します.

KubernetesのSSOとは


KBerbertesのためのSSOは、あなたのKubernetesクラスタのSSOの統合です.これは、開発者は認証から自分の資格情報を使用して認証することができますidentity providers クラスタ内で設定したものです.
SSOは、クラスタ内の開発者向けのセルフサービスを提供する場合に便利です.SSOは、各開発者に必要なアクセス許可と制限を設定すると、そのアクセス許可と制限の境界内でクラスタ内で必要なものを設定できます.

KuthunetesのためのGithub‐Ssoの実施


KuthuNB SSOをKubernetesクラスタに実装するつもりです.このチュートリアルでは、minikube . チェックするdocumentation Minikubeをコンピュータに設定する方法を参照してください.また、githubアカウントが必要になります.あなたが1を持っていない場合は、先に行くcreate one .
必要に応じて設定する必要がありますLoft . ロフトは、単一のポイントエントリからKubernetesクラスタを制御することができますセルフサービスプラットフォームです.それはあなたのKuthutes開発者が彼らのGithubアカウントを使用してクラスタに認証することを許可する機能を含む多くの機能を提供します.

クラスタでのLoftの設定


端末を開き、minikubeを使ってクラスタを起動します.
minikube start
Minikubeを使用していない場合は、上記の手順をスキップすることができますし、すでにクラスタを持っているingress-controller インストールと設定.
以下のように、端末用の適切なコマンドを使用してLoft CLIをダウンロードします.
# Mac terminal

curl -s -L "https://github.com/loft-sh/loft/releases/latest" | sed -nE 's!.*"([^"]*loft-darwin-amd64)".*!https://github.com\1!p' | xargs -n 1 curl -L -o loft && chmod +x loft;

sudo mv loft /usr/local/bin;
# Linux Bash

curl -s -L "https://github.com/loft-sh/loft/releases/latest" | sed -nE 's!.*"([^"]*loft-linux-amd64)".*!https://github.com\1!p' | xargs -n 1 curl -L -o loft && chmod +x loft;

sudo mv loft /usr/local/bin;
# Windows PowerShell

md -Force "$Env:APPDATA\loft"; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.SecurityProtocolType]'Tls,Tls11,Tls12';

Invoke-WebRequest -UseBasicParsing ((Invoke-WebRequest -URI "https://github.com/loft-sh/loft/releases/latest" -UseBasicParsing).Content -replace "(?ms).*`"([^`"]*loft-windows-amd64.exe)`".*","https://github.com/`$1") -o $Env:APPDATA\loft\loft.exe;

$env:Path += ";" + $Env:APPDATA + "\loft";

[Environment]::SetEnvironmentVariable("Path", $env:Path, [System.EnvironmentVariableTarget]::User);

# Ensure you add the folder %APPDATA%\loft to the PATH environment variable after installation, then reboot your computer afterward.
正常にLOFT CLIをインストールしたら、次のコマンドを端末で実行します.
loft start
クラスタ内に複数のクラスタが設定されていると仮定すると、どのクラスタをロフトに展開したいのかを尋ねるでしょうkube-config ファイル.それから、それはあなたの電子メールアドレスを要求して、あなたのクラスタにHelm .
LOFTを展開すると、LOFT CLIによって生成されたパスワードを使用したり、リセットしたりできます.パスワードをリセットしたい場合は、新しい端末を開き実行します.
loft reset password
安全なパスワードを入力し、Enterキーを押します.
loft start まだバックグラウンドで動いているので、CLIを通してクラスタにログインするために別の端末を開きます.
loft login https://localhost:9898  --insecure

You appended the --insecure command because Loft generated a self-signed SSL certificate for the localhost domain. You also must accept the untrusted self-signed certificate before you can view the login page. However, once you connect a domain to Loft, you can provide a valid SSL certificate for the domain.


LOFTが自動的にログインページを開きます.

あなたの電子メールとパスワードを入力し、次のページで、プロファイルを完了します.次に、あなたのLoftダッシュボードが表示されます.

クラスタでLOFTを正常に設定しました.次に、あなたの開発者があなたのクラスタに認証するために彼らのGithubアカウントを使用できるように、あなたはLoftでGithubを設定します.

GITHUBのLOFTの設定


クリエイトアnew OAuth app 次の情報を使用します.

  • アプリケーションの名前

  • ホームページURL :https://localhost:9898

  • アプリケーションの説明:“私の好きなクラスタ”

  • 許可コールバックURLhttps://localhost:9898/auth/github/callback

  • ボタンをクリックします.ボタンは、アプリケーション構成の詳細を示す新しいページにリダイレクトします.The ClientID and ClientSecret あなたのロフト管理者の設定に便利ですので、まだページを閉じないでください.
    あなたのLoftダッシュボードで、左サイドバーの管理ラベルをクリックします

    次に、次のペーストをLoft Configuration テキストフィールド:
    auth:
      github:
        clientId: $CLIENTID
        clientSecret: $CLIENTSECRET
        redirectURI: $CALLBACK_URL
    
    $ clientIdと$ clientSecretをGiTubによって提供された生成された値で置き換えてください、そして、GallHubに新しいOAuthアプリを作成するとき、あなたが入力したのと同じ認可コールバックURLで、$ CallbackRise URLを取り替えてください.下にスクロールし、Applyボタンをクリックします.
    端末に戻り、次のコマンドを実行します.
    loft start 
    
    and
    loft login https://localhost:9898  --insecure
    

    開発者を模倣する


    今、あなたはあなたのGithubアカウントを使用して会社のKubernetesクラスタにアクセスしたい開発者であるふりをします.
    オープンhttps://localhost:9898/ 忍者ウィンドウで、ログインページに新しいボタン( githubとのサイン)が表示されます.

    ボタンをクリックしてログインします.LOFTはあなたにgithubにあなたにあなたのGithubアカウントと要求を認証するよう要求しますLoft GitHub SSO 作成したアプリケーション.次に、それはあなたのプロフィールを完了するためにLOFTドメインにリダイレクトします.
    したら、フォームを完了したら、Loftを介して会社のKubernetesユーザーの1つとして認識されます.しかし、まだクラスタにアクセスできないので、管理者はアクセスを許可しなければなりません.

    クラスタへの開発者アクセスの付与


    開発者がGithub - ssoを使って認証をしたら、開発者をクラスタに割り当てる必要があります.これを行うには、あなたの管理者の資格情報を使用してロフトダッシュボードにログインします.ユーザーページに移動しますssoを通して偽装された開発者は現在存在します.

    左側のメニューのクラスタをクリックし、クラスタアクセスをクリックします.「クラスタを作成」ボタンをクリックします.

    必要な詳細を入力し、「作成」をクリックします

    Inquagtoブラウザに戻り、クラスタページを参照します.開発者として、クラスタにアクセスできるようになりました.

    開発者が任意のクラスタを使用したい場合は、以下のコマンドを実行します.
    loft use cluster [NAME_OF_CLUSTER]
    
    開発者は、クラスタのページをロフトダッシュボードに移動して、クラスタを使用して、接続をクリックしたいクラスタ上でマウスをホッピングすることによって、クラスタに接続できます.


    開発者のKube config 自動的に更新され、Kubectl経由でクラスタにアクセスできます.

    結論


    あなたのKubernetesクラスタのSSOを統合することは、開発者と管理者を含むクラスタのすべてのユーザーのためにワークフローを改善することができます.管理者は、彼らが管理するクラスタへの認証のための開発者を構成する多くの仕事をする必要はありません、そして、開発者は彼らが彼らの会社のクラスタに認証するためにそれらの他の仕事アプリで使用するのと同じ認証資格情報を使用することができます.GitHub SSOを使用してLoftを統合すると、クラスタの開発者経験(DX)を向上させることができます.
    Loft DXとクラスタ管理を改善するための優れたツールです.ロフトを使用すると、あなたのクラスタにセルフサービスを組み込むことができますnamespaces . 開発者は、ITサポートに依存しなくても、クラスタ内のアプリケーションをデバッグすることができます.SSOは、複数のアプリケーションで動作するので、Github、Google、およびLinkedIn、他のオプションとKubernetesクラスタアクセスを統合することができます.
    写真でolieman.eth on Unsplash