k8s部署nacos


如果是在centos7上直接啟動nacos

注意修改啟動命令   sh startup.sh -m standalone

訪問路徑 http://********:8848/nacos/index.html

 

https://nacos.io/zh-cn/docs/use-nacos-with-kubernetes.html?tdsourcetag=s_pctim_aiomsg

1. 安裝git 並在每台機器上面clone nacos-k8s

   yum install nfs-utils

   yum install -y git

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

2. 部署NFS  

   a 創建角色

   cd /root/nacos-k8s/deploy/nf

[root@master nfs]# kubectl create -f rbac.yaml 
clusterrole.rbac.authorization.k8s.io/nfs-client-provisioner-runner created
clusterrolebinding.rbac.authorization.k8s.io/run-nfs-client-provisioner created
role.rbac.authorization.k8s.io/leader-locking-nfs-client-provisioner created
rolebinding.rbac.authorization.k8s.io/leader-locking-nfs-client-provisioner created

  b 創建 ServiceAccount 和部署 NFS-Client Provisioner  如果掛載失敗參考下一篇掛載方式

[root@master nfs]# kubectl create -f deployment.yaml 
serviceaccount/nfs-client-provisioner created
deployment.extensions/nfs-client-provisioner created

  c 創建 NFS StorageClass

[root@master nfs]# kubectl create -f class.yaml 
storageclass.storage.k8s.io/managed-nfs-storage created

  d 驗證NFS部署成功

[root@master nfs]# kubectl get pod -l app=nfs-client-provisioner
NAME                                      READY   STATUS    RESTARTS   AGE
nfs-client-provisioner-7f468b4bb6-qlr7g   1/1     Running   0          21m

3.1 部署數據庫  通過本地方式

由於nfs阿里埋了很多坑,只有用本地創建

部署主庫

kubectl apply -f mysql-master-local.yaml  

部署從庫

kubectl apply -f mysql-slave-local.yaml

從庫要修改部分配置不然報錯

service

    工作模式:

         1.11之后 ipvs  1.10 iptables 1.10之前 userspace

    type:

       ClusterIP  集群內部通訊  NodePort 集群外部通訊

    ports:

        port  service上面的端口

       targetPort   pod上面的端口

       nodePort  集群外部被訪問的端口 只有當type等於NodePort才生效

    資源記錄:

        SVC_NAME.NS_NAME.DOMAIN.LTD

查看pod的詳細信息

      kubectl get svc

      kubectl describe svc 名稱

訪問順序  service-> endPoints-> pod

定義一個能被外部訪問的pod

apiVersion: v1

kind: Service

metadata: 

  name: myapp

  namespace: default

spec:

  selector:

     app: myapp

     release: canary

  clusterIP: 10.99.99.99

  type: NodePort

  ports:

    port: 80

    targetPort: 80

    nodePort: 30055  #如果不指定會動態分配

外部訪問方式

while true;do curl http://ip:30055/hostname.html; sleep 1; done

apiVersion: v1
kind: ReplicationController
metadata:
  name: mysql-slave
  labels:
    name: mysql-slave
spec:
  replicas: 1
  selector:  #關聯到那個pod上面,name就是pod的名字在
    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/mysql1
        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
        hostPath:
          path: /var/lib/mysql1
---
apiVersion: v1   #核心容器
kind: Service
metadata:
  name: mysql-slave
  labels:
    name: mysql-slave
spec:
  ports:
  - port: 3306
    targetPort: 3306
  selector:
    name: mysql-slave

3.2 部署數據庫 通過nfs

部署主庫

kubectl apply -f mysql-master-nfs.yaml  

部署從庫  掛載到另外一台服務器

 

4. 部署nacos

kubectl apply -f nacos-quick-start.yaml

查看標簽

kubectl get pods -L app,run --show tables

5. 外部

查看我們創建的服務

[root@master nacos]# kubectl get service
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 2d1h
mysql-master ClusterIP 10.107.47.155 <none> 3306/TCP 27m
mysql-slave ClusterIP 10.105.236.228 <none> 3306/TCP 14m
nacos-headless ClusterIP 10.97.251.211 <none> 8848/TCP 11m

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM