Bootstrap

nacosk8s部署_基于Kubernetes部署nacos配置中心

写在前面的话

作为运维人员,本身对nacos配置中心可能不太熟悉。nacos既是配种中心,又是注册中心,相当于是eureka 和Apollo 的结合体。 应该是可以这么理解的。

Apollo的官方GitHub上,有关于如何基于k8s进行部署和配置的文档以及相应的镜像。但是看了nacos的官网文档之后,感觉一脸懵逼。

官方文档将MySQL也部署在k8s集群内部,建议不要这么做。

一:构建nacos镜像

由于之前的nacos镜像特别的大,而且官网呢,也没有任何的优化。感觉很糊弄。这里我们基于alpine的基础镜像重新初始化了jdk以及nacos的镜像。

这里我主要修改了build目录下的Dockerfile,别的没有动。

构建完成之后,我上传到了自己的阿里云镜像仓库。不为别的,就为拉取快。镜像地址:registry.cn-beijing.aliyuncs.com/skymyyang/nacos:1.3.0

公有的镜像仓库。大家都可以用。

完整的dockerfile如下:

FROM alpine:3.11.2

MAINTAINER skymyyang [email protected]

ENV LANG=C.UTF-8 \

TZ=Asia/Shanghai

RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime \

&& echo $TZ > /etc/timezone \

&& sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories \

&& apk update \

&& apk add --update procps \

&& apk add --no-cache ca-certificates ttf-dejavu tzdata tini bash

ARG NACOS_VERSION=1.3.0

COPY nacos-server-${NACOS_VERSION}.tar.gz /home

RUN apk add --no-cache openjdk8-jre \

&& rm -rf /home/nacos-server-${NACOS_VERSION}.tar.gz /home/nacos/bin/* /home/nacos/conf/*.properties /home/nacos/conf/*.example /home/nacos/conf/nacos-mysql.sql

# set environment

ENV MODE="cluster" \

PREFER_HOST_MODE="ip"\

BASE_DIR="/home/nacos" \

CLASSPATH=".:/home/nacos/conf:$CLASSPATH" \

CLUSTER_CONF="/home/nacos/conf/cluster.conf" \

FUNCTION_MODE="all" \

JAVA_HOME="/usr/lib/jvm/java-1.8-openjdk" \

NACOS_USER="nacos" \

JAVA="/usr/lib/jvm/java-1.8-openjdk/bin/java" \

JVM_XMS="2g" \

JVM_XMX="2g" \

JVM_XMN="1g" \

JVM_MS="128m" \

JVM_MMS="320m" \

NACOS_DEBUG="n" \

TOMCAT_ACCESSLOG_ENABLED="false"

WORKDIR /$BASE_DIR

ADD bin/docker-startup.sh bin/docker-startup.sh

ADD conf/application.properties conf/application.properties

ADD

;