Centos7安装k8s集群
2022-01-08 09:15:09 TwelveT 371
前置安装准备(注意这里只是描述,下面会详细讲解操作)●一台兼容的Linux主机。Kubernetes项目为基于Debian和RedHat的Linux发行版以及一些不提供包管理器的发行版提供通用的指令●每台机器2GB或更多的RAM(如果少于这个数字将会影响你应用的运行内存)●2CPU核或更多●集群中的所有机器的网络彼此均...
前置安装准备(注意这里只是描述,下面会详细讲解操作)
● 一台兼容的 Linux 主机。Kubernetes 项目为基于 Debian 和 Red Hat 的 Linux 发行版以及一些不提供包管理器的发行版提供通用的指令● 每台机器 2 GB 或更多的 RAM (如果少于这个数字将会影响你应用的运行内存)
● 2 CPU 核或更多
● 集群中的所有机器的网络彼此均能相互连接(公网和内网都可以)
○ 设置防火墙放行规则(云服务请按照各个不同厂家进行开发防火墙)
● 节点之中不可以有重复的主机名、MAC 地址或 product_uuid。请参见这里了解更多详细信息。
○ 设置不同hostname
● 开启机器上的某些端口。请参见这里 了解更多详细信息。
○ 内网互信
● 禁用交换分区。为了保证 kubelet 正常工作,你 必须 禁用交换分区。
○ 永久关闭
基础环境,所有机器都必须执行
#各个机器设置自己的域名(示范这里就两台机器,起名就master,slave)
hostnamectl set-hostname xxxx
# 将 SELinux 设置为 permissive 模式(相当于将其禁用)
sudo setenforce 0
sudo sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config
#关闭swap
swapoff -a
sed -ri 's/.*swap.*/#&/' /etc/fstab
#允许 iptables 检查桥接流量
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
安装kubelet、kubeadm、kubectl
cat <<EOF | sudo tee /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
exclude=kubelet kubeadm kubectl
EOF
sudo yum install -y kubelet-1.20.9 kubeadm-1.20.9 kubectl-1.20.9 --disableexcludes=kubernetes
sudo systemctl enable --now kubelet
使用kubeadm引导集群
下载各个机器需要的docker镜像
自行安装docker并启动,这里不多介绍这个:https://www.twelvet.cn/news/22.html
sudo tee ./images.sh <<-'EOF'
#!/bin/bash
images=(
kube-apiserver:v1.20.9
kube-proxy:v1.20.9
kube-controller-manager:v1.20.9
kube-scheduler:v1.20.9
coredns:1.7.0
etcd:3.4.13-0
pause:3.2
)
for imageName in ${images[@]} ; do
docker pull registry.cn-hangzhou.aliyuncs.com/lfy_k8s_images/$imageName
done
EOF
chmod +x ./images.sh && ./images.sh
初始化主节点
#所有机器添加master域名映射,以下需要修改为自己的
echo "172.31.0.4 master" >> /etc/hosts
#主节点初始化
kubeadm init \
--apiserver-advertise-address=172.31.0.4 \
--control-plane-endpoint=master \
--image-repository registry.cn-hangzhou.aliyuncs.com/lfy_k8s_images \
--kubernetes-version v1.20.9 \
--service-cidr=10.96.0.0/16 \
--pod-network-cidr=192.168.0.0/16
#所有网络范围不重叠

安装完成后请按照提示操作,并且记住加入集群的token,这里就以root用户为主,直接运行下面指令
设置.kube/config
export KUBECONFIG=/etc/kubernetes/admin.conf
#查看集群所有节点
kubectl get nodes
#根据配置文件,给集群创建资源
kubectl apply -f xxxx.yaml
#查看集群部署了哪些应用?
docker ps === kubectl get pods -A
# 运行中的应用在docker里面叫容器,在k8s里面叫Pod
kubectl get pods -A
安装网络组件
组件官网:https://docs.projectcalico.org/getting-started/kubernetes/self-managed-onprem/onpremises#install-calico-with-kubernetes-api-datastore-more-than-50-nodes
组件官网:https://docs.projectcalico.org/getting-started/kubernetes/self-managed-onprem/onpremises#install-calico-with-kubernetes-api-datastore-more-than-50-nodes
curl https://docs.projectcalico.org/manifests/calico.yaml -O
kubectl apply -f calico.yaml
加入node节点
kubeadm join cluster-endpoint:6443 --token x5g4uy.wpjjdbgra92s25pp \
--discovery-token-ca-cert-hash sha256:6255797916eaee52bf9dda9429db616fcd828436708345a308f4b917d3457a22
新令牌
kubeadm token create --print-join-command
至此完成搭建集群,后续需要加入更多的机器直接join即可免责声明
本站提供的一切软件、教程和内容信息仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络收集整理,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。如果您喜欢该程序和内容,请支持正版,购买注册,得到更好的正版服务。我们非常重视版权问题,如有侵权请邮件与我们联系处理。敬请谅解!
![]() |
相关文章
-
11-22centos7设置静态IP,以及解决无法上网,亲测!!!
-
11-09elasticsearch实现pinyin + 中文搜索,模糊like搜索
-
11-09最新版elasticsearch实现mysql中的模糊搜索like,金字塔切割法ngram
-
10-30docker启动elasticsearch + kibana + ik分词器 + pinyin分词器
-
10-29elasticsearch 基础 语法总结
-
10-04docker启动容器时挂载777最高权限文件夹依旧没有权限问题
-
09-20SpringBean默认是单例的,高并发情况下,如何保证并发安全
-
09-20MySQL ibdata1文件迁移,当Mysql无法正常启动时这会是一个重装的好办法
-
09-06docker配置mysql主从复制8.0
-
08-23Spring Boot实时获取Nacos配置的更新