📣读完这篇文章里你能收获到
- K8S安装全过程
- 博主自己实操笔记带你跳过所有坑
- 感谢点赞+收藏,避免下次找不到~
文章目录
- 一、基本环境配置
- 1. 关闭selinux
- 2. 关闭swap分区或禁用swap文件
- 3. 修改网卡配置
- 4. 关闭防火墙
- 5. 设置机器HostName
- 6. 更新系统时间
- 二、kubectl、kubeadm、kubelet的安装
- 1. 添加Kubernetes的yum源
- 2. 安装kubeadm,kubelet和kubectl
- 三、部署Master节点
- 1. 初始化Master节点
- 2. 安装Calico网络插件
- 3. 安装Flannel
- 4. 设置开机自启动
- 5. 查看节点初始化情况
- 6. 如果出问题则重新初始化
- 四、部署Node节点
- 1. 初始步骤
- 2. 初始化Node节点
- 3. 设置开机自启动
博主环境:Centos7.9,K8S1.8.0
一、基本环境配置
1. 关闭selinux
setenforce 0
2. 关闭swap分区或禁用swap文件
swapoff -a #临时关闭
free #可以通过这个命令查看swap是否关闭了
vi /etc/fstab #永久关闭 注释swap那一行(访问内存分区,k8s无法启动)
3. 修改网卡配置
$ vi /etc/sysctl.conf
net.ipv4.ip_forward = 1
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-ip6tables = 1
$ sysctl -p
4. 关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
5. 设置机器HostName
这里设置为maste,其他节点需要自行定义,如node1,node2…
hostnamectl set-hostname master
6. 更新系统时间
# 同步时间(这一步必须做,否则后面安装flannel可能会有证书错误)
yum install ntpdate -y
ntpdate cn.pool.ntp.org
二、kubectl、kubeadm、kubelet的安装
1. 添加Kubernetes的yum源
- 此处使用alibaba的镜像源
$ vi /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
2. 安装kubeadm,kubelet和kubectl
yum makecache fast
yum install -y kubectl-1.18.0 kubeadm-1.18.0 kubelet-1.18.0 --nogpgcheck
三、部署Master节点
1. 初始化Master节点
# 有注释版本,执行COPY时请复制下面的无注释版,修改IP
kubeadm init \
--apiserver-advertise-address=192.168.8.103 \ # 换成自己master的IP
--image-repository registry.aliyuncs.com/google_containers \
--kubernetes-version v1.18.0 \
--service-cidr=10.1.0.0/16 \
--pod-network-cidr=10.244.0.0/16 # 使用flannel网络必须设置成这个cidrKUB
kubeadm init \
--apiserver-advertise-address=192.168.8.103 \
--image-repository registry.aliyuncs.com/google_containers \
--kubernetes-version v1.18.0 \
--service-cidr=10.1.0.0/16 \
--pod-network-cidr=10.244.0.0/16
# 主节点需执行
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
# 子节点需要加入的
kubeadm join 192.168.8.103:6443 --token hk8486.5em0jt93p7miilrh \
--discovery-token-ca-cert-hash sha256:8b9b83a8e3d8ac2e3e5d88404ab73e94d3ff00c0bc61f3e3af4492d8eb4db482
2. 安装Calico网络插件
kubectl apply -f https://docs.projectcalico.org/v3.10/manifests/calico.yaml
3. 安装Flannel
# 需要等到coredns都Run起来了再安装
# 安装flannel(在master执行)
// 1、在线安装
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
- 如果无法连接,我这里已经下载好了,直接把文件下载,传到系统里面执行即可
- 点击下载 kube-flannel.yml
// 2、离线安装
kubectl apply -f kube-flannel.yml
4. 设置开机自启动
systemctl enable kubelet.service
systemctl start kubelet.service
5. 查看节点初始化情况
[root@master ~]# kubectl get cs
NAME STATUS MESSAGE ERROR
etcd-0 Healthy {"health":"true"}
scheduler Healthy ok
controller-manager Healthy ok
[root@master ~]# kubectl get nodes
NAME STATUS ROLES AGE VERSION
master Ready master 53m v1.18.0
[root@master ~]# kubectl get pods --all-namespaces
NAMESPACE NAME READY STATUS RESTARTS AGE
kube-system calico-kube-controllers-57546b46d6-8jkbc 1/1 Running 0 15m
kube-system calico-node-nztgg 1/1 Running 0 15m
kube-system coredns-7ff77c879f-gq8f7 1/1 Running 0 54m
kube-system coredns-7ff77c879f-msb2g 1/1 Running 0 54m
kube-system etcd-master 1/1 Running 0 54m
kube-system kube-apiserver-master 1/1 Running 0 54m
kube-system kube-controller-manager-master 1/1 Running 0 54m
kube-system kube-proxy-hzthl 1/1 Running 0 54m
kube-system kube-scheduler-master 1/1 Running 0 54m
6. 如果出问题则重新初始化
kubeadm reset
rm -rf $HOME/.kube
四、部署Node节点
1. 初始步骤
- 一、二全部执行一遍
2. 初始化Node节点
# 上面主节点返回的
kubeadm join 192.168.8.103:6443 --token hk8486.5em0jt93p7miilrh \
--discovery-token-ca-cert-hash sha256:8b9b83a8e3d8ac2e3e5d88404ab73e94d3ff00c0bc61f3e3af4492d8eb4db482
3. 设置开机自启动
systemctl enable kubelet.service
systemctl start kubelet.service