五分钟带你玩转k8s实战spring boot,应用环境发布java项目,楼主亲测

Posted 小黄鸡1992

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了五分钟带你玩转k8s实战spring boot,应用环境发布java项目,楼主亲测相关的知识,希望对你有一定的参考价值。

下文kind概念

ConfigMap:yaml中引用的配置文件

Service:暴露容器的网络使得外部端口得以访问内部容器的信息

Deployment:监管Pod的数量的一个家庭 (如同tomcat 管理多个pod)

Pod:可以拥有多容器,最小调度单位(一个docker容器)

1.安装私服

请参考https://blog.csdn.net/qq_20143059/article/details/116735846

2.上传镜像到私服

请参考https://blog.csdn.net/qq_20143059/article/details/116735846

3.登录kubernetes-dashboard 新建namespace

apiVersion: v1
kind: Namespace
metadata:
   name: eureka  #空间名称
   labels:
     name: eureka

4.开放端口号

k8s默认的端口号范围为30000-32767 如果需要使用其他端口 需要重新配置 请执行以下操作

vi /etc/kubernetes/manifests/kube-apiserver.yaml

添加

--service-node-port-range=2-65535

重新启动

systemctl daemon-reload
systemctl restart kubelet

5.在工作空间中创建springboot项目

apiVersion: v1      #于k8s集群版本有关,使用kubectl api-servrsions 即可查看当前集群支持的版本
kind: Service
metadata:
  name: eureka
  namespace: eureka
  labels:
    app: eureka
spec:               #这是关于该 Service 的定义,描述了 Service 如何选择 Pod,如何被访问
  type: NodePort
  ports:
  - port: 5001
    nodePort: 31666
  selector:
    app: eureka
---
apiVersion: apps/v1
kind: Deployment     #对象类型  #该配置的类型,我们使用的是deployment
metadata:            #译名为元数据,即deployment的一些基本属性和信息
  name: eureka       #deployment的名称
  labels:            #标签,可以灵活定位一个或多个资源,其中key和value均可自定义,可以定义多组
    app: eureka      #为该deployment设置key为app value为nginx的标签 
spec:                #这是关于该deployment的描述,可以理解为你期待该deployment再k8s中如何使用
  replicas: 1        #运行容器的副本数,修改这里可以快速修改分布式节点数量
  selector:          #标签选择器,与上面的标签共同作用
    matchLabels:     #选择包含标签app:nginx的资源
      app: eureka
  template:          #这是选择或创建pod的模板
    metadata:        #pod的元数据
      labels:        #pod的标签,上面的selector即选择包含标签app:nginx的pod
        app: eureka
    spec:            #期待pod实现的功能(即在pod中部署)
      containers:    #生成container,与docker中的container是同一种
      - name: eureka #container的名称
        image: 192.168.41.44:9000/eureka/eureka:latest #私服镜像
        imagePullPolicy: IfNotPresent #pull镜像时机
        ports:
        - containerPort: 5001         #容器对外开放端口
      nodeName: eureka                #执行发布的node

如果出现以下报错 可能是nodes多次加入master照成网络冲突 在nodes执行下面命令 重新加入

: failed to set bridge addr: "cni0" already has an IP address different from
kubeadm reset
systemctl stop kubelet
systemctl stop docker
rm -rf /var/lib/cni/
rm -rf /var/lib/kubelet/*
rm -rf /etc/cni/
ifconfig cni0 down
ifconfig flannel.1 down
ifconfig docker0 down
ip link delete cni0
ip link delete flannel.1
systemctl start docker
systemctl start kubelet
kubeadm join xxxxxxxxxxxxxxxxxx

 

如果出现以下报错,请检查以上yaml是否格式错误 如:tab代替空格 需要空格等

 found a tab character that violates indentation/found character that cannot staart any token 

6.删除pods

kubectl get deployment -n eureka
kubectl delete deployment eureka -n eureka

 

以上是关于五分钟带你玩转k8s实战spring boot,应用环境发布java项目,楼主亲测的主要内容,如果未能解决你的问题,请参考以下文章

五分钟带你玩转spring cloud alibaba实战!getway网关

五分钟带你玩转spring cloud alibaba实战!getway网关

五分钟带你玩转spring cloud alibaba实战!springboot注册到nacos

五分钟带你玩转spring cloud alibaba实战!springboot注册到nacos

五分钟带你玩转spring cloud alibaba越玩越溜!实战Spring Cloud Alibaba Sentinel

五分钟带你玩转spring cloud alibaba越玩越溜!实战Spring Cloud Alibaba Sentinel