我有一个简单的复制控制器yaml文件,如下所示:
apiVersion: v1
kind: ReplicationController
metadata:
name: nginx
spec:
replicas: 3
selector:
app: nginx
template:
spec:
containers:
- image: library/nginx:3.2
imagePullPolicy: IfNotPresent
name: nginx
ports:
- containerPort: 80
metadata:
labels:
app: nginx
Run Code Online (Sandbox Code Playgroud)
运行此复制控制器后,我将获得3个不同的pod,其名称为"nginx-xxx",其中"xxx"表示随机字符串和数字.
我想要的是指定由复制控制器创建的pod的名称,以便pod的名称可以是"nginx-01","nginx-02","nginx-03".而且,更确切地说,如果pod"nginx-02"由于某种原因而关闭,并且复制控制器将自动创建另一个nginx pod,我希望这个新的nginx pod名称保持为"nginx-02".
我想知道这是否可行?提前致谢.
我有一个Mongodb群集,其中包含一个主副本和一个副本副本作为复制集一起运行.但随着流量的增长,我决定执行分片以获得更高的写入速度.
我根据本教程对"_id"列执行了散列分片,并将数据拆分为两个分片.然后,我进行了一些基准测试,发现在某些情况下,分片群集甚至比未散列群集更慢.
这是测试结果.
最大吞吐量测试:使用十台机器同时运行"mongoimport"将数据加载到目标数据库中,以测试db的最大写入速度.
结果:
分片群集可以插入39500个文档/秒.
未整数群集可以插入27400个文档/秒.
单实例mongoimport测试:只使用一台机器运行"mongoimport"将数据加载到目标数据库中.
结果:
分片群集可以插入14285个文档/秒.
未整数群集可以插入14085个文档/秒.
使用mongodb java驱动程序加载单实例数据:通过调用mongodb java驱动程序的api,只使用一个实例将数据加载到目标数据库中.
结果:
分片群集可以插入4630个文档.
未整数群集可以插入17544个文档/秒.
第一次测试的结果非常有意义.您将数据库分成2个分片群集,吞吐量增加了约50%,一切都很完美,万岁!
第二次测试有点道理.那么吞吐量大致相同,但可能是数据加载器方面的瓶颈,毕竟我们只用一个实例加载数据.
但第三次测试确实让我感到困惑.没有意义的是,分片群集可以比未受干扰的群集慢得多.另一方面,unsharded db具有惊人的速度,甚至比使用mongoimport加载数据更快.
用于加载数据的java代码粘贴在下面.我真的无法弄清楚这一点,并提前感谢所有答案.
public static void insert(String host, int port) throws FileNotFoundException,
InterruptedException, ExecutionException {
MongoClient mongoClient = new MongoClient(host, port);
mongoClient.setWriteConcern(WriteConcern.UNACKNOWLEDGED);
MongoDatabase database = mongoClient.getDatabase("my-db");
MongoCollection<Document> collection = database.getCollection("my-collection");
Scanner scan = new Scanner(new File("my-sample-dataset"));
// Pre-load the data into the memory, so that the db …Run Code Online (Sandbox Code Playgroud)