重装k8s

重装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

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值