1. Springboot プロジェクトを準備する
https://start.spring.io/ のWeb サイトで、ここでは k8s 学習としてプロジェクトを準備できますので、springboot プロジェクトに簡単なアクセス インターフェイスを準備します。
2. サーバー環境の準備
JDKをインストールする
1. システム パッケージを更新します。
sudo yum update
2. OpenJDK 11 をインストールします。
sudo yum install java-11-openjdk-devel
3. Java のインストールを確認します。
java -version
4. 環境変数を設定する
vim /etc/profile
#JAVA_HOME 的内容根据具体安装jdk的路径替换
JAVA_HOME=/usr/lib/jvm/java-11-openjdk
CLASSPATH=$JAVA_HOME/lib/
PATH=$PATH:$JAVA_HOME/bin
export PATH JAVA_HOME CLASSPATH
5. 環境変数を有効にする
source /etc/profile
Maven をインストールする
1. バージョン 3.5.4 は、https://dlcdn.apache.org/maven/maven-3/3.5.4/binaries/apache-maven-3.5.4-bin.zip Web サイト (またはhttps:// maven .apache.org/download.cgi から必要なバージョンをダウンロードし、サーバー/usr/local/software/
ディレクトリにアップロードします
。 2. unzip コマンドをインストールします。
yum install unzip -y
3. 解凍します。
unzip apache-maven-3.5.4-bin.zip
名前を変更する
mv apache-maven-3.5.4 maven3.5
4. 環境変数を設定する
vim /etc/profile
JAVA_HOME=/usr/lib/jvm/java-11-openjdk
CLASSPATH=$JAVA_HOME/lib/
PATH=$PATH:$JAVA_HOME/bin
MAVEN_HOME=/usr/local/software/maven3.5
PATH=$PATH:$MAVEN_HOME/bin
export PATH JAVA_HOME CLASSPATH MAVEN_HOME
5. 環境変数を有効にする
source /etc/profile
3. springboot プロジェクトが docker をビルドしてパッケージ化する
1.パッケージファイル名をdemoに設定し、
springbootプロジェクトのpomファイルにfinalNameを設定します
2. Dockerfile ファイルを追加します。ファイルは、
Dockerfile ファイルの下のプロジェクトとディレクトリに配置されます。
FROM adoptopenjdk/openjdk11:jre11u-nightly
ADD target/demo.jar demo.jar
ENTRYPOINT ["java","-jar","/demo.jar"]
3. springboot プロジェクトをサーバーにアップロードし、パッケージ化するためのルート ディレクトリを入力します。
注文の実行
mvn clean install
イメージを構築します (最後のドットを無視しないでください)
docker build -t demo:1.0 .
ミラーリストを見る
docker images
起動
docker run -d -it -p 8080:8080 --name=k8sdemo demo:1.0
4. イメージプッシュ (Alibaba Cloud の例)
Aliyun アカウントのアクセスアドレス
https://cr.console.aliyun.com/
ウェアハウスの作成についてはここでは説明しませんが、Baidu (個人版は課金されません)
プッシュ専用ミラー倉庫
#仓库地址根据自己的地址替换
docker login --username=gq570566 registry.cn-shenzhen.aliyuncs.com
#打tag
#docker tag [ImageId] registry.cn-hangzhou.aliyuncs.com/fqfff/demo:[镜像版本号]
docker tag ba0652a92214 registry.cn-hangzhou.aliyuncs.com/fqfff/demo:1.0
#推送
#docker push registry.cn-hangzhou.aliyuncs.com/fqfff/demo:[镜像版本号]
docker push registry.cn-hangzhou.aliyuncs.com/fqfff/demo:1.0
#拉取
docker pull registry.cn-hangzhou.aliyuncs.com/fqfff/demo:[镜像版本号]
5.K8sデプロイメントSpringBootプロジェクト
シークレットを作成する
#kubectl create secret docker-registry demo-docker-secret --docker-server=registry.cn-hangzhou.aliyuncs.com --docker-username=用户名 --docker-password=登录密码
kubectl create secret docker-registry demo-docker-secret --docker-server=registry.cn-hangzhou.aliyuncs.com --docker-username=gq570566--docker-password=*****
k8sdemo-deploymentのyamlファイルを作成する
yaml ファイルをすばやく生成する方法
kubectl create deployment k8sdemo --image=registry.cn-hangzhou.aliyuncs.com/fqfff/demo:1.0 --dry-run=client -o yaml > demo-k8s.yaml
コピー数を 2 に変更し、シークレットをマウントします
apiVersion: apps/v1
kind: Deployment
metadata:
creationTimestamp: null
labels:
app: k8sdemo
name: k8sdemo
spec:
replicas: 2
selector:
matchLabels:
app: k8sdemo
strategy: {
}
template:
metadata:
creationTimestamp: null
labels:
app: k8sdemo
spec:
imagePullSecrets:
- name: demo-docker-secret
containers:
- image: registry.cn-hangzhou.aliyuncs.com/fqfff/demo:1.0
name: demo-k8s
resources: {
}
status: {
}
コントローラーの作成
kubectl apply -f demo-k8s.yaml
サービスの作成、nodePort タイプ
kubectl expose deploy k8sdemo --port=8080 --target-port=8080 --type=NodePort
テストアクセス
ビューポート
kubectl get svc
アクセスノードのIP+ポート+インターフェースアドレス
成功!