• 吐槽下我那神奇的上司 at 2020年02月27日

    额, 6 楼是我, 楼主可以去翻我写的 spark 的帖子。 刚才忘了解除匿名了

  • 部署的时候配置域名跟 ingress 集成起来是这样的。 首先需要到你们的 dns 中添加一个泛域名解析。 解析地址填写你 ingress controller 的地址。 比如我们做的凡是以 testenv.4pd.io 为结尾的域名全部解析成我们 ingress controller 的 ip 地址。 然后为每一个环境创建一个 ingress 规则。 比如我们曾经做的:

    def create_ingress_yaml(config):
        document = """
    apiVersion: extensions/v1beta1
    kind: Ingress
    metadata:
      name: %s
      annotations:
        nginx/client_max_body_size: 10240m
        nginx.org/client-max-body-size: "10240m"
        ingress.kubernetes.io/proxy-body-size: 10240m
    spec:
      rules:
      - host: %s.testenv.4pd.io
        http:
          paths:
          - path: /
            backend:
              serviceName: %s
              servicePort: 8888
      - host: %s.preditor.testenv.4pd.io
        http:
          paths:
          - path: /
            backend:
              serviceName: %s
              servicePort: 8090
      - host: %s.history.testenv.4pd.io
        http:
          paths:
          - path: /
            backend:
              serviceName: %s
              servicePort: 18080
        """ % (config.pht_pod_name, config.name_prefix, config.pht_pod_name, config.name_prefix, config.pht_pod_name,
               config.name_prefix, config.pht_pod_name)
        data = yaml.load_all(document)
        with open(config.ingress_conf_path, 'w') as stream:
            yaml.dump_all(data, stream)
    

    在部署环境的时候就把 ingress 创建好。 然后配合泛域名解析,ingress controller 会自动的帮我们转发请求到具体的环境上。 就可以达到每个环境都自动的有一个域名对应上了。

    部署其实很简单, 就像我上面做的那样就好。 维护一套 yaml 模板动态的去生成部署这些模块的 k8s 配置就可以了。

  • 😂 😂 😂 😂

  • go 就直接用 vendor 吧, 直接在项目里把依赖打成 vendor 就好了。 不要用 go mod 下载或去 worksapce 里找依赖。

  • 后续如何跟 ingress 集成起来是这样的。 首先需要到你们的 dns 中添加一个泛域名解析。 解析地址填写你 ingress controller 的地址。 比如我们做的凡是以 testenv.4pd.io 为结尾的域名全部解析成我们 ingress controller 的 ip 地址。 然后为每一个环境创建一个 ingress。 比如我们曾经做的:

    def create_ingress_yaml(config):
        document = """
    apiVersion: extensions/v1beta1
    kind: Ingress
    metadata:
      name: %s
      annotations:
        nginx/client_max_body_size: 10240m
        nginx.org/client-max-body-size: "10240m"
        ingress.kubernetes.io/proxy-body-size: 10240m
    spec:
      rules:
      - host: %s.testenv.4pd.io
        http:
          paths:
          - path: /
            backend:
              serviceName: %s
              servicePort: 8888
      - host: %s.preditor.testenv.4pd.io
        http:
          paths:
          - path: /
            backend:
              serviceName: %s
              servicePort: 8090
      - host: %s.history.testenv.4pd.io
        http:
          paths:
          - path: /
            backend:
              serviceName: %s
              servicePort: 18080
        """ % (config.pht_pod_name, config.name_prefix, config.pht_pod_name, config.name_prefix, config.pht_pod_name,
               config.name_prefix, config.pht_pod_name)
        data = yaml.load_all(document)
        with open(config.ingress_conf_path, 'w') as stream:
            yaml.dump_all(data, stream)
    

    在部署环境的时候就把 ingress 创建好。 然后配合泛域名解析, 就可以达到每个环境都自动的有一个域名对应上了。

  • 不过我们之前使用搭建一个 ceph, 然后在 k8s 启动 pod 的时候, 把 maven 的本地缓存仓库挂载出来, 放到 ceph 里来解决动态依赖的问题。 但是我 python 很渣, 还不知道 pip 安装的依赖怎么挂载出来

  • 你这两个问题其实我也还没解决~~~ 好在我们对时间的要求不大

  • 单 slave 最大的缺陷就是没有高可用能力, 出现单点故障以后整个流程就会不可用的。

  • 我们测 IE 浏览器的时候也没办法, 老老实实在 windows 上部署~

  • 希望对你有帮助哈~

  • allure 这种这么好用的 report 框架~~~~ 大家用起来啊

  • 一个人在北京自我隔离, 无聊的要死,自己给自己加加班

  • 其实都是大都都是开源东西拼起来的,没啥好讲的😂

  • 持续集成测试的都是老的功能, 新的功能只有提测后才能添加对应的自动化测试用例

  • 不好意思才看到你的留言, 之前漏掉了。 实际上 jenkins 的 master 节点放入中并不是必须的。 master 节点是可以放到 k8s 外面独立部署的, 只是配置略有不同。 首先你需要为 jenkins 创建一个 service account, 然后为它配置相应的 rbac 规则。 在这个 sa 下找到它的 screct 中的 token 复制下来。 然后到 jenkins 中的配置中添加一个云配置。 在云配置中填写 ca 证书 (kubectl config view 中 cluster 那部分内容就是证书,注意需要用 base64 转码)。 再添加一个 jenkins 认证, 选择 screct 认证,填写这个 token 内容就行了。 其他的配置都一样了。 抱歉你么晚才回复你。 希望对你有帮助

  • 仅楼主可见
  • 我记得武汉的医生说他们已经做好疫情持续到 5 月份的准备了

  • 不是 ceph 不好。而是现在没那么强的需求了。我们一直用 k8s。本来是想引入 ceph 增加分布式存储能力来解决 k8s 持久化能力。 但是后来没那么强的需求了。 所以一直搁置着呢。现在就是我们自己测试中试用的程度了

  • ceph 曾经的用户报道

  • 原来如此

  • 没做过移动端,移动端是非常不稳定么?