一.安装准备

所有主机执行!!!

所有主机执行!!!

所有主机执行!!!

1.主机名配置

主节点:

hostnamectl set-hostname k8s-master1

从节点:

hostnamectl set-hostname k8s-node1
hostnamectl set-hostname k8s-node2

2.配置主机名解析

修改配置文件,vim /etc/hosts

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.1.107 k8s-master1
192.168.1.108 k8s-node1
192.168.1.103 k8s-node2

3.关闭防火墙

systemctl disable firewalld
systemctl stop firewalld
firewall-cmd --state

4.SELINUX配置


setenforce 0
sed -i 's/enforcing/disabled/' /etc/selinux/config

5.配置网桥模块

modprobe br_netfilter
 
cat > /etc/sysctl.d/k8s.conf <<EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
EOF

查看是否加载

lsmod | grep br_netfilter

二.docker安装

所有主机执行!!!

所有主机执行!!!

所有主机执行!!!

安装docker,自动安装版本18.09.0,其他版本的docker会和k8s不匹配

dnf install docker

启用docker并设置自启动

systemctl enable docker && systemctl start docker

 查看docker版本

docker --version

三.kubectl安装

k8s的版本为v1.20.2

1. 镜像安装

所有的主机安装依赖跟踪:

dnf install conntrack

k8s master节点安装:

dnf install -y kubernetes-kubeadm kubernetes-kubelet kubernetes-master

k8s node节点安装:

dnf install -y kubernetes-kubeadm kubernetes-kubelet kubernetes-node

所有节点执行:

systemctl enable kubelet

2.主节点初始化

以下均在主节点执行!!

kubeadm init --apiserver-advertise-address=192.168.1.107 --image-repository registry.aliyuncs.com/google_containers --kubernetes-version v1.20.2 --service-cidr=10.1.0.0/16 --pod-network-cidr=10.244.0.0/16

init成功之后执行 

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

安装网络插件:

kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

3.加入从加点

以下均在从节点执行!!

init的日志中会有一行join命令,复制到其他从节点,每个人命令不一样,一定要复制自己电脑上的:

kubeadm join 你的主节点ip:6443 \ 
	--token 8507uc.o0knircuri8etnw2 \
	--discovery-token-ca-cert-hash \
	sha256:acc37967fb5b0acf39d7598f8a439cc7dc88f439a3f4d0c9cae88e7901b9d3f11

主节点查看节点状态:

kubectl get nodes

没有ready不要慌,等几分钟就OK了。

三.常见错误

 1.kubectl命令报错:Unable to connect to the server: dial tcp XXX:16443: connect: no route to host

修改config文件

vim /root/.kube/config

查看文件中的ip是否为自己的ip,不是的话修改为自己的ip

2.[WARNING FileExisting-socat]: socat not found in system path

没有安装socat,安装依赖包即可

yum install socat conntrack-tools

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐