nacosk8s部署_在Kubernetes上部署Nacos

本文档介绍了如何在Kubernetes(k8s)环境中部署Nacos,使用外部MySQL数据库,通过修改yaml配置文件设置NACOS_SERVERS,创建Namespace、Service、ConfigMap和StatefulSet,并最终通过kubectl应用部署。
摘要由CSDN通过智能技术生成

这里使用的是外部 mysql 数据库,所以没有使用官方提供的 mysql 和存储方案。

1、clone 项目

git clone https://github.com/nacos-group/nacos-k8s.git

2、修改 yaml 文件,这里要注意 NACOS_SERVERS 的格式

cd nacos-k8s/deploy/nacos/

vim nacos-quick-start.yaml

---

# 添加一个 namespace

apiVersion: v1

kind: Namespace

metadata:

name: yunjing-test

---

apiVersion: v1

kind: Service

metadata:

name: nacos-headless

namespace: yunjing-test

labels:

app: nacos-headless

spec:

ports:

- port: 8848

name: server

targetPort: 8848

nodePort: 30112 # 添加 nodePort 曝光控制台

selector:

app: nacos

type: NodePort

---

apiVersion: v1

kind: ConfigMap

metadata:

name: nacos-cm

namespace: yunjing-test

data:

mysql.db.host: "172.20.72.200" # 添加外部 mysql 访问地址

mysql.db.name: "nacos_k8s"

mysql.port: "3306"

mysql.user: "nacos_rw"

mysql.password: "nacos_rw@unicom"

---

apiVersion: apps/v1

kind: StatefulSet

metadata:

name: nacos

namespace: yunjing-test

spec:

serviceName: nacos-headless

replicas: 3

template:

metadata:

labels:

app: nacos

annotations:

pod.alpha.kubernetes.io/initialized: "true"

spec:

affinity:

podAntiAffinity:

requiredDuringSchedulingIgnoredDuringExecution:

- labelSelector:

matchExpressions:

- key: "app"

operator: In

values:

- nacos-headless

topologyKey: "kubernetes.io/hostname"

containers:

- name: k8snacos

imagePullPolicy: Always

image: nacos/nacos-server:latest

resources:

requests:

memory: "2Gi"

cpu: "500m"

ports:

- containerPort: 8848

name: client

env:

- name: NACOS_REPLICAS

value: "3"

- name: MYSQL_SERVICE_DB_NAME

valueFrom:

configMapKeyRef:

name: nacos-cm

key: mysql.db.name

- name: MYSQL_SERVICE_HOST # 添加 mysql 访问地址的环境变量

valueFrom:

configMapKeyRef:

name: nacos-cm

key: mysql.db.host

- name: MYSQL_SERVICE_PORT

valueFrom:

configMapKeyRef:

name: nacos-cm

key: mysql.port

- name: MYSQL_SERVICE_USER

valueFrom:

configMapKeyRef:

name: nacos-cm

key: mysql.user

- name: MYSQL_SERVICE_PASSWORD

valueFrom:

configMapKeyRef:

name: nacos-cm

key: mysql.password

- name: NACOS_SERVER_PORT

value: "8848"

- name: PREFER_HOST_MODE

value: "hostname"

- name: NACOS_SERVERS

value: "nacos-0.nacos-headless.yunjing-test.svc.cluster.local:8848 nacos-1.nacos-headless.yunjing-test.svc.cluster.local:8848 nacos-2.nacos-headless.yunjing-test.svc.cluster.local:8848" # 修改 namespace 名称

selector:

matchLabels:

app: nacos

3、部署 nacos

kubectl apply -f nacos-quick-start.yaml

4、查看服务状态

kubectl get po -n yunjing-test

正常情况效果如下:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值