重装k8s
https://blog.csdn.net/qq_40806970/article/details/97245650?spm=1001.2014.3001.5506
参考 - 在ubuntu16.04下 部署Kubernetes 遇到的坑以及解决办法 亲测有用
首先使用我master节点里的delk8s.sh
#!/bin/bash
sudo kubeadm reset -f
sudo rm -rvf $HOME/.kube
sudo rm -rvf ~/.kube/
sudo rm -rvf /etc/kubernetes/
sudo rm -rvf /etc/systemd/system/kubelet.service.d
sudo rm -rvf /etc/systemd/system/kubelet.service
sudo rm -rvf /usr/bin/kube*
sudo rm -rvf /etc/cni
sudo rm -rvf /opt/cni
sudo rm -rvf /var/lib/etcd
sudo rm -rvf /var/etcd
sudo apt-get remove kube*
//先禁用swap
sudo swapoff -a
free -m //查看
//设置交换分区开机不启动,注释掉swap那一行
vim /etc/fstab
//关闭防火墙
sudo ufw disable
//禁用Selinux
sudo apt install selinux-utils
setenforce 0
//在两个节点的 /etc/hosts配置中 分别 加入
127.0.0.1 localhost
127.0.1.1 master //这个名字也要改
192.168.200.140 master
192.168.200.137 node01
192.168.200.135 node02
192.168.200.141 node03
//两个节点中都要安装Docker
//安装ssh服务器方便scp传文件
sudo apt install openssh-server
#kubeadm源 sudo su (mater和node都需要)
// cat 到 EOF 是写入文件,复制的时候单行复制,不要有空行。
curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add - //添加密钥
cat <<EOF >/etc/apt/sources.list.d/kubernetes.list //添加Kubernetes软件源
deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main
EOF
exit
(mater和node都需要)
sudo apt update
sudo vim /etc/docker/daemon.json
{
"registry-mirrors": ["https://dpxn2pal.mirror.aliyuncs.com"],
"iptables": false,
"exec-opts": ["native.cgroupdriver=systemd"]
}
systemctl daemon-reload
systemctl restart docker
(我之前的,没用)
{
"registry-mirrors": ["https://alzgoonw.mirror.aliyuncs.com"],
"live-restore": true,
"exec-opts": ["native.cgroupdriver=systemd"],
"iptables": false
}
(mater和node都需要)
sudo apt-get update
sudo apt-cache madison kubeadm //可以查看都可以安装什么版本
sudo apt-get remove -y kubelet=1.17.3-00 kubeadm=1.17.3-00 kubectl=1.17.3-00 //删除旧的
sudo apt-get install -y kubelet=1.17.3-00 kubeadm=1.17.3-00 kubectl=1.17.3-00
//使用kubectl version 命令,输出的信息会显示client和server的版本信息,client代表kubectl版本信息,server代表的是master节点的k8s版本信息
sudo systemctl enable kubelet && sudo systemctl start kubelet
//使用master节点上的run.sh拉镜像下来,实现从阿里云拉取镜像,打上与初始化对应的镜像tag(mater和node都需要)
//kubeadm 初始化
modprobe br_netfilter
sudo kubeadm config images list
sudo kubeadm init --apiserver-advertise-address=192.168.200.142 --pod-network-cidr=10.244.0.0/16 --kubernetes-version=v1.17.3
sudo kubeadm init --apiserver-advertise-address=192.168.200.142 --pod-network-cidr=10.100.0.0/16 --kubernetes-version=v1.19.3
//根据初始化显示的提示操作master节点
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
//(node节点也需要),复制master的admin.conf文件过来,这样在node节点也可以看见node
sudo vim /etc/kubernetes/admin.conf
//此外要把 .kube 也移到node里
k8s.gcr.io/kube-apiserver:v1.19.16
k8s.gcr.io/kube-controller-manager:v1.19.16
k8s.gcr.io/kube-scheduler:v1.19.16
k8s.gcr.io/kube-proxy:v1.19.16
k8s.gcr.io/pause:3.2
k8s.gcr.io/etcd:3.4.13-0
k8s.gcr.io/coredns:1.7.0
The connection to the server localhost:8080 was refused - did you specify the right host or port? 解决
步骤一:设置环境变量
编辑文件设置
vim /etc/profile
在底部增加新的环境变量 export KUBECONFIG=/etc/kubernetes/admin.conf
步骤二:使生效
source /etc/profile
//cni和flannel网络插件的安装 (mater和node都需要)
sudo mkdir -p /opt/cni/bin
cd /opt/cni/bin
sudo tar -zxvf cni-plugins-linux-amd64-v0.8.6.tar.gz (this is in my own thing)
sudo kubectl apply -f kube-flannel.yaml
then in master is ok
(mater和node都需要)
sudo vim /etc/systemd/system/kubelet.service.d/10-kubeadm.conf
# Note: This dropin only works with kubeadm and kubelet v1.11+
[Service]
Environment="KUBELET_KUBECONFIG_ARGS=--bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --kubeconfig=/etc/kubernetes/kubelet.conf"
Environment="KUBELET_CONFIG_ARGS=--config=/var/lib/kubelet/config.yaml"
# This is a file that "kubeadm init" and "kubeadm join" generates at runtime, populating the KUBELET_KUBEADM_ARGS variable dynamically
EnvironmentFile=-/var/lib/kubelet/kubeadm-flags.env
# This is a file that the user can use for overrides of the kubelet args as a last resort. Preferably, the user should use
# the .NodeRegistration.KubeletExtraArgs object in the configuration files instead. KUBELET_EXTRA_ARGS should be sourced from this file.
EnvironmentFile=-/etc/default/kubelet
ExecStart=
ExecStart=/usr/bin/kubelet $KUBELET_KUBECONFIG_ARGS $KUBELET_CONFIG_ARGS $KUBELET_KUBEADM_ARGS $KUBELET_EXTRA_ARGS
把上面这些填进去
如果这个时候报错,那么就在:
/var/lib/kubelet/下
创建kubeadm-flags.env文件
内容是:
KUBELET_KUBEADM_ARGS="--cgroup-driver=systemd --network-plugin=cni –pod-infra-container-image=k8s.gcr.io/pause:3.1"
那么这样就解决了
# 重起kubelet
systemctl daemon-reload
systemctl restart kubelet
journalctl -f -u kubelet
//有错误的时候通过日志查看错误
https://blog.csdn.net/qq_34988341/article/details/117635805
Get http://localhost:10248/healthz: dial tcp 127.0.0.1:10248: connect: connection refused.
查看端口占用
nestat -ap | grep 3003
http://www.manongjc.com/detail/21-kwzanttnyuxfyhd.html
calico-node-sr67w 0/1 CrashLoopBackOff