本文图片均是实验截取不存在侵权!!!

初始化超时

清理文件重新初始化即可

rm -rf /etc/kubenetes/*或者 kubeadm reset -f

高可用集群初始化

kubeadm init --control-plane-endpoint "192.168.10.105" --pod-network-cidr 172.16.0.0/16 --service-cidr 10.96.0.0/16  --image-repository registry.aliyuncs.com/google_containers --upload-certs

注:--control-plane-endpoint该选项后可跟IP或IP:6443;必须是6443 ;这个IP是那台做负载衡的IP,记得准备两台做高可用

--image-repository指定国内镜像源

--upload-certs该选项是多MASTER时使用,可追加控制平台

高可用集群初始化完成

  1. 是追加控制平台的
  2. 是加入工作节点的

注:总之准备环境的时候没有出错,后面基本上一路顺风

准备安装环境的时候:

  1. 注意镜像源,docker的daemon.json文件的配置,不要限定systemd或者cgroups
  2. systemd和cgroups都是linux内核的空间隔离,可以理解为namespace
  3. 注意DOCKER和KUBERNETES的版本是否兼容

出现这种情况:

解决:

  1. CNI插件没有装

下载

Wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-

flannel.yml

修改文件内的镜像源(必选,其他的可以不改,看需求)

image: quay.mirrors.ustc.edu.cn/coreos/flannel:v0.13.1-rc1

两行注释记得删掉,这里只是为了说明改哪里

  1. 不知名原因

重启kubelet

Systemctl restart kubelet

还不能解决的,目前本人还没有遇到

组件报错:

报错1

报错2

执行kubectl get cs后报如下错误:

scheduler Unhealthy Get http://127.0.0.1:10251/healthz: dial tcp 127.0.0.1:10251: connect: connection refused

解决:

1.修改conteoller-manger的yaml文件,容器启动参数中 --port=0注释掉,

该--port=0表示禁止使用非安全的http接口,同时 --bind-address 非安全的绑定地址参数失效。

vim /etc/kubernetes/manifests/kube-controller-manager.yaml

2.修改kube-scheduler.yaml,容器启动参数中 --port=0注释

该--port=0表示禁止使用非安全的http接口,同时 --bind-address 非安全的绑定地址参数失效。

vim /etc/kubernetes/manifests/kube-scheduler.yaml

报错解决后显示:

3.修改Kube-proxy:

kube-proxy默认采用了 iptables 模式,如果需要需改为ipvs,则修改其configmap,并杀死kube-proxy的pod,让其重启。

(1)导出为YAML格式文件kubectl get cm -n kube-system kube-proxy -o yaml > kube-proxy.yaml

vim kube-proxy.yaml

查看进程

ps aux | grep kube-proxy

杀死进程

Kill 16384

Kill 87603

如果杀不死,使用-9强制杀死(-9仅限实验环境,生产环境三思而后行)

或直接重启K8S

Systemctl restart kuubelet

  1. 查看当前使用的模式则,两种方式,通过 ipvsadm -L 查看是否有ipvs转发规则,也可以通过日志查看

日志方式:

kubectl logs -f -n kube-system kube-proxy-49s6m

待续。。。

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐