kubernetes安装

203 阅读1分钟

前提:

  • kubernetes的client和server最好同一版本。
  • kubernetes在1.24版本以上不再默认支持docker,默认的容器是containerd
  • 安装完集群后需要安装网络插件,我这装的cni,三方插件列表可以从这里找。kubernetes.io/docs/concep…
  • 本文安装的版本是1.23.15。dashboard版本是2.5.1

安装步骤:

  1. (虚拟机)配置静态IP

vim /etc/sysconfig/network-scripts/ifcfg-enp0s3

IPADDR="192.168.0.123"
NETMASK="255.255.255.0"
GATEWAY="192.168.0.1"
DNS1="114.114.114.114"

systemctl restart network

  1. 配置hostname
hostnamectl set-hostname k8s-1
hostnamectl set-hostname k8s-2
hostnamectl set-hostname k8s-3
  1. 配置master的host列表
cat >> /etc/hosts << EOF
192.168.0.123 k8s-1
192.168.0.124 k8s-2
192.168.0.125 k8s-3
EOF
  1. 关闭防火墙:
systemctl stop firewalld
systemctl disable firewalld
  1. 禁用selinux:
sed -i 's/enforcing/disabled/' /etc/selinux/config
  1. 禁用swap分区:
swapoff -a
vim /etc/fstab--->注释#/dev/mapper/centos-swap swap swap defaults 0 0
free -m
vim /etc/sysctl.conf--->添加vm.swappiness=0
sysctl -p
free -m检查swap是否为0
  1. 允许 iptables 检查桥接流量、加载br_netfilter模块:
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

  1. IPv4配置

sysctl -w net.ipv4.ip_forward=1

  1. docker安装

developer.aliyun.com/mirror/dock…

配置开机自启:systemctl enable docker.service

配置国内镜像加速器:cr.console.aliyun.com/cn-hangzhou…

把docker的cgroup改成systemd:

vim /etc/docker/daemon.json

"exec-opts": ["native.cgroupdriver=systemd"]

systemctl restart docker

  1. kubernetes国内镜像

developer.aliyun.com/mirror/kube…

具体要安装的版本直接去官网找:kubernetes.io/releases/ 13. 安装 kubeadm、kubelet 和 kubectl

yum install -y --nogpgcheck kubelet-1.23.15 kubeadm-1.23.15 kubectl-1.23.15

  1. 所有节点都启动kubelet:
systemctl enable kubelet && systemctl start kubelet
  1. 初始化master节点

注意下面的kubernetes-version要和上面安装的版本一致,避免一些奇奇怪怪的问题。

kubeadm init \
   --control-plane-endpoint="192.168.0.123:6443" \
   --apiserver-advertise-address=192.168.0.123 \
   --image-repository registry.aliyuncs.com/google_containers \
   --kubernetes-version v1.23.15 \
   --service-cidr=10.96.0.0/12 \
   --pod-network-cidr=10.244.0.0/16

如果后期重启机器,遇到kubectl如下报错,不能使用的话。

[root@k8s-1 ~]# kubectl get svc
The connection to the server localhost:8080 was refused - did you specify the right host or port?

参考:blog.csdn.net/CEVERY/arti…

  1. 安装cni插件

segmentfault.com/a/119000004…

  1. 安装DashBoard

github.com/kubernetes/…

要把dashboard的type从ClusterIP修改为NodePort

kubectl -n kubernetes-dashboard edit svc kubernetes-dashboard