Minikube 本地部署运行 kubernetes 实例详解(2)

注意:在部署过程中可能会出现问题,大部分跟网络相关,下载 images 时会超时报错,解决办法是一安装翻墙工具,二是替代需要翻墙下载的 images。以下是我本机实验遇到的问题,以及解决方法。

问题一:命令行下载 tomcat:8.0 镜像,执行 docker pull tomcat:8.0 没有任何反应,初步分析可能是 minikube 虚拟机里没有连接到本地 docker 服务。

$ minikube docker-env export DOCKER_TLS_VERIFY="1" export DOCKER_HOST="tcp://192.168.99.102:2376" export DOCKER_CERT_PATH="/Users/wanyang3/.minikube/certs" export DOCKER_API_VERSION="1.23"

执行 eval $(minikube docker-env),即设置 minikube 虚拟机的 docker 环境变量即可。

问题二:执行完毕上边 2 和 3 步骤后,发现 hello-minikube 服务并没有成功启动。

$ kubectl get pods NAME READY STATUS RESTARTS AGE hello-minikube-598805112-3bzmf 0/1 ContainerCreating 0 15s

发现 hello-minikube 的状态一直是 ContainerCreating,并且 READY 为 0/1,通过 minikube logs 查看日志可以看出,有一个镜像 gcr.io/google_containers/pause-amd64:3.0 显示拉取失败,分析原因应该是 gcr.io 这个地址被墙了。

# 替换镜像 $ docker pull visenzek8s/pause-amd64:3.0 $ docker tag visenzek8s/pause-amd64:3.0 gcr.io/google_containers/pause-amd64:3.0 # 显式设置拉取策略为 IfNotPresent $ kubectl run hello-minikube --image=tomcat:8.0 --port=8080 --image-pull-policy=IfNotPresent

方案就是替换该镜像,然后可以设置拉取策略为优先本地获取,本地没有再去远程获取。因为这里服务启动策略为 always,会定时自动重新拉取,所以一旦本地拉取该镜像后,我们会发现上边 hello-minikube 一会就启动成功了。

下边介绍一下 kubectl 一些其他常用操作。

1、创建资源的两种方式

1.1 通过 Yaml 或 Json 文件创建

$ kubectl create -f <file_path>/xxx.yaml | <file_path>/xxx.json --[options] eg:kubectl create -f ./Redis.yaml

简单的 redis.yaml 示例:

apiVersion: extensions/v1beta1 kind: Deployment metadata: name: hello-redis namespace: my-kube spec: replicas: 2 template: metadata: labels: group: hello-scm my-kube: hello-redis k8s-app: redis spec: containers: - name: redis image: redis:latest --- apiVersion: v1 kind: Service metadata: labels: group: hello-scm kubernetes.io/cluster-service: 'true' kubernetes.io/name: hello-redis name: hello-redis namespace: my-kube spec: ports: - port: 6379 targetPort: 6379 selector: k8s-app: redis

yaml 文件要符合 kubernetes 的规范,可以参考官网对 yaml 语法定义,可以自学一下,这里就不展开来说了。

1.2 指定镜像启动

$ kubectl run --image=xxxx:xx --[options] eg: kubectl run hello-minikube --image=tomcat:8.0 --port=8080

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/c4a1f334cca606dbdd5d8a5a965db034.html