1. 环境准备

1.1 设置主机名

服务器名称服务器IP角色
k8s-masterip1master
k8s-node1ip2node
k8s-node2ip3node

1.2主机名与IP地址解析(所有主机)

vim  /etc/hosts

加入以下内容

ip1 k8s-master
ip2 k8s-node1
ip3 k8s-node2

1.3 关闭防火墙(所有主机)

关闭防火墙firewalld

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

1.4 SELINUX配置(所有主机)

修改SELinux配置需要重启操作系统。

1.5 时间同步配置(所有主机)

ntpdate time1.aliyun.com
crontab -e

输入

0 */1 * * * /usr/sbin/ntpdate time1.aliyun.com >> /dev/null 2>&1 &

1.6 关闭SWAP分区(所有主机)

修改完成后需要重启操作系统,如不重启,可临时关闭,命令为swapoff -a

永远关闭swap分区,需要重启操作系统

vim /etc/fstab
注释
#/dev/mapper/centos-swap swap                    swap    defaults        0 0

1.7升级操作系统内核

  1. 导入elrepo gpg key
 rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
  1. 安装elrepo YUM源仓库
yum -y install https://www.elrepo.org/elrepo-release-7.0-4.el7.elrepo.noarch.rpm
  1. 安装kernel-ml版本,ml为长期稳定版本,lt为长期维护版本
yum --enablerepo="elrepo-kernel" -y install kernel-ml.x86_64
  1. 设置grub2默认引导为0
grub2-set-default 0
  1. 重新生成grub2引导文件
grub2-mkconfig -o /boot/grub2/grub.cfg
  1. 更新后,需要重启,使用升级的内核生效。
reboot
  1. 重启后,需要验证内核是否为更新对应的版本
uname -r

1.8内核配置

  1. 添加网桥过滤及内核转发配置文件
vim /etc/sysctl.d/k8s.conf

添加

net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
vm.swappiness = 0

加载网桥过滤及内核转发配置文件

sysctl -p /etc/sysctl.d/k8s.conf
  1. 加载br_netfilter模块
##加载br_netfilter模块
modprobe br_netfilter
##查看是否加载
lsmod | grep br_netfilter

2.安装docker

–自行安装
本次安装版本:Docker version 1.13.1

3.安装kubeadm,kubelet和kubectl

3.1添加k8s阿里云YUM软件源(所有主机)

cat > /etc/yum.repos.d/kubernetes.repo << EOF
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF

3.2 安装kubeadm,kubelet和kubectl

yum install -y kubelet-1.23.6-0 kubeadm-1.23.6-0 kubectl-1.23.6-0
systemctl start kubelet
systemctl enable kubelet

3.3 部署k8s的master和node节点

  1. 主节点
sudo kubeadm init --apiserver-advertise-address=主机ip --image-repository registry.aliyuncs.com/google_containers
--service-cidr=10.96.0.0/16 --pod-network-cidr=192.168.0.0/16 --kubernetes-version=v1.23.6

执行完命令后,会生成【 kubeadm join …】命令用于node节点的加入,记录下来,用于根节点加入主节点

  1. 根节点
    执行 kubeadm join …

  2. 主节点执行以下命令

mkdir -p $HOME/.kube
cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
chown $(id -u):$(id -g) $HOME/.kube/config
  1. 主节点执行 kubectl get nodes,可查看所有节点

4.部署calico网络组件(主节点)

安装参考网址:

https://projectcalico.docs.tigera.io/about/about-calico

  1. 获取calico.yaml
wget https://docs.projectcalico.org/manifests/calico.yaml
  1. 修改calico.yml,修改命名空间(可选)
(1) ###文件最上面添加
---
apiVersion: v1
kind: Namespace
metadata:
   name: calico-system
   labels:
     name: calico-system
     
(2) 修改所有kube-system为 calico-system
  1. 创建calico
kubectl create -f calico.yaml
  1. 监视calico-sysem命名空间中pod运行情况
watch kubectl get pods -n calico-system #watch kubectl get pods -n kube-system

等待直到每个pod状态都为Running.

5.安装可视化管理工具kubord

sudo docker run -d --restart=unless-stopped --name=kuboard -p 8888:80/tcp -p 10081:10081/tcp KUBOARD_ENDPOINT="http://yourip:8888" -e KUBOARD_AGENT_SERVER_TCP_PORT="10081"   -v /root/kuboard-data:/data

eipwork/kuboard:v3 在浏览器输入 http://your-host-ip:8888 即可访问 Kuboard v3.x 的界面,
登录方式:
用户名: admin 密 码: Kuboard123

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐