安装minikube

curl -Lo minikube https://storage.googleapis.com/minikube/releases/v0.15.0/minikube-darwin-amd64 && chmod +x minikube && sudo mv minikube /usr/local/bin/

安装kubectl

curl -Lo kubectl http://storage.googleapis.com/kubernetes-release/release/v1.5.1/bin/darwin/amd64/kubectl && chmod +x kubectl && sudo mv kubectl /usr/local/bin/

启动

minikube start
kubectl run hello-minikube --image=registry.cn-hangzhou.aliyuncs.com/google-container/echoserver:1.4 --port=8080
kubectl expose deployment hello-minikube --type=NodePort
kubectl get pod

问题

pod的status都在ContainerCreating,查看

kubectl describe pods

出错部分log

Events:
FirstSeen LastSeen Count From SubobjectPath Type Reason Message
--------- -------- ----- ---- ------------- -------- ------ -------
8m 8m 1 {default-scheduler } Normal Scheduled Successfully assigned hello-minikube-957602326-t9mzf to minikube
6m 3m 2 {kubelet minikube} Warning FailedSync Error syncing pod, skipping: failed to "StartContainer" for "POD" with ErrImagePull: "image pull failed for gcr.io/google_containers/pause-amd64:3.0, this may be because there are no credentials on this request. details: (Error response from daemon: Get https://gcr.io/v1/_ping: dial tcp 64.233.187.82:443: i/o timeout)" 6m 1m 10 {kubelet minikube} Warning FailedSync Error syncing pod, skipping: failed to "StartContainer" for "POD" with ImagePullBackOff: "Back-off pulling image \"gcr.io/google_containers/pause-amd64:3.0\""

解决问题

参考k8s初游: minikube启动docker镜像这篇文章的方法,这里我们用阿里的镜像

minikube ssh
docker pull registry.cn-hangzhou.aliyuncs.com/google-containers/pause-amd64:3.0
docker tag registry.cn-hangzhou.aliyuncs.com/google-containers/pause-amd64:3.0 gcr.io/google_containers/pause-amd64:3.0

删除pod再观察下

kubectl delete pods xxxx
kubectl get pod --all-namespaces

这下变成running了

NAME                             READY     STATUS    RESTARTS   AGE
hello-minikube-957602326-gf17s 1/1 Running 0 40s

跑下demo

curl $(minikube service hello-minikube --url)

输出

CLIENT VALUES:
client_address=172.17.0.1
command=GET
real path=/
query=nil
request_version=1.1
request_uri=http://192.168.99.101:8080/ SERVER VALUES:
server_version=nginx: 1.10.0 - lua: 10001 HEADERS RECEIVED:
accept=*/*
host=192.168.99.101:31860
user-agent=curl/7.43.0
BODY:

解决kube-addon-manager-minikube的ImagePullBackOff问题

查看详情

kubectl describe --namespace=kube-system po kube-addon-manager-minikube

发现拉取gcr.io/google-containers/kube-addon-manager:v6.1失败,使用阿里云的镜像fix一下

minikube ssh
docker pull registry.cn-hangzhou.aliyuncs.com/google-containers/kube-addon-manager-amd64:v6.1
docker tag registry.cn-hangzhou.aliyuncs.com/google-containers/kube-addon-manager-amd64:v6.1 gcr.io/google-containers/kube-addon-manager:v6.1

使用

kubectl get pods --all-namespaces

正常了

NAMESPACE     NAME                             READY     STATUS    RESTARTS   AGE
default hello-minikube-957602326-gf17s 1/1 Running 1 44m
kube-system kube-addon-manager-minikube 1/1 Running 0 55m

minikube dashboard

kubectl get pod --all-namespaces
NAMESPACE NAME READY STATUS RESTARTS AGE
default hello-minikube-957602326-gf17s 1/1 Running 1 47m
kube-system kube-addon-manager-minikube 1/1 Running 0 58m
kube-system kube-dns-v20-m9p7t 0/3 ContainerCreating 0 2m
kube-system kubernetes-dashboard-k6z7w 0/1 ImagePullBackOff 0 2m

查看下

kubectl describe --namespace=kube-system po kube-dns-v20-m9p7t

fix

minikube ssh
docker pull registry.cn-hangzhou.aliyuncs.com/google-containers/kubedns-amd64:1.9
docker tag registry.cn-hangzhou.aliyuncs.com/google-containers/kubedns-amd64:1.9 gcr.io/google_containers/kubedns-amd64:1.9 docker pull registry.cn-hangzhou.aliyuncs.com/google-containers/kube-dnsmasq-amd64:1.4
docker tag registry.cn-hangzhou.aliyuncs.com/google-containers/kube-dnsmasq-amd64:1.4 gcr.io/google_containers/kube-dnsmasq-amd64:1.4 docker pull registry.cn-hangzhou.aliyuncs.com/google-containers/exechealthz-amd64:1.2
docker tag registry.cn-hangzhou.aliyuncs.com/google-containers/exechealthz-amd64:1.2 gcr.io/google_containers/exechealthz-amd64:1.2

fix

kubectl describe --namespace=kube-system po kubernetes-dashboard-k6z7w
docker pull registry.cn-hangzhou.aliyuncs.com/google-containers/kubernetes-dashboard-amd64:v1.5.0
docker tag registry.cn-hangzhou.aliyuncs.com/google-containers/kubernetes-dashboard-amd64:v1.5.0 gcr.io/google_containers/kubernetes-dashboard-amd64:v1.5.1

最后再次打开dashboard

minikube dashboard

看到久违的界面了

屏幕快照 2017-01-21 下午8.08.56.png

doc

Mac--安装kubernetes并运行echoserver的更多相关文章

  1. Mac 安装 Ruby, Rails 运行环境

    对于新入门的开发者,如何安装 Ruby, Ruby Gems 和 Rails 的运行环境可能会是个问题,本页主要介绍如何用一条靠谱的路子快速安装 Ruby 开发环境. 次安装方法同样适用于产品环境! ...

  2. docker for mac 安装 kubernetes、kubernetes dashboard

    安装参考地址(按照此文档,安装成功):https://yq.aliyun.com/articles/508460 官方说明:https://kubernetes.io/docs/tasks/acces ...

  3. MAC安装MacPorts 卡在“正在运行软件包脚本”的解决办法

    MAC安装MacPorts 卡在"正在运行软件包脚本"的解决办法 点击右上角强制结束掉"安装器" 打开terminal, 输入命令"ps -ef | ...

  4. Mac上使用Docker Desktop安装Kubernetes

    下载镜像需要特殊手段,你懂的,如果没有特殊手段,建议放弃这种方式. 1 启用Kubernetes 启用过程,会联网下载kubenetes相关的核心组件镜像,如下是我下载好的: 下载好了,kubenet ...

  5. Linux安装kubernetes

    使用KUBEADM安装KUBERNETES V1.14.0 一.环境准备      操作系统:Centos 7.5      一台或多台运⾏行行着下列列系统的机器器: ​ Ubuntu 16.04+ ...

  6. Centos7 使用 kubeadm 安装Kubernetes 1.13.3

    目录 目录 什么是Kubeadm? 什么是容器存储接口(CSI)? 什么是CoreDNS? 1.环境准备 1.1.网络配置 1.2.更改 hostname 1.3.配置 SSH 免密码登录登录 1.4 ...

  7. docker官方文档学习-1-Docker for mac安装配置

    https://docs.docker.com/docker-for-mac/ Get started with Docker for Mac 首先像在本博客docker-1-环境安装及例子实践处将环 ...

  8. 使用kubeadm安装kubernetes v1.14.1

    使用kubeadm安装kubernetes v1.14.1 一.环境准备 操作系统:Centos 7.5 ​ ⼀ 一台或多台运⾏行行着下列列系统的机器器: ​ Ubuntu 16.04+ ​ Debi ...

  9. 使用Kubeadm安装Kubernetes【单Master节点】

    参考:Kubernetes官方文档 Kubernetes安装方案选择    Centos 7 配置科学上网 安装Calico网络插件 kubernetes-dashboard部署 Kubernetes ...

随机推荐

  1. (60)zabbix网络发现介绍Network Discovery

    网络发现简介 网络发现有什么用?网络发现怎么配置? 我们带着这两个问题开始我们的网络发现之旅. 比如小明有100台服务器,不想一台台主机去添加,能不能让zabbix自动添加主机呢,当然可以,网络发现便 ...

  2. clock gate

    clock gate 这个专题,比较复杂设计DC  PT PR.下面仅仅从RTL行为级说明一下.

  3. Mysql 随机函数 rand()

    rand() 函数主要有两个用处: 1.是产生随机数, 2.是随机排序(在数据较大的时候会变成性能杀手) 实例: 1.产生一个随机数,默认0~1之间的浮点数 SELECT RAND( ) 2.参数指定 ...

  4. 【java】抽象类继承关系

    抽象类: 抽象类不能用来实例化对象,声明抽象类的唯一目的是为了将来对该类进行扩充. 一个类不能同时被 abstract 和 final 修饰.如果一个类包含抽象方法,那么该类一定要声明为抽象类,否则将 ...

  5. 【cookie】【浏览器】各大浏览器对cookie的限制

  6. ACM-ICPC 2018 沈阳赛区网络预赛 F. Fantastic Graph

    "Oh, There is a bipartite graph.""Make it Fantastic." X wants to check whether a ...

  7. Java的9种基本数据类型以及封装类

    Java的9种基本数据类型以及封装类 基本类型 大小(单位/字节) 默认值 封装类 byte 1 (byte)0 Byte short 2 (short)0 Short int 4 0 Integer ...

  8. PAT Basic 1038

    1038 统计同成绩学生 本题要求读入N名学生的成绩,将获得某一给定分数的学生人数输出. 输入格式: 输入在第1行给出不超过10^5^的正整数N,即学生总人数.随后1行给出N名学生的百分制整数成绩,中 ...

  9. 四丶人生苦短,我用python【第四篇】

    1 基本数据类型 数字    int 字符串   str 布尔值   bool 列表       list 元组       tuple 字典       dict >>>type( ...

  10. javascript前端下载

    <html> <head> <title>测试标题</title> </head> <body> <div> 测试页 ...