Centos7 Kubernetes(k8s) 开发服务器(单服务器)部署 nacos

这几天对开发服务器中的 k8s和相关模块 进行升级,做个记录
Centos7 Kubernetes(k8s) 开发服务器(单服务器)部署 nacos

环境,与系统

系统:centos 7.6

内核: 5.1.9-1.el7.elrepo.x86_64

Kubernetes(K8s) 1.14.3

服务器IP:192.168.0.254

服务器IP 说明

如果更改了服务器IP 为其他IP,那么请全局全部替换成你改的IP
fox.风

如何安装 k8s

请看 最近写的一篇文章,

https://blog.csdn.net/fenglailea/article/details/88745642
常用 k8s 命令
https://foxwho.blog.csdn.net/article/details/92137467

服务器资源限制

对CPU,内存都做了限制,请自行针对修改

没有使用持久化存储,这里直接使用宿主机存储,如有需要,请自行增加

目录

请把项目放置到 /www/k8s/foxdev/ 目录下,所有都是基于此目录
或者请看 下面一节的 拉取代码

拉取代码

mkdir -p /www/k8s/
cd /www/k8s/

git clone https://github.com/foxiswho/k8s-nacos-sentinel-rocketmq-zipkin-elasticsearch-redis-mysql.git foxdev

cd foxdev

以下是 独立部署 相关模块

k8s nacos 独立部署

编排文件 改动官方的编排的文件,去除了数据库主从备份,这里使用 mariadb 最新版数据库

所以,要先 生成 mariadb 才能 部署 nacos

部署 mariadb 请看
https://blog.csdn.net/fenglailea/article/details/92386472

相关参数说明

对外端口:30848

端口 :8848

账号/密码

nacos/nacos

如何修改nacos 账号及密码,请看官方的

https://nacos.io/zh-cn/docs/console-guide.html

目录

/www/k8s/foxdev/nacos/logs-nacos 日志目录

/www/k8s/foxdev/nacos/init.d/custom.properties 额外配置文件

独立部署 nacos 操作

直接执行 根目录create.n.nacos.start.sh 即可


./create.n.nacos.start.sh

执行完成后,访问控制台网址即可操作naocs配置了

http://192.168.0.254:30848/nacos

测试

服务注册

curl -X PUT 'http://192.168.0.254:8848/nacos/v1/ns/instance?serviceName=test.fox&ip=192.0.1.10&port=8080'

返回

ok

服务发现

curl -X GET 'http://192.168.0.254:8848/nacos/v1/ns/instances?serviceName=test.fox'

发布配置

curl -X POST "http://192.168.0.254:8848/nacos/v1/cs/configs?dataId=test.fox&group=test&content=helloWorld"

返回

true

在浏览器中查看配置列表

就会发现有一个新配置,DataId 为test.fox

Group为test的配置,

点击编辑,可以看到内容为helloWorld

获取配置

curl -X GET "http://192.168.0.254:8848/nacos/v1/cs/configs?dataId=test.fox&group=test"

返回

helloWorld

Kubernetes nacos 编排文件

nacos-service.yml

apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: nacos
spec:
  serviceName: nacos
  replicas: 3
  selector:
    matchLabels:
      app: nacos
  template:
    metadata:
      labels:
        app: nacos
      annotations:
        pod.beta.kubernetes.io/initialized: "true"
    spec:
      affinity:
        podAntiAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
            - labelSelector:
                matchExpressions:
                  - key: "app"
                    operator: In
                    values:
                      - nacos-headless
              topologyKey: "kubernetes.io/hostname"
      containers:
        - name: nacos
          imagePullPolicy: Always
          image: nacos/nacos-server:latest
          resources:
            requests:
              memory: "256Mi"
              cpu: "100m"
          ports:
            - containerPort: 8848
              name: client
          env:
            - name: NACOS_REPLICAS
              value: "3"
            - name: MYSQL_MASTER_SERVICE_HOST
              valueFrom:
                  configMapKeyRef:
                    name: nacos-cm
                    key: mysql.master.host
            - name: MYSQL_SLAVE_SERVICE_HOST
              valueFrom:
                  configMapKeyRef:
                    name: nacos-cm
                    key: mysql.slave.host
            - name: MYSQL_MASTER_SERVICE_DB_NAME
              valueFrom:
                configMapKeyRef:
                  name: nacos-cm
                  key: mysql.master.db.name
            - name: MYSQL_MASTER_SERVICE_PORT
              valueFrom:
                configMapKeyRef:
                  name: nacos-cm
                  key: mysql.master.port
            - name: MYSQL_SLAVE_SERVICE_PORT
              valueFrom:
                configMapKeyRef:
                  name: nacos-cm
                  key: mysql.slave.port
            - name: MYSQL_MASTER_SERVICE_USER
              valueFrom:
                configMapKeyRef:
                  name: nacos-cm
                  key: mysql.master.user
            - name: MYSQL_MASTER_SERVICE_PASSWORD
              valueFrom:
                configMapKeyRef:
                  name: nacos-cm
                  key: mysql.master.password
            - name: NACOS_SERVER_PORT
              value: "8848"
            - name: PREFER_HOST_MODE
              value: "hostname"
            - name: NACOS_SERVERS
              value: "nacos-0.nacos.default.svc.cluster.local:8848 nacos-1.nacos.default.svc.cluster.local:8848 nacos-2.nacos.default.svc.cluster.local:8848"
          volumeMounts:
            - name: vol-logs
              mountPath: /home/nacos/logs
            - name: vol-file
              mountPath: /home/nacos/init.d/custom.properties


      volumes:
        - name: vol-logs
          hostPath:
            path: /www/k8s/foxdev/nacos/logs-nacos
            type: Directory
        - name: vol-file
          hostPath:
              path: /www/k8s/foxdev/nacos/init.d/custom.properties
              type: File


nacos-service.yml

---
apiVersion: V1
kind: Service
metadata:
  name: nacos
  labels:
    app: nacos-headless
spec:
  type: NodePort
  ports:
    - port: 8848
      name: server
      targetPort: 8848
      nodePort: 30848
  selector:
    app: nacos
---
apiVersion: v1
kind: ConfigMap
metadata:
  name: nacos-cm
data:
  mysql.master.db.name: "nacos_devtest"
  mysql.master.port: "3306"
  mysql.slave.port: "3306"
  mysql.master.user: "nacos"
  mysql.master.password: "nacos"
  mysql.master.host: "mariadb-0.mariadb.default.svc.cluster.local"
  mysql.slave.host: "mariadb-0.mariadb.default.svc.cluster.local"

create.n.nacos.start.sh

#!/usr/bin/env bash

DIR=$(pwd)


mkdir -p     ${DIR}/nacos/logs-nacos
chmod -R 777 ${DIR}/nacos/logs-nacos



kubectl create -f  ${DIR}/nacos/nacos-service.yml
kubectl create -f  ${DIR}/nacos/nacos-rc.yml

kubectl get pod

echo -e "\n\n\n"

echo "success"

在开发服务器上部署成功,有问题的,可以联系我

源文件

https://github.com/foxiswho/k8s-nacos-sentinel-rocketmq-zipkin-elasticsearch-redis-mysql

©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页