Kubernetes安装部署

Kubernetes安装部署

准备三台虚拟机 master node1 node2

系统CentOS7.9 内存4G 处理器2 硬盘50G

配置hosts解析

192.168.163.150 master
192.168.163.152 node1
192.168.163.153 node2

配置时间同步
Kubernetes安装部署_第1张图片

禁用swap分区

vim /etc/fstab 注释掉swap一行

Kubernetes安装部署_第2张图片

升级操作系统内核

[root@master ~]# rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
[root@master ~]# yum -y install https://www.elrepo.org/elrepo-release-7.0- 4.el7.elrepo.noarch.rpm
[root@master ~]# yum --enablerepo="elrepo-kernel" -y install kernel-ml.x86_64
[root@master ~]# grub2-set-default 0
[root@master ~]# grub2-mkconfig -o /boot/grub2/grub.cfg
[root@master ~]# reboot
# 重启后,需要验证内核是否为更新对应的版本
[root@master ~]# uname -r
5.18.10-1.el7.elrepo.x86_64
# 修改linux的内核参数,添加网桥过滤和地址转发功能
# 编辑/etc/sysctl.d/kubernetes.conf文件,添加如下配置:
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
vm.swappiness=0
# 重新加载配置
[root@master ~]# sysctl -p /etc/sysctl.d/kubernetes.conf
# 加载网桥过滤模块
[root@master ~]# modprobe br_netfilter
# 查看网桥过滤模块是否加载成功
[root@master ~]# lsmod | grep br_netfilter

配置ipvs功能

# 1 安装ipset和ipvsadm
[root@master ~]# yum install ipset ipvsadm -y

# 2 添加需要加载的模块写入脚本文件
[root@master ~]# cat <  /etc/sysconfig/modules/ipvs.modules
#!/bin/bash
modprobe -- ip_vs
modprobe -- ip_vs_rr
modprobe -- ip_vs_wrr
modprobe -- ip_vs_sh
modprobe -- nf_conntrack
EOF

# 3 为脚本文件添加执行权限
[root@master ~]# chmod +x /etc/sysconfig/modules/ipvs.modules

# 4 执行脚本文件
[root@master ~]# /bin/bash /etc/sysconfig/modules/ipvs.modules

# 5 查看对应的模块是否加载成功
[root@master ~]# lsmod | grep -e ip_vs -e nf_conntrack_ipv4

k8s基本环境准备

$ cat < /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
EOF

$ yum clean all && yum makecache

安装最新版本

[root@master sysctl.d]# yum install kubelet-1.24.2 kubeadm-1.24.2 kubectl-1.24.2
[root@master sysctl.d]# kubeadm version //验证
kubeadm version: &version.Info{Major:"1", Minor:"24", GitVersion:"v1.24.2", GitCommit:"f66044f4361b9f1f96f0053dd46cb7dce5e990a8", GitTreeState:"clean", BuildDate:"2022-06-15T14:20:54Z", GoVersion:"go1.18.3", Compiler:"gc", Platform:"linux/amd64"}

# 配置kubelet的cgroup
# 为了实现docker使用的cgroupdriver与kubelet使用的cgroup的一致性,建议修改如下文件内容。

$ cat < /etc/sysconfig/kubelet
KUBELET_EXTRA_ARGS="--cgroup-driver=systemd"
KUBE_PROXY_MODE="ipvs"
EOF

# 设置kubelet开机自启
# systemctl enable kubelet
直接安装docker-ce源
# step 1: 安装必要的一些系统工具
yum install -y yum-utils device-mapper-persistent-data lvm2
# Step 2: 添加软件源信息
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# Step 3
sed -i 's+download.docker.com+mirrors.aliyun.com/docker-ce+' /etc/yum.repos.d/docker-ce.repo
# Step 4:查询软件包
yum list | grep containerd
containerd.io.x86_64                      1.6.6-3.1.el7                docker-ce-stable
# Step 5:安装软件包
[root@node1 ~]# yum install containerd -y

# Step 6:初始化默认配置
containerd config default | tee /etc/containerd/config.toml

# Step 7:修改containerd配置更改cgroup
sed -i "s#SystemdCgroup\ \=\ false#SystemdCgroup\ \=\ true#g" /etc/containerd/config.toml

# Step 8:修改镜像源
sed -i "s#k8s.gcr.io#registry.aliyuncs.com/google_containers#g"  /etc/containerd/config.toml

# Step 9:配置crictl
cat <

以下操作只在master上进行

初始化 Master 节点

生成配置文件

# 生成配置文件
$ kubeadm config print init-defaults > kubeadm.yml

Kubernetes安装部署_第3张图片

初始化 K8S 集群

# 查看所需镜像列表
$ kubeadm config images list --config kubeadm.yml
# 拉取镜像
$ kubeadm config images pull --config kubeadm.yml
# 根据配置文件启动 kubeadm 初始化 k8s
$ kubeadm init --config=kubeadm.yml --upload-certs --v=6

Kubernetes安装部署_第4张图片

运行集群

Kubernetes安装部署_第5张图片

在master上运行:

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

在其他两台上运行:

[root@node1 sysctl.d]# kubeadm join 192.168.163.150:6443 --token abcdef.0123456789abcdef --discovery-token-ca-cert-hash sha256:1672af57b0d393bff7593c743506179532b77ea712542c09644b93fa12c5f948

查看

[root@master ~]# kubectl get nodes
NAME     STATUS     ROLES           AGE     VERSION
master   NotReady   control-plane   7m42s   v1.24.2
node1    Ready                3m34s   v1.24.2
node2    Ready                3m22s   v1.24.2

安装配置网络插件

wget http://down.i4t.com/k8s1.24/kube-flannel.yml

[root@master ~]# kubectl apply -f kube-flannel.yml

Kubernetes安装部署_第6张图片

都ready后成功

你可能感兴趣的:(kubernetes,linux,运维)