当前位置:网站首页>kubeadm创建kubernetes集群
kubeadm创建kubernetes集群
2022-06-28 17:23:00 【傻啦猫@[email protected]】
kubeadm创建集群
我们使用“公有云-青云”提供的服务器作为今天的演示操作。准备三台机器,一个主控节点,两个工作节点。

前提条件
Kubernetes集群的安装需要依赖于容器化的运行环境,所以我们首先要在每一个节点上安装docker。方法参考我之前的文章。
1、基础环境
所有机器执行以下操作。
各个机器设置自己的域名
hostnamectl set-hostname xxxx
禁用SELinux
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
2、安装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
完成了这一步,kubelet 现在每隔几秒就会重启,因为它陷入了一个等待 kubeadm 指令的死循环
3. 使用kubeadm引导集群
下载各个机器需要的镜像
# 编写脚本,指定每个组件需要的版本等内容
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
通过这个步骤可以将创建集群所需的组件下载下来。工作节点只需要下载kube-proxy即可,全部下载也没有关系。
4. 初始化主节点
#所有机器添加master域名映射
echo "172.31.0.2 cluster-endpoint" >> /etc/hosts
这一步的目的是告诉每一个节点我将哪一个节点作为主节点(集群入口)。这里需要修改为自己的ip,我这里使用公有云的内网ip。
#主节点初始化,只在主节点运行此命令
kubeadm init \
--apiserver-advertise-address=172.31.0.2 \
--control-plane-endpoint=cluster-endpoint \
--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
这里其实是定义了我将来在创建service和pod的时候所使用的网络段。需要注意apiserver-advertise-address为自己的主节点ip,并且要保证所有网络范围不重叠。pod-network-cidr如果有修改后面我们还需要修改网络组件的网络范围。
出现以下内容说明集群master节点初始化成功。
Your Kubernetes control-plane has initialized successfully!
To start using your cluster, you need to run the following as a regular user:
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
Alternatively, if you are the root user, you can run:
export KUBECONFIG=/etc/kubernetes/admin.conf
You should now deploy a pod network to the cluster.
Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at:
https://kubernetes.io/docs/concepts/cluster-administration/addons/
You can now join any number of control-plane nodes by copying certificate authorities
and service account keys on each node and then running the following as root:
kubeadm join cluster-endpoint:6443 --token xsmvuy.43k3verg00x4s5gs \
--discovery-token-ca-cert-hash sha256:2d4a06dfe981eb1274831a027690fdfa3a6c89d0968af331d6d26c16f35e7bdb \
--control-plane
Then you can join any number of worker nodes by running the following on each as root:
kubeadm join cluster-endpoint:6443 --token xsmvuy.43k3verg00x4s5gs \
--discovery-token-ca-cert-hash sha256:2d4a06dfe981eb1274831a027690fdfa3a6c89d0968af331d6d26c16f35e7bdb
我们按照提示执行相应的命令即可。
5. 安装网络组件
# 只在主节点运行此命令
curl https://docs.projectcalico.org/manifests/calico.yaml -O
kubectl apply -f calico.yaml
6. 加入worker节点
# 只在工作节点运行此命令
kubeadm join cluster-endpoint:6443 --token xsmvuy.43k3verg00x4s5gs \
--discovery-token-ca-cert-hash sha256:2d4a06dfe981eb1274831a027690fdfa3a6c89d0968af331d6d26c16f35e7bdb
这些内容还是根据提示信息来做。
补充:上面token有效时间为24小时,过期之后使用以下命令在主节点重新生成。
kubeadm token create --print-join-command
高可用部署方式,也是在这一步的时候,使用添加主节点的命令即可.
7. 验证集群
[[email protected] ~]# kubectl get nodes
NAME STATUS ROLES AGE VERSION
k8s-master Ready control-plane,master 89m v1.20.9
k8s-worker1 Ready <none> 68m v1.20.9
k8s-worker2 Ready <none> 68m v1.20.9
[[email protected] ~]#
至此,一个kubernetes集群搭建完毕。
本文由 mdnice 多平台发布
版权声明
本文为[傻啦猫@[email protected]]所创,转载请带上原文链接,感谢
https://blog.csdn.net/weixin_45842494/article/details/125474846
边栏推荐
- Batch modify specified character file name bat script
- Flutter tips: mediaquery and build optimization secrets you don't know
- Google推出Advanced API Security 保护API免受安全威胁
- Redis 原理 - Hash
- rsync 远程同步(日落尤其温柔的人间皆是浪漫)
- jq插件分析啊啊
- Dpdk 20.11 compiling, installing and running program
- Potplayer plays Baidu cloud disk video
- 2022 review questions and answers for safety production management personnel of hazardous chemical production units
- Log management in MySQL log backup and recovery
猜你喜欢

Batch modify specified character file name bat script

Redis持久化(少年一贯快马扬帆,道阻且长不转弯)

win10用cmake3.22与vs2019编译curl库源码并调用

Currency circle earthquake: earned 1million last year and lost 5million this year

2022a special equipment related management (elevator) special operation certificate examination question bank and online simulation examination

Redis principle - hash

Redis6笔记04 主从复制,集群,应用问题,Redis6新功能

NoSQL之Redis配置与优化(你不在南京的日子我替你吹了秦淮河的晚风)

IDC:阿里云获2021中国数据治理平台市场份额第一

Nuc980 heartbeat light
随机推荐
2022a special equipment related management (elevator) special operation certificate examination question bank and online simulation examination
Redis 原理 - Hash
本地部署Confluence遇到的问题:MySQL数据库编码、隔离级别、验证码不显示
6 - Dictionary
你们采集oracle数据,数据延迟大约有多少啊?我这边就维持在3秒了,降不下去了。有没有个业内参考啊
How to open a futures account? Where is it safer to open a futures account?
Tacacs+ server deployment
Fs2k face sketch attribute recognition
数字化转型中,企业设备管理会出现什么问题?JNPF或将是“最优解”
2022危险化学品经营单位主要负责人复训题库及在线模拟考试
Google推出Advanced API Security 保护API免受安全威胁
How to make your WordPress website more secure
[algorithm] I brushed two big factory interview questions and learned array again with tears in my eyes“
A few lines of code can realize complex excel import and export. This tool class is really powerful!
数据源只能连阿里云的云数据库吗?阿里云服务器里装的数据库连不上嘛?
Introduction to PMD source code analyzer
第四个专栏,Kubernetes云原生实战,它来了~
Visubit "ai+3d vision" product series | loading assembly workstation
居家高效远程办公 | 社区征文
rsync 远程同步(日落尤其温柔的人间皆是浪漫)