1.  新建dockerfile文件,将该文件上传到服务器,假设在目录 :/home/app

# java镜像名称
#FROM jdk1.8
FROM java:8
MAINTAINER cn_yang
# 从诉诸机拷贝 jar 到镜像 中的 usr/app 目录下
COPY testdemo.jar /usr/app/testdemo.jar
# 暴露端口
EXPOSE 8085
#  执行 java -jar 命令 (CMD:在启动容器时才执行此行。RUN:构建镜像时就执行此行)
 CMD java -jar /usr/app/testdemo.jar

2. 在 /home/app  目录下执行命令:

# demo_app是镜像的名字,确保各个节点上都有该镜像
docker build -t demo_app .

3. 查看是否成功:

# slave节点上也要有该镜像
docker images

4. 新建Deployment文件,文件名:demo-rc.yaml  (注意该文件的缩进,格式要一定正确)

---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: myapp
spec:
  # 节点数,设置为多个可以实现负载均衡效果
  replicas: 2
  template:
    metadata:
      labels:
        app: demo-app
    spec:
      containers:
        - name: demo-app
          #镜像的名字
          image: demo_app
          imagePullPolicy: IfNotPresent
          ports:
            #镜像对外暴露的端口号
            - containerPort: 8085

5. 创建deployment(假设文件在服务器上的/home/app,进入该目录后执行以下命令)

# 在master节点上执行
# 创建deployment
kubectl create -f demo-rc.yaml

6. 查看是否成功

# 在master节点上执行
kubectl get pods

     成功的状态是:running,如果不成功,那么执行以下命令查看错误日志

# 在master节点上执行

# 查看某个pod的日志  myapp-5c78644fc4-fh7qw 是pod的名字(在上一条命令中查看:kubectl get pods )
kubectl describe pod/myapp-5c78644fc4-fh7qw

# 查看日志
kubectl describe pods

 

7. 创建service,假设文件的名字为demo-svc.yaml,:

apiVersion: v1
kind: Service
metadata:
  name: demo
spec:
  type: NodePort
  ports:
  - port: 8081
    # jar文件的暴露端口
    targetPort: 8085
    # 节点暴露给外部的端口(范围必须为30000-32767)
    nodePort: 30001
  selector:
    #与Deployment文件中的 demo-app名字一致
    app: demo-app

 

8. 执行命令(假设文件在服务器上的/home/app,进入该目录后执行以下命令):

# 在master节点上执行
kubectl create -f demo-svc.yaml 

9. 查看刚才创建的服务,其中30001是对外访问的端口,在浏览器输入地址:http://192.168.199.130:30001/product/find 即可访问(这个地址是我自己的测试)

# 在master节点上执行
kubectl get svc

  

查看服务详情
测试是否可以访问

 

10. 查看服务详情:

# 在master节点上执行
kubectl get pods -o wide

测试的时候,注意防火墙是否关闭,或者在防火墙规则里面放行

 

参考文档1:https://blog.csdn.net/wucong60/article/details/81586272

参考文档2:https://blog.csdn.net/ysk_xh_521/article/details/81668631

 

pod的内存、cpu调整:https://blog.csdn.net/ljx1528/article/details/82867115

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐