一、集群分类
一主多从:一台master 多个多个Node节点
多主多从:多个master多个node节点
二、安装方式
minikube:快速安装搭建单节点k8s工具
kubeadm:快速搭建k8s集群的工具---主要使用的方式
二进制包安装:从官网下载每个组件的二进制包进行安装
三、安装规划
192.168.2.109 k8s-master-109
192.168.2.110 k8s-node-110
192.168.2.111 k8s-node-111
四、环境搭建
docker : 20.10.10
kubeadm: 1.23.1
kubelet: 1.23.1
kubectl: 1.23.1
1、环境初始化【所有节点执行】
(1)hosts文件修改
修改主机hosts文件
vim /etc/hosts
192.168.2.109 k8s-master-109
192.168.2.110 k8s-node-110
192.168.2.111 k8s-node-111
(2)停止firewalld和iptables
systemctl stop firewalld
systemctl disable firewalld
systemctl stop iptables
systemctl disable iptables
(3)禁用selinux
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
(4)配置时间同步
yum install ntpdate -y
echo "* */1 * * * /usr/sbin/ntpdate ntp.aliyun.com" >> /var/spool/cron/root
(5)禁用swap分区
swapoff -a
vim /etc/fstab
(6)修改内核参数
echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
echo "net.bridge.bridge-nf-call-iptables = 1" >> /etc/sysctl.conf
echo "net.bridge.bridge-nf-call-ip6tables = 1" >> /etc/sysctl.conf
sysctl -p
[root@k8s-master-109 ~]
[root@k8s-master-109 ~]
br_netfilter 28672 0
(7)配置ipvs功能
在k8s中有两种代理模型,一种是基于iptables,另外一种是基于ipvs,两者相比较ipvs性能较高
yum install ipset ipvsadm -y
modprobe -- ip_vs
modprobe -- ip_vs_rr
modprobe -- ip_vs_wrr
modprobe -- ip_vs_sh
modprobe -- nf_conntrack_ipv4
modprobe -- nf_conntrack
(8)重启服务器
reboot
2、docker安装【所有节点执行】
在线安装:
yum remove docker docker-common docker-selinux docker-engine
yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum -y install docker-ce
vim /etc/docker/daemon.json
{
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"],
"exec-opts": ["native.cgroupdriver=systemd"],
"log-driver": "json-file",
"log-opts": {
"max-size": "100m"
},
"storage-driver": "overlay2"
}
systemctl daemon-reload
systemctl start docker
systemctl enable docker
3、安装k8s组件【所有节点执行】
[root@k8s-master-109 ~]
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
[root@k8s-master-109 ~]
KUBELET_CGROUP_ARGS="--cgroup-driver=systemd"
KUBE_PROXY_MODE="ipvs"
systemctl enable kubelet
4、下载集群镜像【所有节点执行】
[root@k8s-master-109 ~]
k8s.gcr.io/kube-apiserver:v1.23.1
k8s.gcr.io/kube-controller-manager:v1.23.1
k8s.gcr.io/kube-scheduler:v1.23.1
k8s.gcr.io/kube-proxy:v1.23.1
k8s.gcr.io/pause:3.6
k8s.gcr.io/etcd:3.5.1-0
k8s.gcr.io/coredns/coredns:v1.8.6
[root@k8s-master-109 ~]
docker pull registry.aliyuncs.com/google_containers/kube-apiserver:v1.23.1
docker pull registry.aliyuncs.com/google_containers/kube-controller-manager:v1.23.1
docker pull registry.aliyuncs.com/google_containers/kube-scheduler:v1.23.1
docker pull registry.aliyuncs.com/google_containers/kube-proxy:v1.23.1
docker pull registry.aliyuncs.com/google_containers/pause:3.6
docker pull registry.aliyuncs.com/google_containers/etcd:3.5.1-0
docker pull registry.aliyuncs.com/google_containers/coredns:1.8.6
docker tag registry.aliyuncs.com/google_containers/kube-apiserver:v1.23.1 k8s.gcr.io/kube-apiserver:v1.23.1
docker tag registry.aliyuncs.com/google_containers/kube-controller-manager:v1.23.1 k8s.gcr.io/kube-controller-manager:v1.23.1
docker tag registry.aliyuncs.com/google_containers/kube-scheduler:v1.23.1 k8s.gcr.io/kube-scheduler:v1.23.1
docker tag registry.aliyuncs.com/google_containers/kube-proxy:v1.23.1 k8s.gcr.io/kube-proxy:v1.23.1
docker tag registry.aliyuncs.com/google_containers/pause:3.6 k8s.gcr.io/pause:3.6
docker tag registry.aliyuncs.com/google_containers/etcd:3.5.1-0 k8s.gcr.io/etcd:3.5.1-0
docker tag registry.aliyuncs.com/google_containers/coredns:1.8.6 k8s.gcr.io/coredns/coredns:v1.8.6
docker rmi registry.aliyuncs.com/google_containers/kube-apiserver:v1.23.1
docker rmi registry.aliyuncs.com/google_containers/kube-proxy:v1.23.1
docker rmi registry.aliyuncs.com/google_containers/kube-scheduler:v1.23.1
docker rmi registry.aliyuncs.com/google_containers/kube-controller-manager:v1.23.1
docker rmi registry.aliyuncs.com/google_containers/etcd:3.5.1-0
docker rmi registry.aliyuncs.com/google_containers/coredns:1.8.6
docker rmi registry.aliyuncs.com/google_containers/pause:3.6
5、集群初始化
【master节点执行】
kubeadm init --kubernetes-version=v1.23.1 --pod-network-cidr=172.26.0.0/16 --service-cidr=10.126.0.0/16 --apiserver-advertise-address=192.168.2.109
kubeadm join 192.168.2.109:6443 --token e9cl34.w1nh9tl05pwhh9w3 \
--discovery-token-ca-cert-hash sha256:649b9f114475b252d16c68ff3558f2a12e42080e187c7b072d19aaab0c84b958
[root@k8s-master-109 ~]
[root@k8s-master-109 ~]
[root@k8s-master-109 ~]
【node节点执行】
kubeadm join 192.168.2.109:6443 --token e9cl34.w1nh9tl05pwhh9w3 \
--discovery-token-ca-cert-hash sha256:649b9f114475b252d16c68ff3558f2a12e42080e187c7b072d19aaab0c84b958
6、网络插件安装【master节点安装】
wget --no-check-certificate https://docs.projectcalico.org/manifests/calico.yaml
[root@k8s-master-109 ~]
- name: CALICO_IPV4POOL_CIDR
value: "172.26.0.0/16"
[root@k8s-master-109 ~]
kubectl get pods -n kube-system
kubectl get pod -o wide -nkube-system
kubectl get pods --all-namespaces
7、开启ipvs
[root@k8s-master-109 ~]
[root@k8s-master-109 ~]
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性