小编moh*_*08p的帖子

在kubernetes statefulset中添加持久卷

我是kubernetes的新手,我正在尝试在自己的PC中添加PVC statefulset。PV和PVC如下所示:

NAME            CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS    CLAIM                      STORAGECLASS   REASON    AGE
neo4j-backups   5Gi        RWO            Retain           Bound     default/backups-claim      manual                   1h

NAME            STATUS    VOLUME          CAPACITY   ACCESS MODES   STORAGECLASS   AGE
backups-claim   Bound     neo4j-backups   5Gi        RWO            manual         51m
Run Code Online (Sandbox Code Playgroud)

基本上,我希望有状态集的所有Pod都可以看到该卷的内容,因为备份文件存储在该卷中。

可以在这里找到使用过的Statefulset

Minikube版本: minikube version: v0.25.2
Kubernetes版本:GitVersion:"v1.9.4"

kubernetes persistent-volumes persistent-volume-claims

4
推荐指数
1
解决办法
5620
查看次数

将所有机密作为环境变量插入kubernetes部署

我有许多秘密要传递到k8部署中,这变得非常冗长,下面是从秘密中传递redis秘密的一个示例redis-secrets

- name: REDIS_HOST
  valueFrom:
    secretKeyRef:
      name: redis-secrets
      key: REDIS_HOST
- name: REDIS_PASSWORD
  valueFrom:
    secretKeyRef:
      name: redis-secrets
      key: REDIS_PASSWORD
- name: REDIS_PORT
  valueFrom:
    secretKeyRef:
      name: redis-secrets
      key: REDIS_PORT
Run Code Online (Sandbox Code Playgroud)

是否可以将所有机密传递redis-secrets到部署中,而这些机密的密钥是env变量密钥?

kubernetes google-kubernetes-engine kubernetes-secrets

4
推荐指数
1
解决办法
1017
查看次数

kubectl apply vs kubectl roll-update

如果有一个使用kubectl的用例不应该用于获取滚动更新?

尽管我们给kubectl提供了命令原始意图,但是应用了一个描述集群资源的源文件随着时间的推移而更新,那么有哪些用例不应该使用?

kubernetes kubectl

3
推荐指数
1
解决办法
1903
查看次数

Docker中未终止的带引号的字符串

我正在尝试在 docker 命令外壳中打印一个循环。当我在第一行运行容器时,它似乎在执行 ID 时工作,但是当我打印日志时,它显示“语法错误:未终止的引用字符串”我找不到这里出了什么问题?你能帮我吗。

C:\Users\Anik Barua
? docker run -d --name simple2 busybox /bin/sh -c 'i=0; while true; do echo ; i=1; sleep 1; done'
8bb4bfbe11f24f897ba66bb090e010eed24fd8cf1685e7c0a41b77abe34f864d

C:\Users\Anik Barua
? docker logs simple2
while: line 1: syntax error: unterminated quoted string

C:\Users\Anik Barua
? docker logs -f simple2
while: line 1: syntax error: unterminated quoted string
Run Code Online (Sandbox Code Playgroud)

docker docker-for-windows

3
推荐指数
3
解决办法
6989
查看次数

使用python制作随机组生成器

我正在尝试制作一个随机组生成器,将学生列表分成 n 个几乎相等的分区(例如,如果有 11 名学生和三个组,我们需要两组 4 人和一组 3 人)。我们需要对 x 个作业重复此过程。我们从文件中读取学生列表,并从文件中读取组。这是我到目前为止的代码:

import csv
import unittest
def studentgenerator(num_asmt, num_stud, student_list, 
assignment_teams):
    with open(student_list , "r") as student:
        list_students = csv.reader(student)

    student_groups = []

    for x in range (0, num_asmt):
        random.shuffle(list_students)
        div = len(list_students)/float(num_stud)


        for x in xrange(num_stud):
            student_groups = lst[int(round(div * x)): int(round(div * 
            (x + 1))]\
   for group in student_groups:
        with open(assignment_teams, "w") as team:
            list_assignment_groups = csv.writer(team)
            list_assignment_groups.writerow(group)



student_list.close()
assignment-teams.close()
Run Code Online (Sandbox Code Playgroud)

我似乎无法让分区程序按照我想要的方式工作,并且我认为从文件读入/读出出现了问题,但我不确定我到底做错了什么。

python csv

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

Docker 无法在 Windows 上构建映像,例如应用程序

https://docs.docker.com/get-started/part2/#dockerfile

Windows 10 专业版泊坞窗版本 18.06.0-ce

运行 docker build -tfriendlyhello 后,出现以下错误:

将构建上下文发送到 docker 守护进程 5.12 KB 步骤 1/7:FROM python :2.7-slim 2.7-slim:从库\python 中提取条目列表中的未知清单没有匹配的清单

docker docker-for-windows

3
推荐指数
1
解决办法
1630
查看次数

如何在 Kubernetes 中公开外部 ip?

我想用 minikube 公开我的 kubernetes 集群。

考虑我的树

.                                                                                                                                                                            
??? deployment.yaml                                                                                                                                                          
??? Dockerfile                                                                                                                                                               
??? server.js                                                                                                                                                                
??? service.yaml    
Run Code Online (Sandbox Code Playgroud)

我在本地构建了我的 docker 镜像,并且能够通过

kubectl create -f deployment.yaml 
kubectl create -f service.yaml 
Run Code Online (Sandbox Code Playgroud)

. 但是当我跑

 $ kubectl get services                                                                                                                                        
NAME                      TYPE           CLUSTER-IP      EXTERNAL-IP   PORT(S)        AGE                                                                                    
kubernetes                ClusterIP      10.96.0.1       <none>        443/TCP        2h
nodeapp                   LoadBalancer   10.110.106.83   <pending>     80:32711/TCP   9m
Run Code Online (Sandbox Code Playgroud)

没有外部 ip 可以连接到集群。试图暴露一个 pod,但外部 Ip 没有。为什么没有外网ip?

 $ cat deployment.yaml                                                                                                                                         
apiVersion: apps/v1                                                                                                                                                          
kind: Deployment
metadata:
  name: nodeapp
  labels:
    app: nodeapp
spec:
  replicas: 2
  selector:
    matchLabels:
      app: nodeapp
  template:
    metadata:
      labels:
        app: …
Run Code Online (Sandbox Code Playgroud)

kubernetes kubernetes-service

3
推荐指数
1
解决办法
6613
查看次数

Docker 提交 - 不保存数据库更改

我安装了最新的 Docker CS,从 Docker Hub获得了一个LAMP 镜像。我正在尝试在其中创建一个数据库并使用保存在其中的数据库制作新图像。

  1. 启动容器:docker run --name mycontainer fauria/lamp 这将启动基于 Ubuntu 的容器并启动 Apache 服务器。MySQL 服务器也在容器中运行。
  2. 访问容器外壳: docker exec -i -t mycontainer bash
  3. 创建一个数据库并在其上运行一些 MySQL 命令: mysql -u root CREATE DATABASE mydbname; USE mydbname; CREATE FUNCTION ... ...
  4. 停止容器: docker stop mycontainer
  5. 创建镜像:docker commitdocker ps -l -qmynickname/appname:v1
  6. 取出容器 docker container rm mycontainer

现在我预计如果我基于新图像运行容器,我已经在那里有了数据库。但它不在那里。 docker run --name mycontainer --rm -p 80:80 -e LOG_STDOUT=true -e LOG_STDERR=true -e LOG_LEVEL=debug -v /home/username/dev/appname/www:/var/www/html mynickname/appname:v1

我错过了什么?

lamp docker

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

kubernetes服务如何决定要路由到哪个后端pod

我有一个Kubernetes服务,通过这样做选择:

spec: 
  selector: 
    backend: nlp-server
Run Code Online (Sandbox Code Playgroud)

如果有多个Pods匹配选择器,那请求PodService路由?

我正在使用默认ClusterIP设置.搜索"ClusterIP:在集群内部IP上公开服务.选择此值使服务只能从集群中访问.这是默认的ServiceType." 在文档中

如果我希望服务路由到有意义的Pod(负载较小),
那么内部负载均衡器是我需要的吗?

kubernetes kubernetes-service

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

Dockerfile 中的 touch 是做什么的?

我正在重复使用Dockerfile包含以下内容的 a :

\n\n
ADD dist /dist/\nARG JAR_FILE\nADD target/${JAR_FILE} /target/app.jar\nRUN sh -c \'touch /target/app.jar\'\nEXPOSE 8080\nENTRYPOINT ["sh", "-c", "java -jar /target/app.jar"]\n
Run Code Online (Sandbox Code Playgroud)\n\n

我理解除带有 的那一行之外的所有行touch这个网站说:

\n\n
\n

RUN sh -c \xe2\x80\x98touch /app.jar\xe2\x80\x99\xe2\x80\x93 触摸我们的文件,使其具有修改时间(Docker 默认情况下以 \xe2\x80\x9cunmodified\xe2\x80\x9d 状态创建所有容器文件)

\n
\n\n

我知道触摸文件会更改其修改日期。为什么 Docker 需要文件上的时间戳,或者为什么这样做是一个好习惯?

\n

docker dockerfile

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