国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Kubernetes(k8s)實(shí)戰(zhàn):Kubernetes(k8s)部署Springboot項(xiàng)目

這篇具有很好參考價(jià)值的文章主要介紹了Kubernetes(k8s)實(shí)戰(zhàn):Kubernetes(k8s)部署Springboot項(xiàng)目。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

一、練手:k8s部署部署wordpress+mysql

wordpress是用于快速搭建博客系統(tǒng)。

1、創(chuàng)建wordpress命名空間

# 創(chuàng)建namespace
kubectl create namespace wordpress
# 查看namespace列表
kubectl get ns

2、創(chuàng)建mysql數(shù)據(jù)庫

# 新建wordpress-db.yaml文件
apiVersion: apps/v1beta1
kind: Deployment
metadata:
  name: mysql-deploy
  namespace: wordpress
  labels:
    app: mysql
spec:
  template:
    metadata:
      labels:
        app: mysql
    spec:
      containers:
      - name: mysql
        image: mysql:5.6  
        imagePullPolicy: IfNotPresent
        ports:
        - containerPort: 3306
          name: dbport
        env:
        - name: MYSQL_ROOT_PASSWORD
          value: rootPassW0rd
        - name: MYSQL_DATABASE
          value: wordpress
        - name: MYSQL_USER
          value: wordpress
        - name: MYSQL_PASSWORD
          value: wordpress
        volumeMounts:
        - name: db
          mountPath: /var/lib/mysql
      volumes:
      - name: db
        hostPath:
          path: /var/lib/mysql
---
apiVersion: v1
kind: Service
metadata:
  name: mysql
  namespace: wordpress
spec:
  selector:
    app: mysql
  ports:
  - name: mysqlport
    protocol: TCP
    port: 3306
    targetPort: dbport

該yaml文件創(chuàng)建一個(gè)mysql,并且生成一個(gè)service,service對(duì)外暴露的端口是3306

# 根據(jù)wordpress-db.yaml創(chuàng)建資源[mysql數(shù)據(jù)庫]
kubectl apply -f wordpress-db.yaml
# 查看pod
kubectl get pods -n wordpress -o wide
# 查看詳情,查看pod部署進(jìn)度
kubectl describe pod mysql-deploy-78cd6964bd-smq4k -n wordpress

# 記得獲取ip,因?yàn)閣ordpress.yaml文件中要修改
[root@m ~]# kubectl get svc mysql -n wordpress
NAME    TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)    AGE
mysql   ClusterIP   10.104.214.22   <none>        3306/TCP   42m

kubectl describe svc mysql -n wordpress

3、創(chuàng)建wordpress應(yīng)用

# 創(chuàng)建wordpress.yaml
apiVersion: apps/v1beta1
kind: Deployment
metadata:
  name: wordpress-deploy
  namespace: wordpress
  labels:
    app: wordpress
spec:
  template:
    metadata:
      labels:
        app: wordpress
    spec:
      containers:
      - name: wordpress
        image: wordpress
        imagePullPolicy: IfNotPresent
        ports:
        - containerPort: 80
          name: wdport
        env:
        - name: WORDPRESS_DB_HOST
          value: mysql:3306      # 改為service的name,不需要每次都指定ip             
        - name: WORDPRESS_DB_USER
          value: wordpress
        - name: WORDPRESS_DB_PASSWORD
          value: wordpress
---
apiVersion: v1
kind: Service
metadata:
  name: wordpress
  namespace: wordpress
spec:
  type: NodePort # NodePort類型
  selector:
    app: wordpress
  ports:
  - name: wordpressport
    protocol: TCP
    port: 80
    targetPort: wdport
#  #修改其中mysql的ip地址,其實(shí)也可以使用service的name:mysql
kubectl apply -f wordpress.yaml

# 查看詳情,查看pod部署進(jìn)度
kubectl describe pod mysql-deploy-78cd6964bd-smq4k -n wordpress

[root@m ~]# kubectl get pods -n wordpress -o wide
NAME                                READY   STATUS    RESTARTS   AGE    IP               NODE   NOMINATED NODE   READINESS GATES
mysql-deploy-78cd6964bd-smq4k       1/1     Running   0          71m    192.168.80.193   w2     <none>           <none>
wordpress-deploy-6498447888-c9287   1/1     Running   0          116s   192.168.190.65   w1     <none>           <none>

# 獲取到轉(zhuǎn)發(fā)后的端口,如80端口轉(zhuǎn)到本機(jī)的30493端口
[root@m ~]# kubectl get svc -n wordpress
NAME        TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)        AGE
mysql       ClusterIP   10.104.214.22   <none>        3306/TCP       71m
wordpress   NodePort    10.111.92.1     <none>        80:30493/TCP   2m7s

我們發(fā)現(xiàn),搭建成功了,用瀏覽器訪問192.168.56.101:30493,發(fā)現(xiàn)訪問成功了!
Kubernetes(k8s)實(shí)戰(zhàn):Kubernetes(k8s)部署Springboot項(xiàng)目,云原生,kubernetes,spring boot,adb

4、小結(jié)

在集群中,pod之間可以通過service 的name進(jìn)行訪問,不僅僅是ip,這就意味著,service中不僅幫我們做了負(fù)載均衡,而且做了dns處理。

二、實(shí)戰(zhàn):部署自己的springboot項(xiàng)目

1、準(zhǔn)備一個(gè)springboot項(xiàng)目

訪問:http://localhost:8080/k8s
Kubernetes(k8s)實(shí)戰(zhàn):Kubernetes(k8s)部署Springboot項(xiàng)目,云原生,kubernetes,spring boot,adb
先試用maven打成一個(gè)jar包:

# maven打包
mvn clean pakcage
# 上傳到服務(wù)器
[root@m spring-boot]# pwd
/root/spring-boot
[root@m spring-boot]# ll
total 17140
-rw-r--r--. 1 root root 17547894 Jul  5 15:54 springboot-demo-0.0.1-SNAPSHOT.jar

注意!這一步通常來說使用jenkins完成,此處我們是手動(dòng)完成的。

2、使用docker打成鏡像

(1)編寫Dockerfile:

FROM openjdk:8-jre-alpine
COPY springboot-demo-0.0.1-SNAPSHOT.jar /springboot-demo.jar
ENTRYPOINT ["java","-jar","/springboot-demo.jar"]
# 根據(jù)Dockerfile創(chuàng)建image
docker build -t springboot-demo-image .
# 查看是否成功打成了鏡像
docker images

(2)將鏡像推送至dockerhub
docker鏡像深入學(xué)習(xí),docker鏡像發(fā)布公有云與私有云

# 登錄阿里云鏡像倉庫 # 需要輸入密碼
docker login --username=沙里溝第二小學(xué)扛把子 registry.cn-hangzhou.aliyuncs.com

docker tag springboot-demo-image registry.cn-hangzhou.aliyuncs.com/cxf01/springboot-demo-image:v1.0
docker push registry.cn-hangzhou.aliyuncs.com/cxf01/springboot-demo-image:v1.0

# 登錄 ,需要輸入密碼
docker login --username=沙里溝第二小學(xué)扛把子 registry.cn-hangzhou.aliyuncs.com
# 私有云的話,需要在k8s添加憑證
kubectl create secret docker-registry <secret-name> \
     --docker-username=<username> \
     --docker-password=<password> \
     --docker-email=<email> \
     --docker-server=<registry>

<secret-name> 是您為 secret 指定的名稱,例如 my-registry-secret。
<username> 是您在鏡像倉庫的用戶名。
<password> 是您在鏡像倉庫的密碼。
<email> 是與您在鏡像倉庫的賬號(hào)相關(guān)聯(lián)的電子郵件。
<registry> 是您的鏡像倉庫地址。
接下來,您需要在使用該憑證的部署(deployment)或其他相關(guān)資源中引用該 secret。可以在相關(guān)資源的定義文件中添加以下部分
spec:
     template:
       spec:
         imagePullSecrets:
         - name: <secret-name>

(3)運(yùn)行測試

# 運(yùn)行
docker run -d --name s1 springboot-demo-image # 未做端口映射
# 訪問
docker inspect s1
curl 172.17.0.2:8080/k8s  # 未做端口映射,只能訪問容器ip

3、使用k8s部署springboot

# 以Deployment部署Pod
# vi springboot-demo.yaml
apiVersion: apps/v1
kind: Deployment
metadata: 
  name: springboot-demo
spec: 
  selector: 
    matchLabels: 
      app: springboot-demo
  replicas: 1
  template: 
    metadata:
      labels: 
        app: springboot-demo
    spec: 
      imagePullSecrets: # 私有云憑證
      - name: springboot-demo
      containers: 
      - name: springboot-demo
        image: registry.cn-hangzhou.aliyuncs.com/cxf01/springboot-demo-image:v1.0 # 記得改
        ports: 
        - containerPort: 8080
---
# 創(chuàng)建Pod的Service service的80端口指向pod的8080
apiVersion: v1
kind: Service
metadata: 
  name: springboot-demo
spec: 
  ports: 
  - port: 80
    protocol: TCP
    targetPort: 8080
  selector: 
    app: springboot-demo
---
# 創(chuàng)建Ingress,定義訪問規(guī)則,一定要記得提前創(chuàng)建好nginx ingress controller
apiVersion: extensions/v1beta1
kind: Ingress
metadata: 
  name: springboot-demo
spec: 
  rules: 
  - host: k8s.demo.cxf
    http: 
      paths: 
      - path: /
        backend: 
          serviceName: springboot-demo
          servicePort: 80
# 啟動(dòng)
kubectl apply -f springboot-demo.yaml

kubectl get pods
kubectl get pods -o wide # 查看pod詳細(xì)信息 -192.168.80.194
curl 192.168.80.194:8080/k8s
kubectl get svc # 查看service - 10.106.125.90  80:8080
kubectl get ingress # 查看ingress 
# 查看詳情,查看pod部署進(jìn)度
kubectl describe pod springboot-demo-6d88c74d5b-l9m7k
kubectl scale deploy springboot-demo --replicas=5 # 擴(kuò)容為5個(gè)

三、實(shí)戰(zhàn):部署springcloud項(xiàng)目

1、部署nacos

(1)下載部署nacos server1.0.0
github:https://github.com/alibaba/nacos/releases

01 上傳nacos-server-1.0.0.tar.gz到阿里云服務(wù)器:/usr/local/nacos
02 解壓:tar -zxvf
03 進(jìn)入到bin目錄執(zhí)行:sh startup.sh -m standalone [需要有java環(huán)境的支持]
04 瀏覽器訪問:192.168.56.100:8848/nacos
05 用戶名和密碼:nacos

2、微服務(wù)注冊(cè)到nacos的地址問題

我們有微服務(wù)user、order,在pod注冊(cè)到nacos上的地址,默認(rèn)是pod的內(nèi)部地址。

如果在同一個(gè)k8s集群下,這樣部署是沒問題的,但是不同k8s集群下,微服務(wù)之間就互相不可訪問了。

(1)使用host模式

 ...
 metadata:
      labels: 
        app: order
    spec: 
    # 主要是加上這句話,注意在order.yaml的位置
      hostNetwork: true
      containers: 
      - name: order
        image: registry.cn-hangzhou
...

如上,加上hostNetwork: true,就會(huì)在nacos上注冊(cè)的ip端口,會(huì)映射成宿主機(jī)的ip和端口。文章來源地址http://www.zghlxwxcb.cn/news/detail-527769.html

到了這里,關(guān)于Kubernetes(k8s)實(shí)戰(zhàn):Kubernetes(k8s)部署Springboot項(xiàng)目的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • (十)服務(wù)器K8S集群部署SpringBoot項(xiàng)目實(shí)戰(zhàn)

    (十)服務(wù)器K8S集群部署SpringBoot項(xiàng)目實(shí)戰(zhàn)

    可以在 https://start.spring.io/網(wǎng)站準(zhǔn)備一個(gè)項(xiàng)目,這里作為k8s的學(xué)習(xí)所以springboot項(xiàng)目中準(zhǔn)備一個(gè)簡單的訪問接口即可。 1.更新系統(tǒng)軟件包: 2.安裝 OpenJDK 11: 3.驗(yàn)證 Java 安裝: 4.配置環(huán)境變量 5.使環(huán)境變量生效 1.可以在 https://dlcdn.apache.org/maven/maven-3/3.5.4/binaries/apache-maven-3.5.4-bin

    2024年02月12日
    瀏覽(24)
  • 【云原生、k8s】管理Kubernetes應(yīng)用搭建與部署

    官方提供Kubernetes部署3種方式 (一)minikube Minikube是一個(gè)工具,可以在本地快速運(yùn)行一個(gè)單點(diǎn)的Kubernetes,嘗試Kubernetes或日常開發(fā)的用戶使用。不能用于生產(chǎn)環(huán)境。 官方文檔:https://kubernetes.io/docs/setup/minikube/ (二)二進(jìn)制包 從官方下載發(fā)行版的二進(jìn)制包,手動(dòng)部署每個(gè)組件,

    2024年01月21日
    瀏覽(122)
  • 【云原生 | Kubernetes 系列】K8s 實(shí)戰(zhàn) 管理 Secret 詳解

    【云原生 | Kubernetes 系列】K8s 實(shí)戰(zhàn) 管理 Secret 詳解

    Secret 是一種包含少量敏感信息例如密碼、令牌或密鑰的對(duì)象。 這樣的信息可能會(huì)被放在 Pod 規(guī)約中或者鏡像中。 用戶可以創(chuàng)建 Secret,同時(shí)系統(tǒng)也創(chuàng)建了一些 Secret。 一個(gè) Secret 可以包含 Pod 訪問數(shù)據(jù)庫所需的用戶憑證。 例如,由用戶名和密碼組成的數(shù)據(jù)庫連接字符串。 你可

    2024年02月02日
    瀏覽(96)
  • 云原生Kubernetes:簡化K8S應(yīng)用部署工具Helm

    云原生Kubernetes:簡化K8S應(yīng)用部署工具Helm

    目錄 一、理論 1.HELM ?編輯 2.部署HELM2 3.部署HELM3(2to3方式) 4.部署HELM3(單獨(dú)安裝) 二、實(shí)驗(yàn) 1.部署 HELM2 2.部署HELM3(2to3方式) 3.部署HELM3(單獨(dú)安裝) 三、問題 1.api版本過期 2.helm初始化報(bào)錯(cuò) 3.pod狀態(tài)為ImagePullBackOff 4.helm?命令顯示?no repositories to show?的錯(cuò)誤 5.Helm安裝報(bào)錯(cuò)

    2024年02月07日
    瀏覽(103)
  • 【云原生 | Kubernetes 系列】K8s 實(shí)戰(zhàn) 如何給應(yīng)用注入數(shù)據(jù)

    【云原生 | Kubernetes 系列】K8s 實(shí)戰(zhàn) 如何給應(yīng)用注入數(shù)據(jù)

    前面我們已經(jīng)一起學(xué)習(xí)了很多的東西了,本篇文章,我們將一起學(xué)習(xí),如何給應(yīng)用注入數(shù)據(jù),當(dāng)然,本篇文章不會(huì)講解全部知識(shí)點(diǎn),而是帶領(lǐng)大家,一起學(xué)習(xí)如何對(duì)我們的項(xiàng)目進(jìn)行相關(guān)的配置和設(shè)置。 創(chuàng)建 Pod 時(shí),可以為其下的容器設(shè)置啟動(dòng)時(shí)要執(zhí)行的命令及其參數(shù)。如果要

    2024年02月02日
    瀏覽(95)
  • 云原生Kubernetes: K8S 1.29版本 部署Jenkins

    云原生Kubernetes: K8S 1.29版本 部署Jenkins

    目錄 ?一、實(shí)驗(yàn) 1.環(huán)境 2.K8S 1.29版本 部署Jenkins 服務(wù) 3.jenkins安裝Kubernetes插件 二、問題 1.創(chuàng)建pod失敗 2.journalctl如何查看日志信息 2.容器內(nèi)如何查詢jenkins初始密碼 3.jenkins離線安裝中文包報(bào)錯(cuò) 4.jenkins插件報(bào)錯(cuò) (1)主機(jī) 表1 主機(jī) 主機(jī) 架構(gòu) 版本 IP 備注 master K8S master節(jié)點(diǎn) 1.29.0 1

    2024年04月25日
    瀏覽(27)
  • 【云原生】【k8s】Kubernetes+EFK構(gòu)建日志分析安裝部署

    【云原生】【k8s】Kubernetes+EFK構(gòu)建日志分析安裝部署

    目錄 EFK安裝部署 一、環(huán)境準(zhǔn)備(所有主機(jī)) 1、主機(jī)初始化配置 2、配置主機(jī)名并綁定hosts,不同主機(jī)名稱不同 3、主機(jī)配置初始化 4、部署docker環(huán)境 二、部署kubernetes集群 1、組件介紹 2、配置阿里云yum源 3、安裝kubelet kubeadm kubectl 4、配置init-config.yaml init-config.yaml配置 5、安裝

    2024年02月12日
    瀏覽(29)
  • 云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu)

    云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu)

    目錄 一、理論 1.kubeadm 2.Kubeadm部署K8S單Master架構(gòu) 3.環(huán)境部署 4.所有節(jié)點(diǎn)安裝docker 5.所有節(jié)點(diǎn)安裝kubeadm,kubelet和kubectl 6.部署K8S集群 7.安裝dashboard 8.安裝Harbor私有倉庫 9.內(nèi)核參數(shù)優(yōu)化方案 二、實(shí)驗(yàn) 1.Kubeadm部署K8S單Master架構(gòu) 2.?部署流程 ?3.環(huán)境部署 4.所有節(jié)點(diǎn)安裝docker 5.所有節(jié)

    2024年02月10日
    瀏覽(91)
  • 【云原生 | Kubernetes 系列】K8s 實(shí)戰(zhàn) 使用 Kustomize 對(duì) Kubernetes 對(duì)象進(jìn)行聲明式管理

    【云原生 | Kubernetes 系列】K8s 實(shí)戰(zhàn) 使用 Kustomize 對(duì) Kubernetes 對(duì)象進(jìn)行聲明式管理

    Kustomize 是一個(gè)用來定制 Kubernetes 配置的工具。它提供以下功能特性來管理應(yīng)用配置文件: 從其他來源生成資源 為資源設(shè)置貫穿性(Cross-Cutting)字段 組織和定制資源集合 ConfigMap 和 Secret 包含其他 Kubernetes 對(duì)象(如 Pod)所需要的配置或敏感數(shù)據(jù)。 ConfigMap 或 Secret 中數(shù)據(jù)的來

    2024年01月17日
    瀏覽(103)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包