共计 3961 个字符,预计需要花费 10 分钟才能阅读完成。
kubernetes 环境装置 Nacos 集群
1.nfs 服务器配置
# 所有 k8s 节点执行 | |
yum install -y nfs-utils | |
mkdir -p /usr/local/nacos/nfs-share | |
mkdir -p /usr/local/nacos/mysql-slave | |
mkdir -p /usr/local/nacos/mysql-master | |
chmod a+rw /usr/local/nacos | |
#增加 nacos、mysql-master、mysql-slave 长久化文件夹 | |
vi /etc/exports | |
/usr/local/nacos/mysql-master *(insecure,rw,async,no_root_squash) | |
/usr/local/nacos/mysql-slave *(insecure,rw,async,no_root_squash) | |
/usr/local/nacos/nfs-share *(insecure,rw,async,no_root_squash) | |
systemctl restart rpcbind.service | |
systemctl restart nfs-server.service | |
showmount -e kipnode1 |
2. 部署 nfs
下载 nacos k8s 部署代码
git clone https://github.com/nacos-group/nacos-k8s.git
创立 nacos 命名空间
kubectl create namespace nacos
创立角色
cd nacos-k8s | |
NS=$(kubectl config get-contexts|grep -e "^\*" |awk '{print $5}') | |
NAMESPACE=${NS:-nacos} | |
sed -i''"s/namespace:.*/namespace: $NAMESPACE/g" ./deploy/nfs/rbac.yaml | |
kubectl create -f deploy/nfs/rbac.yaml |
创立 ServiceAccount
和部署 NFS-Client Provisioner
批改 deployment.yaml
apiVersion: v1 | |
kind: ServiceAccount | |
metadata: | |
name: nfs-client-provisioner | |
--- | |
kind: Deployment | |
apiVersion: extensions/v1beta1 | |
metadata: | |
name: nfs-client-provisioner | |
spec: | |
replicas: 1 | |
strategy: | |
type: Recreate | |
template: | |
metadata: | |
labels: | |
app: nfs-client-provisioner | |
spec: | |
serviceAccount: nfs-client-provisioner | |
containers: | |
- name: nfs-client-provisioner | |
image: quay.io/external_storage/nfs-client-provisioner:latest | |
volumeMounts: | |
- name: nfs-client-root | |
mountPath: /persistentvolumes | |
env: | |
- name: PROVISIONER_NAME | |
value: fuseim.pri/ifs | |
- name: NFS_SERVER | |
value: kipnode1 | |
- name: NFS_PATH | |
value: /usr/local/nacos/nfs-share | |
volumes: | |
- name: nfs-client-root | |
nfs: | |
server: kipnode1 | |
path: /usr/local/nacos/nfs-share |
kubectl create -f deploy/nfs/deployment.yaml -n nacos
创立 NFS StorageClass
kubectl create -f deploy/nfs/class.yaml -n nacos
验证 NFS 部署胜利
kubectl get pod -l app=nfs-client-provisioner -n nacos
3. 部署数据库
部署主库
批改 mysql-master-nfs.yaml nfs 地位
apiVersion: v1 | |
kind: ReplicationController | |
metadata: | |
name: mysql-master | |
labels: | |
name: mysql-master | |
spec: | |
replicas: 1 | |
selector: | |
name: mysql-master | |
template: | |
metadata: | |
labels: | |
name: mysql-master | |
spec: | |
containers: | |
- name: master | |
image: nacos/nacos-mysql-master:latest | |
ports: | |
- containerPort: 3306 | |
volumeMounts: | |
- name: mysql-master-data | |
mountPath: /var/lib/mysql | |
env: | |
- name: MYSQL_ROOT_PASSWORD | |
value: "root" | |
- name: MYSQL_DATABASE | |
value: "nacos_devtest" | |
- name: MYSQL_USER | |
value: "nacos" | |
- name: MYSQL_PASSWORD | |
value: "nacos" | |
- name: MYSQL_REPLICATION_USER | |
value: 'nacos_ru' | |
- name: MYSQL_REPLICATION_PASSWORD | |
value: 'nacos_ru' | |
volumes: | |
- name: mysql-master-data | |
nfs: | |
server: kipnode1 | |
path: /usr/local/nacos/mysql-master | |
--- | |
apiVersion: v1 | |
kind: Service | |
metadata: | |
name: mysql-master | |
labels: | |
name: mysql-master | |
spec: | |
ports: | |
- port: 3306 | |
targetPort: 3306 | |
selector: | |
name: mysql-master |
kubectl create -f deploy/mysql/mysql-master-nfs.yaml -n nacos
部署从库
批改 mysql-slave-nfs.yaml nfs 地位
apiVersion: v1 | |
kind: ReplicationController | |
metadata: | |
name: mysql-slave | |
labels: | |
name: mysql-slave | |
spec: | |
replicas: 1 | |
selector: | |
name: mysql-slave | |
template: | |
metadata: | |
labels: | |
name: mysql-slave | |
spec: | |
containers: | |
- name: slave | |
image: nacos/nacos-mysql-slave:latest | |
ports: | |
- containerPort: 3306 | |
volumeMounts: | |
- name: mysql-slave-data | |
mountPath: /var/lib/mysql | |
env: | |
- name: MYSQL_ROOT_PASSWORD | |
value: "root" | |
- name: MYSQL_REPLICATION_USER | |
value: 'nacos_ru' | |
- name: MYSQL_REPLICATION_PASSWORD | |
value: 'nacos_ru' | |
volumes: | |
- name: mysql-slave-data | |
nfs: | |
server: kipnode1 | |
path: /usr/local/nacos/mysql-slave | |
--- | |
apiVersion: v1 | |
kind: Service | |
metadata: | |
name: mysql-slave | |
labels: | |
name: mysql-slave | |
spec: | |
ports: | |
- port: 3306 | |
targetPort: 3306 | |
selector: | |
name: mysql-slave |
kubectl create -f deploy/mysql/mysql-slave-nfs.yaml -n nacos
4. 部署 Nacos
批改 deploy/nacos/nacos-pvc-nfs.yaml 和数据库配置文件保持一致即可
data: | |
mysql.master.db.name: "主库名称" | |
mysql.master.port: "主库端口" | |
mysql.slave.port: "从库端口" | |
mysql.master.user: "主库用户名" | |
mysql.master.password: "主库明码" |
kubectl create -f deploy/nacos/nacos-pvc-nfs.yaml -n nacos
应用 kubectl scale 对 Nacos 动静扩容
kubectl scale sts nacos --replicas=3 -n nacos
5. 创立 ingress
vi ingress/nacos-ingress.yaml
--- | |
# 创立 Ingress,定义拜访规定 | |
apiVersion: extensions/v1beta1 | |
kind: Ingress | |
metadata: | |
name: nacos-headless | |
spec: | |
rules: | |
- host: demo.nacos.com | |
http: | |
paths: | |
- path: / | |
backend: | |
serviceName: nacos-headless | |
servicePort: 8848 |
kubectl create -f nacos-ingress.yaml -n nacos
nacos 后盾治理拜访地址:
http://demo.nacos.com/nacos
本文由博客群发一文多发等经营工具平台 OpenWrite 公布
正文完