概述
文章目录
- k8s使用docker无法加载镜像Error response from daemon: Get https://k8s.gcr.io/v2/: net/http: request 及初始化失败kubeadm init
- Kubernetes k8s拉取镜像失败最简单最快最完美解决方法 [ERROR ImagePull]: failed to pull image k8s.gcr.io/kube-apiserver
- 解决方法---使用阿里云镜像
- kubesphere应用路由--ingress
[root@master1 ~]# cat /etc/docker/daemon.json
{
"exec-opts": ["native.cgroupdriver=systemd"],
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}
k8s使用docker无法加载镜像Error response from daemon: Get https://k8s.gcr.io/v2/: net/http: request 及初始化失败kubeadm init
文章来源:https://www.cnblogs.com/yaok430/p/13806650.html
[root@master1 ~]# cat image.pull
#!/bin/bash
#img_list='
#k8s.gcr.io/kube-apiserver:v1.17.17
#k8s.gcr.io/kube-controller-manager:v1.17.17
#k8s.gcr.io/kube-scheduler:v1.17.17
#k8s.gcr.io/kube-proxy:v1.17.17
#k8s.gcr.io/pause:3.1
#k8s.gcr.io/etcd:3.4.3-0
#k8s.gcr.io/coredns:1.6.5
#'
img_list='
registry.cn-hangzhou.aliyuncs.com/google_containers/kube-apiserver:v1.17.17
registry.cn-hangzhou.aliyuncs.com/google_containers/kube-controller-manager:v1.17.17
registry.cn-hangzhou.aliyuncs.com/google_containers/kube-scheduler:v1.17.17
registry.cn-hangzhou.aliyuncs.com/google_containers/kube-proxy:v1.17.17
registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.1
registry.cn-hangzhou.aliyuncs.com/google_containers/etcd:3.4.3-0
registry.cn-hangzhou.aliyuncs.com/google_containers/coredns:1.6.5
'
for img in $img_list
do
docker pull $img
done
Kubernetes k8s拉取镜像失败最简单最快最完美解决方法 [ERROR ImagePull]: failed to pull image k8s.gcr.io/kube-apiserver
解决方法—使用阿里云镜像
运行kubeadm init时加上阿里云镜像的参数–image-repository=registry.aliyuncs.com/google_containers,如下:(版本改为自己需要的)
kubeadm init --image-repository=registry.aliyuncs.com/google_containers --pod-network-cidr=10.244.0.0/16 --kubernetes-version=v1.18.5
kubesphere应用路由–ingress
ClusterIP的方式只能在集群内部访问
NodePort方式的话,测试环境使用还行,当有几十上百的服务在集群中运行时,NodePort的端口管理是灾难。
LoadBalance方式受限于云平台,且通常在云平台部署ELB还需要额外的费用。
所幸k8s还提供了一种集群维度暴露服务的方式,也就是ingress。ingress可以简单理解为service的service,他通过独立的ingress对象来制定请求转发的规则,把请求路由到一个或多个service中。这样就把服务与请求规则解耦了,可以从业务维度统一考虑业务的暴露,而不用为每个service单独考虑,下面是一个简单的ingress应用图,实现了简单的请求转发;
ingress对象:
指的是k8s中的一个api对象,一般用yaml配置。作用是定义请求如何转发到service的规则,可以理解为配置模板。
ingress-controller:
具体实现反向代理及负载均衡的程序,对ingress定义的规则进行解析,根据配置的规则来实现请求转发。
简单来说,ingress-controller才是负责具体转发的组件,通过各种方式将它暴露在集群入口,外部对集群的请求流量会先到ingress-controller,而ingress对象是用来告诉ingress-controller该如何转发请求,比如哪些域名哪些path要转发到哪些服务等等。
ingress-controller并不是k8s自带的组件,实际上ingress-controller只是一个统称,用户可以选择不同的ingress-controller实现,目前,由k8s维护的ingress-controller只有google云的GCE与ingress-nginx两个,其他还有很多第三方维护的ingress-controller,具体可以参考官方文档。但是不管哪一种ingress-controller,实现的机制都大同小异,只是在具体配置上有差异。一般来说,ingress-controller的形式都是一个pod,里面跑着daemon程序和反向代理程序。daemon负责不断监控集群的变化,根据ingress对象生成配置并应用新配置到反向代理,比如nginx-ingress就是动态生成nginx配置,动态更新upstream,并在需要的时候reload程序应用新配置。为了方便,后面的例子都以k8s官方维护的nginx-ingress为例。
kubesphere的ingress示例
kind: Ingress
apiVersion: extensions/v1beta1
metadata:
name: hnrcd-dev-web
namespace: hhnrcd-dev
labels:
app: hnrcd-dev-web
annotations:
kubesphere.io/description: 前端
nginx.ingress.kubernetes.io/rewrite-target: /$1
nginx.ingress.kubernetes.io/use-regex: 'true'
spec:
rules:
- host: abc.web.dev..com.cn
http:
paths:
- path: /
backend:
serviceName: cloud-log-audit-financial-web
servicePort: 80
- path: /api/(.*)
backend:
serviceName: sys-gateway
servicePort: 10036
最后
以上就是凶狠棒棒糖为你收集整理的k8s--小知识的全部内容,希望文章能够帮你解决k8s--小知识所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复