
运维服务
docker离线安装
一、准备工作:确认架构并下载安装包 1.1 确认目标服务器架构 在目标服务器上执行以下命令,确认系统架构: 输出 x8664:对应 amd64 架构(Intel/AMD 64位服务
---
apiVersion: v1
kind: Service
metadata:
name: nacos-headless
labels:
app: nacos-headless
spec:
ports:
- port: 8848
name: server
targetPort: 8848
- port: 7848
name: rpc
targetPort: 7848
selector:
app: nacos
---
apiVersion: v1
kind: ConfigMap
metadata:
name: nacos-cm
data:
mysql.db.name: "nacos_devtest"
mysql.port: "3306"
mysql.user: "nacos"
mysql.password: "nacos"
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: nacos
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
- containerPort: 7848
name: rpc
env:
- name: NACOS_REPLICAS
value: "3"
- name: MYSQL_SERVICE_DB_NAME
valueFrom:
configMapKeyRef:
name: nacos-cm
key: mysql.db.name
- 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: NACOS_APPLICATION_PORT
value: "8848"
- name: PREFER_HOST_MODE
value: "hostname"
- name: NACOS_SERVERS
value: "nacos-0.nacos-headless.default.svc.cluster.local:8848 nacos-1.nacos-headless.default.svc.cluster.local:8848 nacos-2.nacos-headless.default.svc.cluster.local:8848"
selector:
matchLabels:
app: nacos
这是nacos中nacos-quick-start.yaml文件内容,因为我的nacos集群信息保存在mysql里的,所以不需要创建svc挂载存储。这里需要注意几个地方:
1、nacos的命名空间
nacos集群所在的kubernetes中的命名空间,在nacos的yaml文件中没有定义,我们可以在metadata中手动进行添加一下,例如:namespace: wulaoer
2、nacos的连接mysql的信息
在nacos的data下是关于nacos连接mysql的信息,如下:
data: mysql.db.name: "nacos_devtest" mysql.port: "3306" mysql.user: "nacos" mysql.password: "nacos"这里没有定义mysql的主机名,需要手动进行添加,例如:mysql.host: "172.24.0.62"。这样创建的nacos就可以直接连接mysql进行数据存储了。 3、修改nacos的服务名称 针对自己的nacos集群定义符合自己标准的nacos连接名称,可以在name里进行修改,在nacos中针对nacos有一个labels标签,这个标签可以去掉,或者保留根据自己需求。name修改后,为了方便集群之间进行通信需要在NACOS_SERVERS总进行修改。看我的例子:
- name: NACOS_SERVERS
value: "nacos-0.nacos-headless.wulaoer.svc.cluster.local:8848 nacos-1.nacos-headless.wulaoer.svc.cluster.local:8848 nacos-2.nacos-headless.wulaoer.svc.cluster.local:8848"
需要把nacos-headless替换成自己需要的name,我这里用wolf代替修改后的是:
- name: NACOS_SERVERS
value: "nacos-0.wolf.wulaoer.svc.cluster.local:8848 nacos-1.wolf.wulaoer.svc.cluster.local:8848 nacos-2.wolf.wulaoer.svc.cluster.local:8848"
这样nacos集群之间的通信才能正常。如果nacos的集群有节点不正常也可以考虑看一下这里的配置是否正常。
以上就是在kubernetes环境中部署nacos集群的方法,如有不足之处还望不断的提出意见,会及时查看。
评论 0