云原生 | kubernetes - 超光速搭建k8s集群

目录

节点信息

前置要求

基础环境

安装kubelet、kubeadm、kubectl

使用kubeadm引导集群

下载各个机器需要的镜像

初始化主节点

安装网络组件

加入node节点

controller-manager   Unhealthy   Get "http://127.0.0.1:10252/healthz": dial tcp 127.0.0.1:10252: connect: connection refusedscheduler            Unhealthy   Get "http://127.0.0.1:10251/healthz": dial tcp 127.0.0.1:10251: connect: connection refused 


节点信息

一共三台CentOS7,其中一台为master,另外两台为node节点


前置要求

每一台机器上都安装好Docker,shell脚本一键安装(docker.sh)

#!/bin/bash
docker --version
if [ $? -ne 0 ]; then
echo '正在安装Docker####################'
yum install -y yum-utils device-mapper-persistent-data lvm2
yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \  docker-logrotate \  docker-selinux \ docker-engine-selinux \ docker-engine
echo '                                                               没有匹配就对了!!!!!!!!!!!'
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum makecache fast
yum -y install docker-ce
systemctl start docker
systemctl enable docker
else
echo "Docker has been installed,Docker已经被安装####################"
fi

加权并运行: 

chmod +x ./docker.sh && ./docker.sh

基础环境

以下配置所有机器都要运行!

关闭防火墙:

systemctl stop firewalld
systemctl disable firewalld

关闭SELinux:

sudo sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config

关闭swap(此步骤运行完可能需要一次重启才会生效):

sed -ri 's/.*swap.*/#&/' /etc/fstab

 iptables:

cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf
br_netfilter
EOF
cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sudo sysctl --system

host:

注意这里的IP地址写成自己机器的IP(选一台作为master)!

echo "192.168.150.201  cluster-endpoint" >> /etc/hosts

安装kubelet、kubeadm、kubectl

以下配置所有机器都要运行!

kubelet 现在每隔几秒就会重启,因为它陷入了一个等待 kubeadm 指令的死循环。所以在systemctl status查看的时候大概率看到它是死的,不用管它,因为它在等命令。

cat <<EOF | sudo tee /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=http://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
   http://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
exclude=kubelet kubeadm kubectl
EOF
sudo yum install -y kubelet-1.20.9 kubeadm-1.20.9 kubectl-1.20.9 --disableexcludes=kubernetes
sudo systemctl enable --now kubelet

使用kubeadm引导集群

下载各个机器需要的镜像

依旧是所有机器执行:

sudo tee ./images.sh <<-'EOF'
#!/bin/bash
images=(
kube-apiserver:v1.20.9
kube-proxy:v1.20.9
kube-controller-manager:v1.20.9
kube-scheduler:v1.20.9
coredns:1.7.0
etcd:3.4.13-0
pause:3.2
)
for imageName in ${images[@]} ; do
docker pull registry.cn-hangzhou.aliyuncs.com/lfy_k8s_images/$imageName
done
EOF
chmod +x ./images.sh && ./images.sh

初始化主节点

这里仅仅在你的master节点上运行(第二行的IP改成你自己master节点的IP!)

kubeadm init \
--apiserver-advertise-address=192.168.150.201 \
--control-plane-endpoint=cluster-endpoint \
--image-repository registry.cn-hangzhou.aliyuncs.com/lfy_k8s_images \
--kubernetes-version v1.20.9 \
--service-cidr=10.96.0.0/16 \
--pod-network-cidr=192.168.0.0/16

初始化效果(这里先留着,等会后面还要用!)

 把上图中蓝色框框里的内容直接拿下来复制粘贴(这里仅在master节点上运行)

  mkdir -p $HOME/.kube
  sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
  sudo chown $(id -u):$(id -g) $HOME/.kube/config

安装网络组件

仅在master节点上运行:

curl https://docs.projectcalico.org/v3.20/manifests/calico.yaml -O
kubectl apply -f calico.yaml

加入node节点

继续看上面提到的这张图:

把图中绿色框框的内容复制到其它两台node节点中运行(复制你自己的,这里我就不贴代码了,直接复制粘贴就行)

冷知识:此行代码有24小时的有效期

执行效果:

 回到master节点上运行以下代码:

kubectl get nodes

kubectl get pod -A


controller-manager   Unhealthy   Get "http://127.0.0.1:10252/healthz": dial tcp 127.0.0.1:10252: connect: connection refused
scheduler            Unhealthy   Get "http://127.0.0.1:10251/healthz": dial tcp 127.0.0.1:10251: connect: connection refused 

kubectl get cs

可以看到有一点问题,去改一下端口号即可: 

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

把26行的0改成10252:

 vim kube-scheduler.yaml

 把19行的0改成10251:

再次查看:

kubectl get cs

至此,k8s集群曲速超光速搭建成功

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不会调制解调的猫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值