Skaffoldによる簡単なKubernetes発展
10773 ワード
この記事では、我々はどのように我々はKubernetesネイティブアプリケーションをローカルに開発するskaffoldを使用することができます参照してください.
私は使用されますminikube ローカルKubernetesクラスタについて
何がskaffoldですか?
SkaffoldはあなたのローカルまたはリモートKubernetesクラスタに展開することによってKubernetesネイティブアプリケーションの開発を支援するコマンドラインツールです.
これは、ビルド、プッシュ、およびアプリケーションの展開のワークフローを処理することができます.Skaffoldもあなたのクラスタに必要なコンポーネントなしで、クライアント側で完全に動作します.そして、それを超軽量で高性能にします.
それは偉大な開発者の経験を持って、私はしばらくの間それを使用してきた.skaffoldについて詳しく知るhere
インストール
から足場をインストールできますhere
プロジェクト設定
私はかなり簡単なエクスプレスアプリを初期化しました.
Dockerfile
我々が我々のKubernetesクラスタでそれを走らせることができるように、我々のアプリをDockerizeしましょう
注:あなたのアプリケーションをDockerizingのベストプラクティスについてもっと学ぶために、チェックアウトマイ!
k 8 s展開の作成
を作成しましょう
K 8 S展開のサービスの公開
では、Aを加えましょう
足場設定
そして最後に、私たちは
完全な設定オプションを見つけることができますhere
注:また、宣言することができます
ビルドパックの使用
ビルドパックでは、ソースコードからコンテナイメージを構築することができます
Skaffoldは、クラウド固有のビルドパックで構築をサポートします.これは私たちを簡素化するのに役立ちます
これが有用であることを願っていますrepository . いつものように、任意の問題に直面している場合はいつでも手を伸ばす自由.
私は使用されますminikube ローカルKubernetesクラスタについて
何がskaffoldですか?
SkaffoldはあなたのローカルまたはリモートKubernetesクラスタに展開することによってKubernetesネイティブアプリケーションの開発を支援するコマンドラインツールです.
これは、ビルド、プッシュ、およびアプリケーションの展開のワークフローを処理することができます.Skaffoldもあなたのクラスタに必要なコンポーネントなしで、クライアント側で完全に動作します.そして、それを超軽量で高性能にします.
それは偉大な開発者の経験を持って、私はしばらくの間それを使用してきた.skaffoldについて詳しく知るhere
インストール
から足場をインストールできますhere
プロジェクト設定
私はかなり簡単なエクスプレスアプリを初期化しました.
├── src
│ └── index.js
├── package.json
└── yarn.lock
Minikubeクラスタを起動します$ minikube start
Dockerfile
我々が我々のKubernetesクラスタでそれを走らせることができるように、我々のアプリをDockerizeしましょう
注:あなたのアプリケーションをDockerizingのベストプラクティスについてもっと学ぶために、チェックアウトマイ!
FROM node:14-alpine
# Declare a workdir
WORKDIR /app
# Cache and install dependencies
COPY package.json yarn.lock ./
RUN yarn install
# Copy app files
COPY . ./
# Expose port
EXPOSE 4000
CMD [ "yarn", "start" ]
また、すぐにAを加えましょう.dockerignore
除くnode_modules
**/node_modules
k 8 s展開の作成
を作成しましょう
k8s
フォルダと作成deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: app
labels:
app: app
spec:
replicas: 1
selector:
matchLabels:
app: app
template:
metadata:
labels:
app: app
spec:
containers:
- name: app
image: node-app
resources:
limits:
memory: 512Mi
cpu: "1"
ports:
- containerPort: 4000
K 8 S展開のサービスの公開
では、Aを加えましょう
k8s/service.yaml
活字NodePort
展開を公開するにはapiVersion: v1
kind: Service
metadata:
name: app-svc
spec:
type: NodePort
selector:
app: app
ports:
- port: 4000
targetPort: 4000
足場設定
そして最後に、私たちは
skaffold.yaml
我々のアプリの設定.完全な設定オプションを見つけることができますhere
apiVersion: skaffold/v2beta18
kind: Config
profiles:
- name: dev
activation:
- command: dev
build:
artifacts:
- image: node-app
context: .
sync:
manual:
- src: 'src/**/*.js'
dest: .
カスタムパスでKubernetes YAMLファイルを保存している場合は、skaffold.yaml
profile: ...
deploy:
kubectl:
manifests:
- custom/path/file.yaml
スタート!スタート!スタート!skaffold dev --port-forward
注:また、宣言することができます
portForward
あなたのskaffold.yaml
portForward:
- resourceType: service
resourceName: app-svc
port: 4000
localPort: 4000
ビルドパックの使用
ビルドパックでは、ソースコードからコンテナイメージを構築することができます
Dockerfile
. Skaffoldは、クラウド固有のビルドパックで構築をサポートします.これは私たちを簡素化するのに役立ちます
skaffold.yaml
apiVersion: skaffold/v2beta18
kind: Config
profiles:
- name: dev
activation:
- command: dev
build:
artifacts:
- image: node-app
buildpacks:
builder: "gcr.io/buildpacks/builder:v1"
この記事は、skaffoldが可能であるものの表面をひっかきます!あなたは公式のトンの例を見つけることができますgithub repository これが有用であることを願っていますrepository . いつものように、任意の問題に直面している場合はいつでも手を伸ばす自由.
Reference
この問題について(Skaffoldによる簡単なKubernetes発展), 我々は、より多くの情報をここで見つけました https://dev.to/karanpratapsingh/easy-kubernetes-development-with-skaffold-2ic8テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol