开发者社区 > 云原生 > 正文

k8s 部署 nacos 开启权限系统 请问怎么配? 一更新镜像就不行

k8s 部署 nacos 开启权限系统 NACOS_AUTH_ENABLE
Please set nacos.core.auth.server.identity.key and nacos.core.auth.server.identity.value
请问怎么配?
一更新镜像就不行

展开
收起
乐天香橙派 2023-07-09 15:23:14 1064 0
5 条回答
写回答
取消 提交回答
  • 值得去的地方都没有捷径

    对于在Kubernetes中部署Nacos并开启权限系统,你可以按照以下步骤进行配置:

    创建一个Kubernetes的ConfigMap,将Nacos的配置信息作为key-value对保存在其中。可以使用命令如下:
    kubectl create configmap nacos-config --from-literal=nacos.core.auth.server.identity.key= --from-literal=nacos.core.auth.server.identity.value=
    将替换为你自己的identity key,将替换为你自己的identity value。

    在Nacos的部署文件中,添加以下部分以使用上述ConfigMap中的配置信息:
    env:

    • name: NACOS_AUTH_IDENTITY_KEY
      valueFrom:
      configMapKeyRef:
      name: nacos-config
      key: nacos.core.auth.server.identity.key
      
    • name: NACOS_AUTH_IDENTITY_VALUE
      valueFrom:
      configMapKeyRef:
      name: nacos-config
      key: nacos.core.auth.server.identity.value
      
      确保你的部署文件中已经设置了NACOS_AUTH_ENABLE为true,以开启Nacos的权限系统。

    更新你的镜像时,先删除旧的Pod,然后重新创建新的Pod。由于ConfigMap中保存了配置信息,新创建的Pod会使用最新的配置。

    对于你提到的问题二,关于在Kubernetes中开启权限系统的具体配置,你可以参考Nacos的官方文档或查看Kubernetes相关的issue和讨论。

    请注意,以上步骤仅供参考,具体的配置可能会因你的环境和需求而有所不同。建议参考Nacos官方文档或者与社区的开发者进行交流以获得更准确的配置信息。

    2023-07-11 15:23:45
    赞同 展开评论 打赏
  • 北京阿里云ACE会长

    在 Nacos 的配置文件 nacos-server.properties 中,开启权限系统,设置 NACOS_AUTH_ENABLE 为 true:
    Copy
    nacos.core.auth.enabled=true
    为 Nacos 的权限系统配置身份认证信息,其中 nacos.core.auth.server.identity.key 和 nacos.core.auth.server.identity.value 分别表示身份认证的键和值。例如,可以设置为:
    Copy
    nacos.core.auth.server.identity.key=auth-key
    nacos.core.auth.server.identity.value=auth-value
    在 Kubernetes 中,可以通过环境变量的方式设置 Nacos 的配置项。可以在 Nacos 的 Deployment 中,添加如下的环境变量:
    Copy

    • name: NACOS_AUTH_ENABLE
      value: "true"
    • name: NACOS_AUTH_IDENTITY_KEY
      value: "auth-key"
    • name: NACOS_AUTH_IDENTITY_VALUE
      value: "auth-value"
      其中,NACOS_AUTH_ENABLE 表示开启权限系
    2023-07-09 20:50:04
    赞同 展开评论 打赏
  • 官网有鉴权使用文档可以找一下鉴权相关的,更新版本要注意版本的说明更新,一般有大变化说明更新都会重点提示。—此回答来自钉群”Nacos社区群4“

    2023-07-09 17:06:32
    赞同 展开评论 打赏
  • 要在 Kubernetes 上部署 Nacos 并启用权限系统,你需要进行以下步骤:

    1. 创建 Nacos 的配置文件:创建一个名为 custom.properties 的文件,用于定义 Nacos 的配置。可以参考 Nacos 官方文档中的权限配置项说明,并根据你的需求进行配置。例如,可以设置以下内容:
    # 启用认证
    nacos.security.enabled=true
    
    # 设置默认用户名和密码
    nacos.security.username=myusername
    nacos.security.password=mypassword
    
    1. custom.properties 文件挂载到 Nacos Pod 中:在 Kubernetes 的 Pod 配置中,添加一个 volumevolumeMount,将 custom.properties 文件挂载到容器内的 /home/nacos/init.d/ 目录下。示例配置如下:
    apiVersion: v1
    kind: Pod
    metadata:
      name: nacos
    spec:
      containers:
        - name: nacos
          image: nacos/nacos-server:latest
          ports:
            - containerPort: 8848
          volumeMounts:
            - name: custom-config
              mountPath: /home/nacos/init.d/custom.properties
              subPath: custom.properties
      volumes:
        - name: custom-config
          configMap:
            name: nacos-config
    
    1. 创建 ConfigMap 对象:使用 kubectl 命令或 YAML 文件创建一个 ConfigMap 对象,将 custom.properties 文件的内容作为数据存储在 ConfigMap 中。
    kubectl create configmap nacos-config --from-file=custom.properties
    
    1. 更新 Nacos 的 Deployment 配置:更新 Nacos 的 Deployment 配置,将 ConfigMap 挂载到 Pod 中,并将环境变量 NACOS_CONFIG_FILE 设置为 /home/nacos/init.d/custom.properties
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: nacos-deployment
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: nacos
      template:
        metadata:
          labels:
            app: nacos
        spec:
          containers:
            - name: nacos
              image: nacos/nacos-server:latest
              ports:
                - containerPort: 8848
              volumeMounts:
                - name: custom-config
                  mountPath: /home/nacos/init.d/custom.properties
                  subPath: custom.properties
              env:
                - name: NACOS_CONFIG_FILE
                  value: /home/nacos/init.d/custom.properties
          volumes:
            - name: custom-config
              configMap:
                name: nacos-config
    
    1. 应用配置:使用 kubectl apply 命令应用更新后的 Deployment 配置,以便部署启动具有权限系统的 Nacos。
    kubectl apply -f nacos-deployment.yaml
    

    这样,你就成功在 Kubernetes 上部署了带有启用权限系统的 Nacos。当你更新 Nacos 镜像时,只需重新部署 Deployment 即可保留配置文件和权限设置。

    请注意,在实际部署中,你可能需要根据你的需求进行适当的调整和修改。此外,确保 Nacos 的镜像版本与你的部署环境兼容,并留意官方文档中的最新指南和推荐配置。

    2023-07-09 15:48:52
    赞同 展开评论 打赏
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    在 Kubernetes 中部署 Nacos 并启用权限系统,你可以通过配置相关的 YAML 文件来实现。以下是一般的步骤:

    1. 创建一个 nacos.yaml 文件,并使用以下内容进行配置:
      ```yaml
      apiVersion: v1
      kind: Namespace
      metadata:
      name: nacos

    apiVersion: apps/v1
    kind: Deployment
    metadata:
    name: nacos
    namespace: nacos
    spec:
    replicas: 1
    selector:
    matchLabels:
    app: nacos
    template:
    metadata:
    labels:
    app: nacos
    spec:
    containers:

        - name: nacos
          image: nacos/nacos-server:latest
          ports:
            - containerPort: 8848
          env:
            - name: MODE
              value: standalone
            - name: SPRING_DATASOURCE_PLATFORM
              value: mysql
    

    apiVersion: v1
    kind: Service
    metadata:
    name: nacos
    namespace: nacos
    spec:
    selector:
    app: nacos
    ports:

    - protocol: TCP
      port: 8848
      targetPort: 8848
    

    type: LoadBalancer

    
    2. 根据你的需求,修改 `nacos.yaml` 文件中的配置项,例如修改副本数量、镜像版本号等。
    
    3. 在 Kubernetes 集群中运行以下命令,创建 Nacos 资源:
    

    kubectl apply -f nacos.yaml

    
    这样就成功部署了一个基本的 Nacos 实例。接下来,需要进一步配置 Nacos 权限系统。你可以通过修改 `nacos.yaml` 文件中的 `env` 部分,添加相关的环境变量来配置 Nacos 的权限系统。
    
    例如,可以添加以下环境变量来启用基于 MySQL 的权限管理:
    ```yaml
    env:
      - name: MODE
        value: standalone
      - name: SPRING_DATASOURCE_PLATFORM
        value: mysql
      - name: MYSQL_MASTER_SERVICE_HOST
        value: <MySQL服务的主机名>
      - name: MYSQL_MASTER_SERVICE_PORT
        value: <MySQL服务的端口号>
    

    在上述示例中,你需要将 <MySQL服务的主机名><MySQL服务的端口号> 替换为实际的 MySQL 服务的主机名和端口号。

    注意,以上只是一个示例配置,并不涉及具体的 MySQL 数据库和表结构。在启用 Nacos 的权限系统时,你需要按照 Nacos 官方文档提供的说明,创建相应的数据库和表结构,以及配置正确的数据库连接信息。

    最后,你可以使用 kubectl apply -f nacos.yaml 命令重新部署更新后的镜像。这样你就可以在更新镜像后继续使用 Nacos 并保持已配置的权限系统。请确保新镜像的版本和相关配置与旧镜像兼容,并根据需要进行相应的数据库迁移或升级操作。

    2023-07-09 15:26:58
    赞同 展开评论 打赏

阿里云拥有国内全面的云原生产品技术以及大规模的云原生应用实践,通过全面容器化、核心技术互联网化、应用 Serverless 化三大范式,助力制造业企业高效上云,实现系统稳定、应用敏捷智能。拥抱云原生,让创新无处不在。

相关产品

  • 容器服务Kubernetes版
  • 相关电子书

    更多
    ACK 云原生弹性方案—云原生时代的加速器 立即下载
    ACK集群类型选择最佳实践 立即下载
    企业运维之云原生和Kubernetes 实战 立即下载

    相关镜像