写点什么

kubernetes 入门:dashboard 可视化界面部署 springboot 项目

用户头像
小黄鸡1992
关注
发布于: 3 小时前
kubernetes入门:dashboard可视化界面部署springboot项目

1.本文概念解析

ConfigMap:yaml 中引用的配置文件。(如同 springboot 中能够全局常量)


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


Deployment:监控和管理 pod。(如同 tomcat,管理多个项目)


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


namespace:用于实现多租户的资源隔离。(不同的 Deployment 存放于不同位置,方便操作)

2.安装私服

请参考上文 harbor 安装与使用

3.上传镜像到私服

请参考上文 harbor 安装与使用

4.新建 namespace


apiVersion: v1kind: Namespacemetadata:   name: eureka  #空间名称   labels:     name: eureka
复制代码


在 3 处执行以下代码,注意空间名称自行修改。

5.开放端口号

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


vi /etc/kubernetes/manifests/kube-apiserver.yaml
复制代码


添加需要使用的端口号范围。


--service-node-port-range=2-65535
复制代码



如果修改配置文件,需要重新启动!


systemctl daemon-reloadsystemctl restart kubelet
复制代码

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

此操作也可以称为在 namespace 中添加 pod。



向 3 处复制以下配置。


apiVersion: v1      #于k8s集群版本有关,使用kubectl api-servrsions 即可查看当前集群支持的版本kind: Servicemetadata:  name: eureka  namespace: eureka  labels:    app: eurekaspec:               #这是关于该 Service 的定义,描述了 Service 如何选择 Pod,如何被访问  type: NodePort  ports:  - port: 5001    nodePort: 31666  selector:    app: eureka---apiVersion: apps/v1kind: Deployment     #对象类型  #该配置的类型,我们使用的是deploymentmetadata:            #译名为元数据,即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
复制代码


请根据个人配置,按照上文备注自行修改。

7.重新发布 pod

直接删除 pod 即可,k8s 会直接按照已经添加的配置拉取新的镜像重新发布项目。



8.删除 pod

1.宿主机操作

如果想删除 pod,请使用宿主机命令行执行以下命令,删除 deployment。


kubectl get deployment -n eurekakubectl delete deployment eureka -n eureka
复制代码

2.dashboard 面板操作

也可以使用 dashboard 直接操作,分别删除 deployment 和 pod,详情见下图。




请保证上述删除顺序。

9.异常解析

1.failed to set bridge addr: "cni0" already has an IP address different from

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


kubeadm resetsystemctl stop kubeletsystemctl stop dockerrm -rf /var/lib/cni/rm -rf /var/lib/kubelet/*rm -rf /etc/cni/ifconfig cni0 downifconfig flannel.1 downifconfig docker0 downip link delete cni0ip link delete flannel.1systemctl start dockersystemctl start kubeletkubeadm join xxxxxxxxxxxxxxxxxx
复制代码

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

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

用户头像

小黄鸡1992

关注

还未添加个人签名 2021.07.13 加入

还未添加个人简介

评论

发布
暂无评论
kubernetes入门:dashboard可视化界面部署springboot项目