97色精品视频在线观看免费,日韩欧美亚洲每日更新网,国产精品色婷婷99久久精品,99e热久久免费精品首页

K8S實戰之部署java應用

2021-11-03 15:53:40 shuai.chang

睿智創新RAIZ,一體化IT服務提供商

kubernetes基本概念

Pod:

1.最小的部署單元,
2.一組容器的集合
3.一個pod中的容器共享網絡命名空間
4.生命周期是短暫的

Controllers:

1.Deployment:部署無狀態應用
2.Statefulset:部署有狀態應用
3.Replicaset:確保預期的Pod副本數量
4.Daemonset: 確保node運行同一個pod
5.Job:一次性任務
6.Cronjob:定時任務
更高級層次對象,部署和管理pod

Service:

防止Pod失聯,找到你需要Pod
定義一組Pod的負載均衡訪問策略

Label:標簽,附加到某個資源上,用于關聯對象,查詢和篩選

Namespaces:命名空間,將對象進行邏輯上隔離或者資源隔離

項目遷移到k8s平臺是怎么樣的流程?

睿智創新RAIZ,一體化IT服務提供商

基礎鏡像(一個空白的鏡像)---------------運行環境鏡像(py/php/go/java)---------------項目鏡像(項目打包)

實戰項目開始

服務器ip服務器名稱
192.168.106.102k8s-master
192.168.106.103k8s-node01
192.168.106.104k8s-node02
192.168.106.103mysql數據庫

1.0將java源碼程序項目包導入到master服務器上,如圖所示

睿智創新RAIZ,一體化IT服務提供商

1將db目錄下數據文件導入mysql中(node01)

#192.168.106.103數據庫執行
source  /root/tables_ly_tomcat.sql
grant all on test.* to  'test'@'%'  identified by "Zhangfan@123"#增加一個授權用戶,在master登錄能正常登錄

修改連接數據庫的配置文件,改成剛才數據授權的用戶和ip

vim src/main/resources/application.yml

睿智創新RAIZ,一體化IT服務提供商

2開始制作鏡像java鏡像(master)

我在之前的博文中講了如何構建java鏡像  https://blog.csdn.net/weixin_43546282/article/details/112210164

cat  Dockerfile
FROM centos:7                   
MAINTAINER zhangfan             
ENV VERSION=8.5.61               
RUN yum install java-1.8.0-openjdk wget curl unzip iproute net-tools -y &&
    yum clean all &&
    rm -rf /var/cache/yum/*
RUN wget https://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-8/v${VERSION}/bin/apache-tomcat-${VERSION}.tar.gz &&
    tar zxf apache-tomcat-${VERSION}.tar.gz &&
    mv apache-tomcat-${VERSION} /usr/local/tomcat &&
    rm -rf apache-tomcat-${VERSION}.tar.gz /usr/local/tomcat/webapps/* &&
    mkdir /usr/local/tomcat/webapps/test &&
    echo "ok" > /usr/local/tomcat/webapps/test/status.html &&
    sed -i '1a JAVA_OPTS="-Djava.security.egd=file:/dev/./urandom"' /usr/local/tomcat/bin/catalina.sh &&
    ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
ENV PATH $PATH:/usr/local/tomcat/bin 
WORKDIR /usr/local/tomcat
EXPOSE 8080
CMD ["catalina.sh", "run"]

安裝編譯環境

yum -y install  java-1.8.0-openjdk    maven 
cd      /root/tomcat-java-demo-master
vim src/main/resources/application.yml  #修改配置文件指定剛才創建用戶的數據庫
mvn  clean  package  -Dmaven.test.skip=true

編譯完成如圖所示,生成一個war包

睿智創新RAIZ,一體化IT服務提供商

制作新Dockerfile

cat  Dockerfile 
FROM tomcat:v1
LABEL test  www.zhangsan.com
RUN rm -rf    /usr/local/tomcat/webapps/*
ADD target/*.war  /usr/local/tomcat/webapps/ROOT.war

#注意這里命名  ` zhangfan5391621/java-demo`  zhangfan5391621表示docker hub倉庫登錄名/java-demo為項目名

docker build -t  zhangfan5391621/java-demo  .

睿智創新RAIZ,一體化IT服務提供商

構建完成如圖所示,新項目鏡像構建完成

3將鏡像推入docker hub倉庫中

https://hub.docker.com/repository/docker/zhangfan5391621/zf_test

睿智創新RAIZ,一體化IT服務提供商

docker push zhangfan5391621/java-demo   #上傳到docker hub倉庫中去

睿智創新RAIZ,一體化IT服務提供商

4生成k8s-Pod

 kubectl  create  deployment  java-demo  --image=zhangfan5391621/java-demo  --dry-run -o yaml > deploy.yaml

在本地生成一個yaml標準文件

cat deploy.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: java-demo
  name: java-demo
spec:
  replicas: 3  #三個副本
  selector:
    matchLabels:
      app: java-demo
  template:
    metadata:
      labels:
        app: java-demo
    spec:
      containers:
      - image: zhangfan5391621/java-demo
        name: java-demo
kubectl apply -f  deploy.yaml   #構建pod
kubectl  get pods  #全部狀態running說明構建成功

睿智創新RAIZ,一體化IT服務提供商

檢查pod日志,無錯誤說明成功,如果報錯狀態不對用下面命令檢查

`kubectl describe nodes  k8s-node01   #檢查node`
`kubectl  logs java-demo-876cf6688-57jzf`

5 暴露應用svc

 kubectl  expose deployment  java-demo  --port=80 --target-port=8080 --type=NodePort -o yaml --dry-run > svc.yaml

java-demo :剛才創建deployment時的名稱, --port=80:容器內部訪問端口  --target-port=8080 :指定pod內部端口  --type=NodePort: 指定外部訪問的端口為隨機生成端口

kubectl apply  -f     svc.yaml   #創建svc
kubectl  get  pods,svc

睿智創新RAIZ,一體化IT服務提供商

http://192.168.106.102:30187/  #任意節點ip:30187都能正常訪問

睿智創新RAIZ,一體化IT服務提供商至此項目部署完成

整個完成順序是

構建環境鏡像----------構建項目鏡像----------推送到hub倉庫----------構建Pod----------暴露應用svc


我要咨詢
主站蜘蛛池模板: 东乌珠穆沁旗| 宜君县| 汝南县| 青神县| 察雅县| 申扎县| 临夏市| 同心县| 会同县| 云和县| 静乐县| 尖扎县| 广水市| 延吉市| 文化| 哈密市| 安陆市| 左云县| 连平县| 呼玛县| 伊通| 鄄城县| 高邑县| 呈贡县| 友谊县| 那曲县| 准格尔旗| 得荣县| 望都县| 池州市| 苍山县| 开远市| 都安| 深泽县| 柳河县| 邵东县| 庆阳市| 兰坪| 定兴县| 和顺县| 佳木斯市|