通过k8s搭建部署服务(nacos为例)

这篇具有很好参考价值的文章主要介绍了通过k8s搭建部署服务(nacos为例)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言:写这篇文章也算是自己对k8s的一种学习,加深一下k8s对服务部署的印象。

环境:使用的本地windows系统下的docker desktop工具,高版本的docker desktop自带了k8s服务所以就不需要特地去linux系统上装k8s了。docker desktop相当于在windows系统下配置了docker环境和k8s环境,可以直接在powershell控制台中执行docker以及k8s的相关命令。

1.创建镜像:

这里我没有自己去创建一个nacos的镜像,而是通过docker拉取镜像的命令从仓库下载了nacos最新的镜像。

docker pull nacos/nacos-server

下载完成后可以通过 docker images 命令查看下载的镜像,当然你也可以自己通过DockerFile来手动创建镜像,下面我自己写的简单的nacos镜像,nacos也是直接从官网下载来的,通过命令复制到容器中并运行(这种方式也可以直接用在java部署上,复制相应的jar包,最后执行相应脚本就可以)

k8s部署nacos,k8s学习,kubernetes,容器,云原生

 然后是创建镜像命令

docker build -t nacos:v230712.1 -f .\NacosDockerfile .

不过自己创建的nacos镜像遇上好些问题:

1.docker镜像建立好后,启动容器报错 [[ : not found 

问题出在最后执行脚本文件的时候更具不同的系统,脚本开头不同比如ubuntu系统使用bashk8s部署nacos,k8s学习,kubernetes,容器,云原生,linux系统使用shk8s部署nacos,k8s学习,kubernetes,容器,云原生

 2.如果是容器后台运行,命令执行完后容器就关闭了,我也是懵逼了好久也不知道为什么。

nacos的bin/startup.sh的启动命令原来是

k8s部署nacos,k8s学习,kubernetes,容器,云原生

我直接改成,顺带把日志的记录也给删了,这个我不知道会不会影响

k8s部署nacos,k8s学习,kubernetes,容器,云原生

不放在后台运行结果就没有再出现容器停止的情况,如果有大佬懂得话麻烦评论区解答一下。

镜像创建好后编写k8s的deployment.yaml文件:

apiVersion: apps/v1
kind: Deployment
metadata: 
    name: nacos-dep
    namespace: tangcfv1
spec:
    replicas: 1
    template:
        metadata: 
            labels:
                app: nacos-dep
        spec: 
            containers:
              - name: k8snacos
                image: nacos:v230712.1 
                ports:
                  - name: http-8848
                    containerPort: 8848
                    name: client
                env: 
                  - name: MODE
                    value: standalone
                  - name: PREFER_HOST_MODE
                    value: hostname
    selector:
        matchLabels:
            app: nacos-dep

执行命令:

kubectl apply -f .\nacos.yaml

运行结果:

k8s部署nacos,k8s学习,kubernetes,容器,云原生

 这里启动后外服服务器还不能访问,需要再启动service服务来进行转发service.yaml

apiVersion: v1
kind: Service
metadata:
    name: nacos-service
    namespace: tangcfv1
spec:
    selector:
        app: nacos-dep
    ports:
      - name: web
        port: 8848
        targetPort: 8848
        nodePort: 30001  #这个地方写30001是因为我这个docker desktop启动的时候默认的端口范围是30001~63225,我一下子也不知道那里配置就直接写30001了
    type: NodePort

 执行命令:

kubectl apply -f .\nacos-service.yaml

运行结果: 

k8s部署nacos,k8s学习,kubernetes,容器,云原生

 然后直接再浏览器输入:IP + 30001:8848/nacos

k8s部署nacos,k8s学习,kubernetes,容器,云原生

 就直接进去啦,不过不知道为啥没有做登录验证,我怀疑可能没有去读conf下面的配置,这个以后再说。

这个文章只是重述一下简单的k8s部署,实际上k8s的yaml文件中kind的类型貌似一共有10种,可以直接配置比如挂载卷、deployment与service一体等好些操作,我自己再研究研究,感觉有必要就在写写文章记录一下。文章来源地址https://www.toymoban.com/news/detail-627826.html

到了这里,关于通过k8s搭建部署服务(nacos为例)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • k8s部署nacos集群模式

    主要是在k8s集群部署nacos集群(3节点),数据库使用外置的 mysql ,由于有现成的阿里云RDS,就直接使用了。相比官方的在k8s内创建数据库的方案更方便。所有nacos配置 全部保存在数据库中,不用担心重启掉线等异常导致配置文件丢失。 Nacos及所有相关服务都部署在default 命名空间

    2024年02月16日
    浏览(41)
  • k8s部署单节点nacos

    单节点         由于nacos server需要mysql数据库,我们可以先把官方提供的mysql 脚本准备好,如果直接使用官方提供的镜像nacos/nacos-server:latest, 那么在启动时会自动帮你在mysql数据库里初始化好nacos需要的数据库,不需要再执行如下SQL脚本。         注:以下SQL为nacos官方提供运

    2024年02月05日
    浏览(54)
  • 【Nacos】基于k8s容器化部署Nacos集群

    近期,在机器上部署了三个节点的nacos集群服务用于几个小型微服务的注册配置中心,并使用了Nginx简单代理了一下,随即简单研究了下集群部署分布式部署稍微提高可用性。部署完后能够正常使用,但是发现一个问题,刷新Nacos集群节点列表,总会有一个或者两个节点时不时

    2024年02月11日
    浏览(60)
  • 二进制部署nacos、docker部署nacos、k8s部署nacos、helm部署nacos

    环境: centos7.9、k8s 1.22.15 、docker 20.10.9、nacos-server-2.2.2.tar.gz nacos是一个用于构建云原生应用的动态服务发现、配置管理和服务管理平台,简称服务配置注册管理中心。 本篇不讲多集群模式。本篇讲传统方式、docker方式、k8s方式部署nacos单机版和cluster版。 nacos的github官网:

    2024年02月04日
    浏览(73)
  • Kubernetes(k8s)上搭建nacos集群

    你需要准备一个Kubernetes集群,如图我的集群已经准备完毕: nacos可以将配置文件存储到数据库当中,所以我们要先准备一个拥有nacos数据表结构的数据库,这样的数据库镜像我已经准备好了,当然你也可以自己制作这个镜像: 我之前写过一篇Kubernetes上安装数据库的文章:h

    2024年02月03日
    浏览(67)
  • K8S搭建NACOS集群踩坑问题

    现象描述:通过K8S的statefulset启动,通过NodePort暴露不能在外网访问,只能在MASTER主节点访问。 yaml配置: 原因分析: 因为我们要将POD固定运行在NODE52这台节点上,所以加上了 nodeName: host-52,但是同时也加上了hostNetwork: true,导致POD已经启动,但是只能在主节点通过28855端口访

    2024年02月09日
    浏览(43)
  • 学习笔记十三:云服务器通过Kubeadm安装k8s1.25,供后续试验用

    podSubnet(pod网段) 10.244.0.0/16 serviceSubnet(service网段): 10.96.0.0/12 实验环境规划: 操作系统:centos7.5 配置: 2Gib内存/4vCPU/50G硬盘 修改主机名 配置yum源 关闭防火墙 关闭selinux 配置时间同步 配置主机 hosts 文件,相互之间通过主机名互相访问 192.168.40.180 为你的内网IP 修改机器内

    2024年02月15日
    浏览(41)
  • Vmware虚拟机搭建 K8S ingress Jenkins Gitlab Harbor Docker 一键部署SpringCloud微服务

    本文主要基于Kubernetes1.22.2和Linux操作系统Ubuntu 20.04.6。 操作系统 主机名 IP地址 进程 功能 Ubuntu 20.04.6 k8s-master 192.168.189.128 docker,kube-apiserver,etcd,kube-scheduler,kube-controller-manager,kubelet,kube-proxy,coredns,calico 主节点 Ubuntu 20.04.6 k8s-node1 192.168.189.129 docker,kubelet,kube-proxy,c

    2024年02月03日
    浏览(53)
  • k8s搭建部署(超详细)

    Kubernetes是Google 2014年创建管理的,是Google 10多年大规模容器管理技术Borg的开源版本。它是容器集群管理系统,是一个开源的平台,可以实现容器集群的自动化部署、自动扩缩容、维护等功能。 通过Kubernetes你可以: 快速部署应用 快速扩展应用 无缝对接新的应用功能 节省资源

    2024年01月16日
    浏览(33)
  • 通过kubeadm部署k8s 1.27高可有集群

    本次部署使用外部etcd集群+LB+K8S集群方案。如下图: 软件列表及软件版本:CentOS7U9, Linux kernel 5.4,docker-ce 23.0.6,cri-dockerd v0.3.1,k8s集群为1.27.1 所有主机均需要操作。 所有主机均需要操作。 所有主机均需要操作。 修改完成后需要重启操作系统,如不重启,可临时关闭,命令为s

    2024年02月13日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包