kubernetes和一般debugging它

我在AWS中有一个kubernetes集群设置。 我们正在使用EC2容器registry来存储我们的泊坞窗图像。 我们拥有所有的主人/奴才,一切似乎都与群集一起工作。

我的规格文件如下:

apiVersion: v1 kind: Service metadata: name: apim-mysql labels: app: apim spec: ports: # the port that this service should serve on - port: 3306 selector: app: apim tier: mysql clusterIP: None --- apiVersion: extensions/v1beta1 kind: Deployment metadata: name: apim-mysql spec: strategy: type: Recreate template: metadata: labels: app: apim tier: mysql spec: imagePullSecrets: - name: myregistrykey containers: - name: mysql image: <This points to our EC2 Container Registry and retreives the image> resources: requests: cpu: 100m memory: 100Mi env: - name: WSO2_ZIP_FILE value: wso2am-1.10.1-SNAPSHOT.zip - name: WSO2_VERSION value: 1.10.1 - name: MYSQL_RANDOM_ROOT_PASSWORD value: 'yes' - name: MYSQL_USER value: username - name: MYSQL_USER_PASSWD value: password - name: GET_HOSTS_FROM value: dns # If your cluster config does not include a dns service, then to # instead access environment variables to find service host # info, comment out the 'value: dns' line above, and uncomment the # line below. #value: env ports: - containerPort: 3306 name: mysql 

这个容器做什么只是设置一个MySQL。 我们需要集群内的其他节点连接到这个节点。 因为他们将需要使用MySQL DB。

我想我的第一个问题是这个规格文件看起来好吗? 还是有人看到错误?

我做了kubectl创build命令,并成功运行:

 kubectl create -f mysql.yaml service "apim-mysql" created deployment "apim-mysql" created 

kubectl获取豆荚显示豆荚运行:

 apim-mysql-545962574-w2qz1 1/1 Running 1 8m 

我有时在做kubectl日志得到一个错误,显示这一点:

 kubectl logs apim-mysql-545962574-w2qz1 Error from server: dial unix /var/run/docker.sock: no such file or directory 

但最终还是会重试,如果有人知道为什么会发生这样的情况,那就太好了。

当它工作得到这样的东西:

 kubectl logs apim-mysql-545962574-w2qz1 Initializing database 2016-07-13T15:51:47.375052Z 0 [Warning] InnoDB: New log files created, LSN=45790 2016-07-13T15:51:52.029915Z 0 [Warning] InnoDB: Creating foreign key constraint system tables. 2016-07-13T15:51:53.531183Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: b837bd45-4911-11e6-99ba-02420af40208. 2016-07-13T15:51:53.746173Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened. 2016-07-13T15:51:53.746621Z 1 [Warning] root@localhost is created with an empty password ! Please consider switching off the --initialize-insecure option. 2016-07-13T15:52:19.891437Z 1 [Warning] 'user' entry 'root@localhost' ignored in --skip-name-resolve mode. 2016-07-13T15:52:19.891705Z 1 [Warning] 'user' entry 'mysql.sys@localhost' ignored in --skip-name-resolve mode. 2016-07-13T15:52:19.891733Z 1 [Warning] 'db' entry 'sys mysql.sys@localhost' ignored in --skip-name-resolve mode. 2016-07-13T15:52:19.891778Z 1 [Warning] 'proxies_priv' entry '@ root@localhost' ignored in --skip-name-resolve mode. 2016-07-13T15:52:19.891831Z 1 [Warning] 'tables_priv' entry 'sys_config mysql.sys@localhost' ignored in --skip-name-resolve mode. Database initialized MySQL init process in progress... 2016-07-13T15:52:34.632188Z 0 [Note] mysqld (mysqld 5.7.13) starting as process 49 ... 2016-07-13T15:52:49.814764Z 0 [Note] InnoDB: PUNCH HOLE support available 2016-07-13T15:52:49.814846Z 0 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins 2016-07-13T15:52:49.814859Z 0 [Note] InnoDB: Uses event mutexes 2016-07-13T15:52:49.814870Z 0 [Note] InnoDB: GCC builtin __atomic_thread_fence() is used for memory barrier 2016-07-13T15:52:49.814928Z 0 [Note] InnoDB: Compressed tables use zlib 1.2.8 2016-07-13T15:52:49.814932Z 0 [Note] InnoDB: Using Linux native AIO 2016-07-13T15:52:50.243657Z 0 [Note] InnoDB: Number of pools: 1 2016-07-13T15:52:52.175079Z 0 [Note] InnoDB: Using CPU crc32 instructions MySQL init process in progress... MySQL init process in progress... MySQL init process in progress... MySQL init process in progress... MySQL init process in progress... MySQL init process in progress... MySQL init process in progress... 

一点点后它似乎重新启动,它会说初始化数据库..

几天前,当我运行kubectl日志,它会立即返回一切,现在是非常快,这是非常缓慢,并没有真正显示任何东西我真的没有真正改变我的规格文件,所以我不知道是怎么回事。 对我来说,似乎容器没有得到正确执行,当它实际上显示一些日志…但我不确定。

如果任何人有任何线索如何进一步debugging一些命令,我​​可以运行它将非常感激。 我很困扰这一点,谷歌已经很多,但没有运气。

谢谢!

我在aws上使用kubernetes的经验,同时得到无用的错误

 Error from server: dial unix /var/run/docker.sock: no such file or directory 

通过select更强大的aws集群实例types来解决 …这里是相关的env vars

 export MASTER_SIZE=t2.medium export NODE_SIZE=t2.medium export NUM_NODES=2 # if not defined aws will auto guess 

…在标签resources下删除提及资源限制设置,直到它运行OK

以下命令是必不可less的…只要不提及命名空间,如果你不使用

kubectl描述svc –namespace = xxx

kubectl得到豆荚–namespace = xxx

kubectl描述pods –namespace = xxx

kubectl描述节点

还不错,能够执行部署的实时编辑…首先看到你的部署..问题

 kubectl get deployments --namespace=ruptureofthemundaneplane 

输出

 NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE loudspeed-deployment 1 1 1 1 1h mongo-deployment 1 1 1 1 1h 

所以现在我们知道部署的名字做活编辑问题

 kubectl edit deployment/mongo-deployment 

这将在您的terminal中使用默认编辑器打开编辑会话,您可以随意更改设置

我发现在排除数据库部署的故障时,还可以使用下面的Dockerfile启动映像…这允许您使用exec来login

 kubectl exec -ti $(kubectl get pods --namespace=${PROJECT_ID}|grep ${GKE_NODEDEPLOYMENT}|cut -d' ' -f1) --namespace=${PROJECT_ID} -c ${GKE_NGINX} -- bash 

在那里你可以自由地做交互式数据库login会话(一旦你安装需要的客户端代码或将其放入下面的Dockerfile)…这里是匹配Dockerfile这个疑难解答部署容器

 FROM ubuntu:16.04 ENV TERM linux ENV DEBIAN_FRONTEND noninteractive RUN apt-get update RUN apt-get install -y wget curl COPY .bashrc /root/ # ENTRYPOINT ["/bin/bash"] CMD ["/bin/bash"] # # docker build --tag stens_ubuntu . # # docker run -d stens_ubuntu sleep infinity # # docker ps # # # ... find CONTAINER ID from above and put into something like this # # docker exec -ti 3cea1993ed28 bash # #