mac安装kubernetes并运行echoserver
序
上次虽然写了两篇在mac装kubernetes的,但是仅仅限于初步安装,这次再补上跑个demo,正好也赶上阿里云有相关镜像,于是这里再次记录下。
安装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
看到久违的界面了
doc
code-craft
spring boot , docker and so on 欢迎关注微信公众号: geek_luandun
推荐阅读
mac使用podman替代docker
序本文主要记录一下使用podman替代docker的过程安装podman {代码...} 或者去[链接]下载对应的pkgpodman compose {代码...} 或者 {代码...} 使用machine {代码...} init添加-v来挂载宿主机的文件夹到machinecompos...
codecraft赞 1阅读 270
Helm3-安装RabbitMQ
最近在使用k8s搭建微服务时,发现需要手动修改yaml文件里面的pod name、pod image、svc name、ingress tls等等,非常麻烦,但是有了helm之后情况就不一样了,helm是k8s的包管理器,类似ubuntu的apt-get,centos的...
Awbeci阅读 9.6k
Kubernetes Gateway API 深入解读和落地指南
Kubernetes Gateway API 是 Kubernetes 1.18 版本引入的一种新的 API 规范,是 Kubernetes 官方正在开发的新的 API,Ingress 是 Kubernetes 已有的 API。Gateway API 会成为 Ingress 的下一代替代方案。Gateway A...
Rainbond赞 2阅读 456
Jvm调优与微服务资源分配
在没有接触微服务之前,我们的java程序一般都部署在WebLogic、Tomcat这类应用服务器上,这些应用服务器本身也是基于Jvm虚拟机的。一般我们统一对应用服务器做Jvm参数调优(分配多大内存,线程池限制等),而不用...
KerryWu阅读 6.1k
K8S-使用Helm安装RabbitMQ和Redis的总结
记得去年2021上半年的时候自学了k8s并且使用helm安装了rabbitmq和redis,可以在开发、测试和生产环境上用起来,但是下半年之后就没有用,再拾起来的时候发现好多知识点都忘了,这篇文章就是总结使用helm安装rabbm...
Awbeci赞 1阅读 1.9k
Kubernetes v1.27 新特性一览
Kubernetes v1.27 是 2023 年的第一个大版本更新,包含了近 60 项主要的更新。 而 1.26 只有 37 项,所以这个版本可以说是一个变化非常显著的版本了。
张晋涛赞 1阅读 1.1k
实战:用“廉价”的NFS作为K8S后端存储
大家都知道,NFS是一种基于网络的文件系统协议,允许在不同的机器之间共享文件系统资源。在K8S中,可以使用NFS作为后端存储,以提供持久化存储和共享存储卷。但是否适合在生产环境使用NFS作为后端存储,这取决于...
不背锅运维赞 2阅读 770
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。