参考文档:https://www.jianshu.com/p/ff61bb4832c2
https://www.jianshu.com/p/6a38c100e3d1

“Failed to run kubelet” err=”failed to run Kubelet: misconfiguration: kubelet cgroup driver: \”cgroupfs\” is different from docker cgroup driver: \”systemd\””

原因:docker和kubelet 的CgroupDriver不一致
解决方案:

  1. - 修改docker,只需在/etc/docker/daemon.json中,添加"exec-opts": ["native.cgroupdriver=systemd"]
  2. - cat > /var/lib/kubelet/config.yaml <<EOF apiVersion: kubelet.config.k8s.io/v1beta1 kind: KubeletConfiguration cgroupDriver: systemd EOF

coredns下载不下来

  • docker pull docker pull registry.aliyuncs.com/google_containers/coredns:1.8.4
  • docker tag registry.aliyuncs.com/google_containers/coredns:1.8.4 registry.aliyuncs.com/google_containers/coredns:v1.8.4

k8s使用阿里镜像

使用kubeadm搭建k8s集群 kubeadm init 之后发现 node 的状态一直为NotReady

  • k8s配置 __—apiserver-advertise-address 一定要使用内网IP
  • image.png


组件controller-manager与scheduler状态为Unhealthy处理

  • /etc/kubernetes/manifests/ kube-controller-manager.yaml kube-scheduler.yaml

修改清单文件,注释掉–port=0这一行,在对清单文件进行修改时先做备份操作

两台服务器分别部署master node节点 master使用为内网ip时,kubeadm join会连不到master节点

  • iptables -t nat -A OUTPUT -d 192.168.0.1 -j DNAT —to-destination 152.132.125.96
  • 第一个ip是master节点的内网ip,后一个ip是外网Ip

    worker 节点 Theconnectiontotheserverlocalhost:8080wasrefused-didyouspecifytherighthostorport?

    将master admin.conf 负责到worker节点即可 :::info 将主节点(master节点)中的【/etc/kubernetes/admin.conf】文件拷贝到从节点相同目录下:
    scp -r /etc/kubernetes/admin.conf ${node1}:/etc/kubernetes/admin.conf

配置环境变量:
echo “export KUBECONFIG=/etc/kubernetes/admin.conf” >> ~/.bash_profile

立即生效:
source ~/.bash_profile :::

kubeadm config print init-defaults > kubeadm-config.yaml 输入kubeadm 默认配置文件

--apiserver-advertise-address 0.0.0.0 \
# API 服务器所公布的其正在监听的 IP 地址,指定“0.0.0.0”以使用默认网络接口的地址
# 切记只可以是内网IP,不能是外网IP,如果有多网卡,可以使用此选项指定某个网卡
--apiserver-bind-port 6443 \
# API 服务器绑定的端口,默认 6443
--cert-dir /etc/kubernetes/pki \
# 保存和存储证书的路径,默认值:"/etc/kubernetes/pki"
--control-plane-endpoint kuber4s.api \
# 为控制平面指定一个稳定的 IP 地址或 DNS 名称,
# 这里指定的 kuber4s.api 已经在 /etc/hosts 配置解析为本机IP
--image-repository registry.cn-hangzhou.aliyuncs.com/google_containers \
# 选择用于拉取Control-plane的镜像的容器仓库,默认值:"k8s.gcr.io"
# 因 Google被墙,这里选择国内仓库
--kubernetes-version 1.17.3 \
# 为Control-plane选择一个特定的 Kubernetes 版本, 默认值:"stable-1"
--node-name master01 \
#  指定节点的名称,不指定的话为主机hostname,默认可以不指定
--pod-network-cidr 10.10.0.0/16 \
# 指定pod的IP地址范围
--service-cidr 10.20.0.0/16 \
# 指定Service的VIP地址范围
--service-dns-domain cluster.local \
# 为Service另外指定域名,默认"cluster.local"
--upload-certs
# 将 Control-plane 证书上传到 kubeadm-certs Secret
4) 配置kubectl:
#rm -f .kube && mkdir .kube
#cp -i /etc/kubernets/admin.conf .kube/config
#chown $(id -u):$(id -g) $HOME/.kube/config   //可用于为普通用户分配kubectl权限