我有一个运行2个小兵的kubernetes集群.目前,我通过两个步骤访问我的服务:
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集群中由复制控制器控制的更新一组pod的优选方法(例如,在进行代码更改并将底层docker映像推送到docker hub之后)是什么?
我可以看到两种方式:
kubectl rolling-update
随着rolling-update
我必须更改复制控制器名称.由于我将复制控制器定义存储在YAML文件中而不是手动生成它,因此必须更改文件以推出代码更新似乎会带来不良习惯,例如在复制控制器(例如controllerA和controllerB)的2个名称之间交替避免名称冲突.
有什么更好的方法?
使用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) 我有一个地图,其中每个键都有一个集合作为值:
{: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 /函数编程惯用方法:
(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))