小编Mad*_*mme的帖子

如何在没有硬编码到minion IP的情况下向公众公开kubernetes服务?

我有一个运行2个小兵的kubernetes集群.目前,我通过两个步骤访问我的服务:

  1. 启动复制控制器和pod
  2. 获取minion IP(使用kubectl get minions)并将其设置为服务的publicIP.

向公众公开服务的建议做法是什么?我的方法似乎是错误的,因为我对单个minion IP-s的IP进行了硬编码.它似乎也绕过了kubernetes服务的负载平衡功能,因为客户端必须直接访问在各个minions上运行的服务.

要设置复制控制器和pod,我使用:

id: frontend-controller
kind: ReplicationController
apiVersion: v1beta1
desiredState:
  replicas: 2
  replicaSelector:
    name: frontend-pod
  podTemplate:
    desiredState:
      manifest:
        version: v1beta1
        id: frontend-pod
        containers:
          - name: sinatra-docker-demo
            image: madisn/sinatra_docker_demo
            ports:
              - name: http-server
                containerPort: 4567
    labels:
      name: frontend-pod
Run Code Online (Sandbox Code Playgroud)

要设置服务(在获得minion ip-s之后):

kind: Service
id: frontend-service
apiVersion: v1beta1
port: 8000
containerPort: http-server
selector:
  name: frontend-pod
labels:
  name: frontend
publicIPs: [10.245.1.3, 10.245.1.4]
Run Code Online (Sandbox Code Playgroud)

kubernetes

22
推荐指数
2
解决办法
2万
查看次数

如何更新在kubernetes中运行的一组pod?

在kubernetes集群中由复制控制器控制的更新一组pod的优选方法(例如,在进行代码更改并将底层docker映像推送到docker hub之后)是什么?

我可以看到两种方式:

  1. 手动删除和重新创建复制控制器
  2. 运用 kubectl rolling-update

随着rolling-update我必须更改复制控制器名称.由于我将复制控制器定义存储在YAML文件中而不是手动生成它,因此必须更改文件以推出代码更新似乎会带来不良习惯,例如在复制控制器(例如controllerA和controllerB)的2个名称之间交替避免名称冲突.

有什么更好的方法?

kubernetes kubectl

12
推荐指数
1
解决办法
1万
查看次数

Mocha'this'在之前和之前都是钩子

使用Mocha.js编写的以下测试代码失败.我希望someVal在最后一次测试中增加3倍并且等于3.这个问题出现在更复杂的场景中,我使用外部块之前的值设置在内部beforeEach块中设置另一个.简化案例:

describe('increasing 3 times', function() {
  before(function() {
    this.instanceThis = this;
    return this.someVal = 0;
  });
  beforeEach(function() {
    return this.someVal += 1;
  });
  return describe('going deeper', function() {
    before(function() {
      return this.someVal += 1;
    });
    beforeEach(function() {
      return this.someVal += 1;
    });
    return it('has increased someVal to 3', function() {
      return this.someVal.should.equal(3);
    });
  });
});
Run Code Online (Sandbox Code Playgroud)

javascript mocha.js

10
推荐指数
2
解决办法
5671
查看次数

如何将带有集合的Clojure地图转换为val到seq的地图?

我有一个地图,其中每个键都有一个集合作为值:

{:name ["Wut1" "Wut2"] :desc ["But1" "But2"]}
Run Code Online (Sandbox Code Playgroud)

可以假设值集合具有相同数量的元素.

如何将其转换为列表(或向量),其中每个元素都是一个映射,其中键是原始集合中的键,值是1值,如:

[{:name "Wut1" :desc "But1"} {:name "Wut2" :desc "But2"}]
Run Code Online (Sandbox Code Playgroud)

应该说,按键的数量是以前不知道的(所以我不能硬编码的:name:desc)

clojure

2
推荐指数
1
解决办法
71
查看次数

如何在函数中映射(组合)多个非集合?

我想通过一系列非收集功能传递一个集合.它可以通过多次使用地图来实现.如何更简洁地使用clojure /函数编程惯用方法:

(defn my-processor [coll]
  (let [get-text (fn [element] (:text element))
        sanitize (fn [element] (string/trim element))
        to-int (fn [element] (Integer. element))]
    (map to-int (map sanitize (map get-text coll))))) ; <-- this line
Run Code Online (Sandbox Code Playgroud)

(my-processor [{:text "123"} {:text "456"}]) ; => (123 456))

clojure

2
推荐指数
1
解决办法
98
查看次数

标签 统计

clojure ×2

kubernetes ×2

javascript ×1

kubectl ×1

mocha.js ×1