搭建kubernetes集群
2024-10-01 04:01:28
什么是Kubernetes?
Kubernetes(k8s)是自动化容器操作的开源平台,这些操作包括部署,调度和节点集群间扩展。如果你曾经用过Docker容器技术部署容器,那么可以将Docker看成Kubernetes内部使用的低级别组件。Kubernetes不仅仅支持Docker,还支持Rocket,这是另一种容器技术。使用Kubernetes可以:
- 自动化容器的部署和复制
- 随时扩展或收缩容器规模
- 将容器组织成组,并且提供容器间的负载均衡
- 很容易地升级应用程序容器的新版本
- 提供容器弹性
部署
第一步:环境说明
192.168.1.13 master
192.168.1.14 node-01
192.168.1.15 node-02
第二步:关闭防火墙等(all)
# 1.关闭防火墙
systemctl stop firewalld && systemctl disable firewalld # 2.关闭selinux
setenforce 0
vim /etc/selinux/config
SELINUX=enforcing改为SELINUX=disabled,保存后退出 # 3.关闭交换分区
swapoff -a
sed -i 's/.*swap.*/#&/' /etc/fstab # 4.iptables设置
iptables -P FORWARD ACCEPT
第三步:安装docker(all)
# 1.安装
yum install docker -y # 2.启动和默认启动
systemctl start docker && systemctl enable docker # 3.配置
cat > /etc/docker/daemon.json << EOF
{
"registry-mirrors": ["https://阿里个人加速网址.mirror.aliyuncs.com"],
"exec-opts":["native.cgroupdriver=systemd"],
"graph": "/new-path/docker" # 该路径必须存在
}
EOF
第四步:启动docker时配置iptables(all)
vim /etc/systemd/system/docker.service
[Service]下面添加
ExecStartPost=/sbin/iptables -I FORWARD -s 0.0.0.0/0 -j ACCEPT
第五步:设置host(all)
# 在不同的服务器上运行
hostnamectl set-hostname master
hostnamectl set-hostname node-01
hostnamectl set-hostname node-02 # 所有的服务器都运行
cat >> /etc/hosts << EOF
192.168.1.13 master
192.168.1.14 node-01
192.168.1.15 node-02
EOF
第六步:设置yum源(all)
cat > /etc/yum.repos.d/docker.repo <<EOF
[docker-repo]
name=Docker Repository
baseurl=http://mirrors.aliyun.com/docker-engine/yum/repo/main/centos/7
enabled=1
gpgcheck=0
EOF cat > /etc/sysctl.d/k8s.conf << EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
EOF cat > /etc/yum.repos.d/kubernetes.repo << EOF
[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
第七步:安装kubelet kubeadm kubectl(all)
# 1.安装
yum install -y kubelet kubeadm kubectl docker # 2.启动
systemctl enable kubelet && systemctl start kubelet
第八步:初始化master节点(master)
kubeadm init --image-repository=registry.aliyuncs.com/google_containers --apiserver-advertise-address 192.168.1.13 --pod-network-cidr=10.244.0.0/16 --kubernetes-version=v1.18.0 #--image-repository:下载镜像的地址
#--apiserver-advertise-address:apiserver的地址,一般是本机IP
#--pod-network-cidr:容器间通信的虚拟IP网段
#--kubernetes-version:kubernetes版本
第九步:安装flannel网络(all)
# 1.添加IP和hostname的对应关系
cat >> /etc/hosts << EOF
151.101.76.133 raw.githubusercontent.com
EOF # 2.下载并启动flannel
kubectl create -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
第十步:添加node节点
# 1.查看jion命令
kubeadm token create --print-join-command # 2.将查询的jion命令直接在node节点运行即可
第十一步:检查集群是否安装成功
# 使用nginx进行测试
[root@master-01 nginx]# cat nginx.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
labels:
app: nginx
spec:
replicas: 2
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:latest
ports:
- containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
name: nginx-service
labels:
app: nginx
spec:
ports:
- port: 88
targetPort: 80
selector:
app: nginx
type: NodePort
查看Pod和Service是否成功运行:
在浏览器中访问192.168.1.13:32325,看见如下界面,表示集群搭建成功:
最新文章
- MySQL 正则表达式
- saltstack(master迁移)
- 在 Apache Ant中设置Proxy服务器
- flddler使用方法
- ABAP 内表的行列转换-NEW
- Android 开源项目维护者宣布退出
- 五、Request
- Hbuild - 使用海马玩模拟器调试
- 关于JDK中的集合总结(一)
- windows平台下载android源代码
- Nginx编译参数
- freemarker报错之十
- 通过supper()有参构造器,完成子类对象调用父类属性的方法,并完成赋值
- 【ARC101F】Robots and Exits 树状数组
- 对抗生成网络-图像卷积-mnist数据生成(代码) 1.tf.layers.conv2d(卷积操作) 2.tf.layers.conv2d_transpose(反卷积操作) 3.tf.layers.batch_normalize(归一化操作) 4.tf.maximum(用于lrelu) 5.tf.train_variable(训练中所有参数) 6.np.random.uniform(生成正态数据
- java(二)Web部分
- mysql字符集问题,及排序规则
- mac快捷键留存查看
- php new stdClass array 实例代码
- C语言专题-基本数据类和占位符
热门文章
- WeChair项目Beta冲刺(8/10)
- Beta阶段代码与规范
- 状压DP 从TSP问题开始入门哦
- 《Elasticsearch 权威指南》阅读笔记
- Docker(三)Docker常用命令
- MySQL 合并查询,以map或对象的形式返回
- C# 9.0 终于来了, Top-level programs 和 Partial Methods 两大新特性探究
- i++ &; ++i不看字节码是真的难懂
- HBase2.0 meta信息丢失的修复方法
- 蜂鸟E203系列——Linux开发工具