首先升级之前的部署环境
(1)先升级部署的docker 19.09.3
(2)然后 minikube : v1.13.1 部署的单机kubernetes
(3) 最后升级部署 helm 3.4.0,添加helm源 helm repo add bitnami https://charts.bitnami.com/bitnami
这时一切正常。
开始发布应用程序了
(1)安装nginx-ingress
#安装nginx-ingress
kubectl create namespace nginx-ingress
helm install --name nginx-ingress --namespace nginx-ingress bitnami/nginx-ingress-controller
(2)可以查询 helm release
[root@localhost ~]# helm list --all-namespaces NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION nginx-ingress nginx-ingress 1 2020-11-12 14:53:07.28521953 +0800 CST deployed nginx-ingress-controller-5.6.15 0.40.2
(3) 可以看到pod 的已经运行
[root@localhost ~]# kubectl get pod -n nginx-ingress
NAME READY STATUS RESTARTS AGE
nginx-ingress-nginx-ingress-controller-84dfb8875d-z9k99 1/1 Running 0 41m
nginx-ingress-nginx-ingress-controller-default-backend-879cjkjm 1/1 Running 0 41m
问题发生了
这时问题发生了:找不到run 起来的容器了
###(1)
[root@localhost linux-amd64]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
###(2)
[root@localhost ~]# docker container ls -a
CONTAINER ID IMAGE COMMAND CREATED
周末在家偶然翻看了 minikube 的安装教程,其中提到一点,如需要minikube link 到现有的docker 配置。
[root@localhost docker]# minikube docker-env
export DOCKER_TLS_VERIFY="1"
export DOCKER_HOST="tcp://192.168.99.101:2376"
export DOCKER_CERT_PATH="/root/.minikube/certs"
# Run this command to configure your shell:
# eval $(minikube docker-env)
执行了一下:
eval $(minikube docker-env)
一切都看到了
[root@localhost ~]# eval $(minikube docker-env)
[root@localhost ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
bb2607c4c5d5 67fb0f097cb1 "nginx-ingress-contr…" 54 minutes ago Up About an hour k8s_nginx-ingress-controller-controller_nginx-ingress-nginx-ingress-controller-84dfb8875d-z9k99_nginx-ingress_f7c86949-57a5-4f38-8c91-18bf4132dd3b_0
ed5b253eb6bd d8014dc33372 "/opt/bitnami/script…" 54 minutes ago Up About an hour k8s_nginx-ingress-controller-default-backend_nginx-ingress-nginx-ingress-controller-default-backend-879cjkjm_nginx-ingress_120008d9-aed4-4da0-a963-2254a33716ef_0
额外的问题:
如果执行了下面的命令,实际上就是将minikube 连接到当前的docker 运行时环境,这时会发现之前通过 docker run 跑起来的镜像找不到了。但是如果minikube 创建clusterd的时候,指定启动参数 --driver=Docker,直接使用docker 启动集群,而不是虚拟机,那么之前通过 docker run 跑起来的镜像还是能看到的。下面有个示例:
eval $(minikube docker-env)
在未执行eval $(minikube docker-env)之前 docker run redis容器,docker ps -a确实只能看到 redis容器实例。
[root@localhost ~]# docker run -p 6379:6379 --name redis -v /usr/local/docker/redis.conf:/etc/redis/redis.conf -v /usr/local/docker/data:/data -d redis redis-server /etc/redis/redis.conf --appendonly yes
26094db48f41096a8e27973edeb1243d92b35a139790e6d442810b16babce72e
[root@localhost ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
26094db48f41 redis "docker-entrypoint.s…" 4 seconds ago Up 3 seconds 0.0.0.0:6379->6379/tcp redis
306e3946e427 redis "docker-entrypoint.s…" About a minute ago Exited (1) About a minute ago jovial_edison
执行eval $(minikube docker-env)之后,就看不到redis 容器实例了
[root@localhost ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
bb2607c4c5d5 67fb0f097cb1 "nginx-ingress-contr…" About an hour ago Up About an hour k8s_nginx-ingress-controller-controller_nginx-ingress-nginx-ingress-controller-84dfb8875d-z9k99_nginx-ingress_f7c86949-57a5-4f38-8c91-18bf4132dd3b_0
ed5b253eb6bd d8014dc33372 "/opt/bitnami/script…" About an hour ago Up About an hour