Tag: kubernetes

如何设置私人registry以在kubernetes群集上部署本地映像?

当试图在小型私有k8s群集上部署和推理微服务时,我无法根据Tensorflow Serving教程创build的本地映像用于初始模型。 我在这里读到,我可以使用私有registry插件,并简单地用TF Serving的初始教程( inception_k8s.yaml )提供的yaml文件中的图像名称replace为本地图像的修改标签(将前缀localhost:5000添加到标签)。 问题是我不确定如何可以在我的群集上应用所述私有registry插件 。 既然是插件,我应该可以使用kubectl apply -f <chosen-yaml-file>正确吗? github页面中的自述文件是指GCE中的一个具体示例。 任何人都可以请澄清如何利用这个插件? 或build议一个替代解决scheme?

fabric8演示版本失败:等待恢复部分testsb#3:等待下一个可用的执行程序

我在我的Win7机器上安装了fabric8,在fabric8控制台上创build了一个spring-boot演示项目,并设置了一个构buildpipe道。 kubernetesbuild立荚开始build设,但从来没有完成导致jenkins日志: Waiting to resume part of testsb #3: Waiting for next available executor 好的…我把工人数量提高到了5 但不知道如何重新启动kubernetes jenkins与保存设置。 但在运行时似乎是OK的。 但是:它仍然有相同的错误。 然后,我看看build筑kubernetes吊舱,并在日志中看到这一点。 但是在这里,Iam完全失败了,因为我对Docker / Kubernetes / fabric8还是不够了解 希望有人可以帮助我这个日志: Jul 13, 2017 3:14:14 PM hudson.remoting.jnlp.Main createEngine INFO: Setting up slave: kubernetes-bc91a24394a94eeb89e4b5df51cd27a4-7ac5979dc83 Jul 13, 2017 3:14:15 PM hudson.remoting.jnlp.Main$CuiListener INFO: Jenkins agent is running in headless mode. Jul 13, 2017 […]

如何用非root用户创buildK8S群集?

如何用非root用户创buildK8S群集? 包括.. etcd,法兰绒或印花布,K8S API,kubelet ….等 问候 阿修罗

使用DevOps工具pipe理有状态应用程序的最佳方式是什么?

我正在研究一个想要用Docker部署所有遗留应用程序的项目。 目前我们已经对一些组件进行了docker化,并部署了k8s以获得高可用性。 无状态应用程序很容易,并与k8s很好地工作。 另一方面,当我尝试pipe理有状态的应用程序,如elasticsearch,Kafka。 扩展或升级并不容易。 部署elasticsearch / Kafka与一个挂载的NFS来获得更多的磁盘容量。 我们的目标是自动pipe理这些应用程序,包括创build,升级和缩放。 对于卡夫卡,我遇到了以下情况 4个节点和3个卡夫卡经纪商,在启动 Broker1 > Node1,Broker2 > Node2,Broker3 > Node3 NFS被挂载到Kafka的日志目录,例如/opt/kafka/log 。 如果Broker1崩溃,我们得到了 Broker1 XX,Broker2 => Node2,Broker3 => Node3,Broker1 => Node4 然后,Broker 2崩溃,k8s在节点1上启动一个新实例,该实例存储遗留数据,例如文件“meta.properties”中的代理ID Broker1 > Node1,Broker2 XX,Broker3 > Node3,Broker1 > Node4 我只想自动pipe理这些实例, 当Broker1崩溃时,它仍然可以将Broker1的旧数据目录用于新的Broker1实例 为了我的理解, k8s YAML文件是所有pod实例的模板,所以我们不能在模板文件中应用任何不同的信息 或者我们需要编写一些具有不同数据目录的YAML文件,规模有问题 对于Statefulset,订单由k8s维护,而不是应用程序本身的订单 对于ELK NFS被挂载到索引目录,并且只有一个节点。 我想使用滚动升级来更新新版本的ELK,并保持当前ELK中存储的数据 保留数据的简单方法是使用旧的索引目录作为新的实例。 另一方面,使用滚动升级,将同时运行2个实例。 如果它们指向相同的索引目录,则没有任何意义。 或停止第一个,然后开始二审? 或者用不同的目录启动第二个并导出/导入数据? 有没有更好的方法来处理有状态的案例或其他框架可以做得更好? […]

Kubernetes部署:控制容器的Docker运行命令

我正在用kubernetes上的mysql编写xwiki的部署。 在设置说明中,运行xwiki的命令如下所示 docker run –net=xwiki-nw –name xwiki -p 8080:8080 -v /my/own/xwiki:/usr/local/xwiki -e DB_USER=xwiki -e DB_PASSWORD=xwiki -e DB_DATABASE=xwiki -e DB_HOST=mysql-xwiki xwiki:mysql-tomcat 我似乎无法find任何联机或在kubernetes文档中如何控制docker运行命令一起使用这些参数标志。 因此在部署中没有办法正确使用这个容器,或者我错过了什么?

k8s:从ECR中拉出图像时出错

CI升级期间,我们经常得到Waiting: ImagePullBackOff 。 任何人都知道发生了什么? k8s群集1.6.2通过kops安装。 在升级过程中,我们做了kubectl set image ,在过去的2天,我们看到以下错误Failed to pull image "********.dkr.ecr.eu-west-1.amazonaws.com/backend:da76bb49ec9a": rpc error: code = 2 desc = net/http: request canceled Error syncing pod, skipping: failed to "StartContainer" for "backend" with ErrImagePull: "rpc error: code = 2 desc = net/http: request canceled" journalctl -r -u kubelet Jul 26 09:32:40 ip-10-0-49-227 kubelet[840]: W0726 09:32:40.731903 […]

Kubernetes(Windows)在气隙系统上

我正在开发盒(Windows 7)没有直接互联网访问的环境中工作; 然而,我可以从另一个设备上下载,并将这些文件复制到开发盒中,所以它不是全部石器时代。 我已经设置了Docker工具箱,保存了一些图片,这一切都工作,包括有能力创build/更新Swarm,但我现在想评估Kubernetes,看看它是如何比较… 我已经下载了所有的Windows组件(Minikube,Kubectl和VirtualBox .iso),当我做一个“minikube启动”时,它会正确返回,没有错误。 我遇到的问题是,当K8s创build它自己的容器作为启动的一部分,它无法拉这些(由于没有互联网接入)。 kubectl的输出如下: C:\> kubectl get pods –all-namespaces NAMESPACE NAME READY STATUS RESTARTS AGE kube-system kube-addon-manager-minikube 0/1 ContainerCreating 0 1h 当我尝试安装DNS和Dashboard pod时也是如此。 我实际上看不到任何kubectl日志(如其他地方所build议的),并且从“kubectl describe po”等中得不到任何回应,所以必须猜测问题确实是它不能访问外部registry。 看看这些组件的yaml,我可以看到,它需要的docker图像如下: gcr.io/google-containers/kube-addon-manager:v6.4-beta.1 gcr.io/google_containers/kubedns-amd64:1.8 gcr.io/google_containers/kube-dnsmasq-amd64:1.4 gcr.io/google_containers/exechealthz-amd64:1.2 gcr.io/google_containers/kubernetes-dashboard-amd64:v1.6.0 我已经把这些图像放在有互联网接入的机器上,“docker save'd”,然后“docker load”在开发机器上,现在可以看到这些图像,当我做一个“docker images”时: $ docker images REPOSITORY TAG IMAGE ID CREATED SIZE gcr.io/google_containers/kubernetes-dashboard-amd64 v1.6.0 416701f962f2 4 months ago […]

Google云(GKE)Kubernetes Docker容器中的文件权限错误

我尝试在我的Docker容器中运行初始化脚本,该容器使用Google Cloud Container Engine(GKE)上的Kubernetes kubectl命令进行部署。 该脚本在我的本地系统上的docker容器中没有错误地执行,但似乎不能在GKE上工作。 我正在使用root帐户在GKE上执行脚本。 Dockerfile环境variables设置为: ENV SUEXECUSERGROUP false shell脚本的path映射到外部持久磁盘。 我已经这样做了,所以我不需要在shell脚本中对任何path进行硬编码: / path-to-shell-script /被映射到〜/父文件夹 docker入口点是: / usr / local / bin / docker-entrypoint.sh shell脚本位于: shell脚本/ path-to-shell-script /fix.sh 加载容器时(初始化)我收到以下错误: ./fix.sh:权限被拒绝 当我从容器内运行ls -lad / path-to-shell-script /时 ,我得到以下输出: drwxr-sr-x 19 apache apache 4096 / path-to-shell-script / ls -la / path-to-shell-script /还显示: … -rwxrwxr-x 1 root root […]

如何在Kubernetes中使用Watch API

如何在Java中使用OkHttp和Retrofit实现监视API。 我必须使用WebSockets来实现这个吗?

无法使用kompose从docker-compose转换为kubernetes

我有docker-compose安装准备好的项目。 现在我想搬到kubernetes。 我使用Kompose工具从docker-compose转换为kubernetes。 例如,这里是我的示例docker-compose.yml文件 version: '3' volumes: database_hades_volume: external: true services: db: image: postgres:latest container_name: hades-db ports: – "5432:5432" environment: POSTGRES_DB: hades_dev POSTGRES_PASSWORD: 1234 volumes: – database_hades_volume:/var/lib/postgresql/data/ tty: true stdin_open: true redis: container_name: hades-redis image: redis:latest ports: – "6379:6379" app: container_name: hades-app build: context: . dockerfile: Dockerfile ports: – "4001:4001" volumes: – ".:/webapp" env_file: – […]