Kubeflow V1.4インストールと初期設定
6897 ワード
1.Kubefflowのインストール
kubeflowの場合は、kubeflow manifest githubで簡単にインストールできます.まず、kubernetesclusterが構成されていると仮定し、kustomizeをインストールする必要があります.
#kubeflow 1.4의 경우 kustomzie 4.x 버전에 호환이 안됩니다.
wget https://github.com/kubernetes-sigs/kustomize/releases/download/v3.2.0/kustomize_3.2.0_linux_amd64
gmv kustomize_3.2.0_linux_amd64 /usr/local/bin/kustomize
今後のプロジェクトでクローンを作成し、Manifestを適用できます.デフォルトでは、マルチユーザベースのパイプとしてインストールされます.manifests/common/user-namespace/base/params.env
manifests/common/dex/base/config-map.yaml
git clone https://github.com/kubeflow/manifests.git
while ! kustomize build example | kubectl apply -f -; do echo "Retrying to apply resources"; sleep 10; done
上記のコマンドを使用して、kubeflow内の各構成部品を別々に配置します(最初の試行では、kubectl applyは通常正常ではありません.これは再起動するだけです).正常にインストールされている場合は、次の名前のインタフェースのpadがすべて実行されていることを確認できます.インストール中に、ほとんどのシードが正常に動作していることを確認しましたが、cache-deploveなどのKubeflowネーミングスペースにエラーが発生しました.これは主にKubernetesとKubeflowバージョンの互換性の問題のためです.私の場合はKubernetesバージョンv 1です21.1では、kubeflow v.1.1.1にエラーがインストールされていますが、v 1です.4.0の場合、正常にインストールされています.そのため、インストール環境との互換性チェックを行い、正しいバージョンをインストールする必要があります.
2.Kubeflow Dashboardアクセス
公式githubでは、ポート転送によるアクセスキーボードについて簡単に説明していますが、クラスタは仮想マシンで構成されているため、localhostにアクセスできません.kubeflowをインストールすると、istio-systemに次の内容が表示されます.
istio-ingressgatewayはNodePortで作成されているため、[istio gateway podで作成されたノードのIP:32082]からアクセスできます.
3.SRFのトラブルシューティング
上記のアクセスと使用は正常に見えますが、ノートブックやテンソルボードなどのKubeflow機能を使用すると、権限を拒否する問題が発生します.
Kubeflowが使用するwebはセキュリティクッキーを使用するため、HTTPSを設定する必要があります.
kubectl edit -n kubeflow gateways.networking.istio.io kubeflow-gateway
spec:
selector:
istio: ingressgateway
servers:
- hosts:
- '*'
port:
name: http
number: 80
protocol: HTTP
tls:
httpsRedirect: true
- hosts:
- '*'
port:
name: https
number: 443
protocol: HTTPS
tls:
mode: SIMPLE
privateKey: /etc/istio/ingressgateway-certs/tls.key
serverCertificate: /etc/istio/ingressgateway-certs/tls.crt
kubeflow gatewayからhttpへの通信をhttpにリダイレクトし、TLSに必要なcrt、keyを設定します.以降のTLSアクセスのサーバ証明書を作成します.apiVersion: cert-manager.io/v1alpha2
kind: Certificate
metadata:
name: istio-ingressgateway-certs
namespace: istio-system
spec:
commonName: istio-ingressgateway.istio-system.svc
# Use ipAddresses if your LoadBalancer issues an IP
ipAddresses:
- 172.16.156.10
# Use dnsNames if your LoadBalancer issues a hostname (eg DNS name from Civo dashboard)
#dnsNames:
#- <LoadBalancer HostName>
isCA: true
issuerRef:
kind: ClusterIssuer
name: kubeflow-self-signing-issuer
secretName: istio-ingressgateway-certs
その後、https://[LB IP]:[LB Port]
を使用すると、接続後にノートパソコンを正常に作成できます.ただし、VDI外部からアクセスするためには、ポートを転送する必要があるため、証明書を設定する必要があるため、上記の方法ではなく、セキュリティCookiesモードを一時的に無効にする方法を使用しました.k edit deploy jupyter-web-app-deployment -n kubeflow
.
.
spec:
containers:
- env:
- name: APP_SECURE_COOKIES
values: "false"
Web関連シードでSecured cookiesを無効にする環境変数が追加されました.これは正式に推奨されない方法であるため、実際の本番サーバではHTTPSを使用する必要があります.その後、Notebookが正常に動作していることがわかります.
4.ユーザーの追加
他のユーザーを追加するには、2つのプロセスが必要です.dexにID/PWを作成し、そのためにProfileを作成する必要があります.
#manifest/common/dex/base/config-map.yaml
- email: [email protected]
hash: $2y$12$4K/VkmDd1q1Orb3xAt82zu8gk7Ad6ReFR4LCP9UeYE90NLiN9Df72
# https://github.com/dexidp/dex/pull/1601/commits
# FIXME: Use hashFromEnv instead
username: test
userID: "test"
staticPasswordエントリにユーザー情報を追加し、hashにbcryptパスワードを入力します.後続の変更をconfigmapに適用します.dexを再実行して、後続の変更を適用します.k rollout restart deployment dex -n auth
その後、対応するID/PWを使用してログインできます.ただし、名前空間が指定されていないため、リソースを作成できません.このためにプロファイルを作成します.
#profile.yaml
apiVersion: kubeflow.org/v1beta1
kind: Profile
metadata:
name: testuser
spec:
owner:
kind: User
name: [email protected]
resourceQuotaSpec:
hard:
cpu: "2"
memory: 2Gi
persistentvolumeclaims: "1"
requests.storage: "5Gi"
リソースを割り当ててProfileを作成します.作成が完了すると、ユーザー名を使用してネームスペースを作成し、再接続時にNamespaceが割り当てられていることを確認できます.Reference
この問題について(Kubeflow V1.4インストールと初期設定), 我々は、より多くの情報をここで見つけました https://velog.io/@seokbin/Kubeflow-V1.4-설치-및-초기-설정User-추가-CORSテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol