Kubernetes重启电脑之后拒绝链接specify the right host or port,以及部署prometheus所遇到的坑

1.Kubernets部署部分

善于使用日志,进行排错

journalctl -f

1.1 关机之后无法链接:

The connection to the server ***********was refused - did you specify the right host or port?
解决方案:
1.查看docker状态。若关闭,启动

systemctl status docker
systemctl start docker

#若启动失败,可能的原因是:安装kubernets之前安装过的docker残留文件影响了kubernets安装的docker启动
#解决方法:
  #将/etc/docker/daemon.json删除,重新启动即可。

在这里插入图片描述
2.启动kubelet

 systemctl start kubelet
 #查看启动效果
 kubectl get nodes
 #正常来说,这里就成功了,若还没成功,有可能是swap,没有永久关闭

3.永久关闭交换空间

swapoff -a
vi /etc/fstab
#注释掉带有swap那一行,通常来说是最后一行。

1.2 初始化 kubeadm init --config ./kubeadm.conf ,显示镜像not found等

这里的error,普通的参照它自带的解析修改就好
比如什么cpu个数,swap未关闭,bridge-nf-call-iptables 这个参数,需要设置为 1:改好重新执行就ok。我就不多费唇舌。
这里详细说下image not found,或者无法pull
解决方案:
1.修改Kubeadm.conf的内容,严格遵守yaml格式,下面可能出现格式混乱,自己参照修改。

vi kubeadm.conf
# 修改 imageRepository: k8s.gcr.io
# 改为 registry.cn-hangzhou.aliyuncs.com/google_containers,这里这个地址,网上有aliyun但不是官方仓库,是私人仓库的不要用,坑得狠
imageRepository: registry.cn-hangzhou.aliyuncs.com/google_containers
# 修改kubernetes版本kubernetesVersion: v1.13.0
# 改为kubernetesVersion: v1.15.0
kubernetesVersion: v1.15.0

修改 kubeadm.conf 中的API服务器地址,后面会频繁使用这个
地址。serverapi的地址
localAPIEndpoint:
localAPIEndpoint:
advertiseAddress: 192.168.0.100
bindPort: 6443
注意:  192.168.0.100 是master主机的ip地址

配置子网网络
networking:
	dnsDomain: cluster.local
	podSubnet: 10.244.0.0/16
	serviceSubnet: 10.96.0.0/12
scheduler: {}
这里的 10.244.0.0/16 和  10.96.0.0/12 分别是k8s内部pods和services的子网网络,最好使用这个地址,后续flannel网络需要用到。

2.重新执行初始化

sudo kubeadm init --config ./kubeadm.conf
#顺带一嘴,执行完这个token,最好复制拿出保存。

1.3.使用flannel网络,镜像无法下载

使用flannel,最后执行kubectl get pods --all-namespaces -o wide,缺发现下载镜像不成功,有可能是镜像源的问题。
解决方案:手动下载镜像
1.到国内加速源七牛下载后,重新打标签

docker pull quay-mirror.qiniu.com/coreos/flannel:v0.11.0-amd64
#把这镜像标签改回quay.io
docker tag quay-mirror.qiniu.com/coreos/flannel:v0.11.0-amd64 quay.io/coreos/flannel:v0.11.0-amd64

2.Prometheus部分

2.1operator中镜像无法下载。

解决方案:更改对应values中的镜像源路径
1.查看是哪个镜像无法下载

kubectl get pods -o wide -n <namespace>
journalctl -f

2.查看镜像所在位置,引号里面的内容,根据实际情况变化

find .|grep values.yaml|xargs grep "image:"

正常来说就是
针对更改 quay.io为quay-mirror.qiniu.com
k8s.gcr.io改为registry.cn-hangzhou.aliyuncs.com/google_containers

3.更新yaml文件,你刚才改的文件

#路径通常是退到prometheus-operator外层,进行更新
helm upgrade imooc-prom ./prometheus-operator/ -f ./prometheus-operator/charts/grafana/values.yaml

补充:k8s中,部署prometheus,operator因为镜像问题倒腾了两天,只能说这个上网环境太艰辛。别换azk8s了,已经凉了。
在这里插入图片描述
中途一直报imagepullbackoff,一直在创建,等等问题,都是因为镜像源的问题,能FQ的还好。
下面归纳下解决流程:

#查看状态 对应自己的namespace
kubectl get pods -o wide -n monitoring
kubectl describe pod -n monitoring
#看日志是哪个镜像下载不了,这里发现是exporter
journalctl -f
#找到所有国外镜像源
find .|grep values.yaml|xargs grep "quay.io"
find .|grep values.yaml|xargs grep "k8s.gcr.io"
#利用替换把所有quay.io全换为七牛的,k8s.gcr.io换为registry.aliyuncs.com/google_containers
sed -i  's/quay.io/quay-mirror.qiniu.com/g'  <对应位置的具体文件>
#更新你的下载源,helm就是promeheus的yum
helm upgrade imooc-prom ./prometheus-operator/ -f ./prometheus-operator/charts/grafana/values.yaml

更新之后还是有下载不下来的

#去七牛上找具体的源https://hub.qiniu.com/home
#然后针对性的修改
我这里遇到node-exporter下载不了,最后单独改的源
docker pull reg.qiniu.com/zun/node-exporter:v0.17.0
#然后就是换成阿里云的部分,因为阿里云很久没更新了可能遇到版本不匹配也下载不了
#就针对性地,将阿里云换成googlecontainersmirror
我这里遇到hyperkube,阿里云无法下载最后镜像源换成了googlecontainersmirror

总的替换规则:
在这里插入图片描述
上图来源于https://www.cnblogs.com/ants/archive/2020/04/09/12663724.html
感谢博主。

参考文献:

https://www.cnblogs.com/ants/archive/2020/04/09/12663724.html
https://blog.csdn.net/qq_40806970/article/details/97645628
https://www.cnblogs.com/carriezhangyan/p/11084052.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值