IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> k8s自动化集群部署-kubeadm方式 -> 正文阅读

[系统运维]k8s自动化集群部署-kubeadm方式

k8s自动化集群部署

Linux环境配置:

快速部署k8s集群

  • centos7-1 master
  • centos7-2 node1
  • centos7-3 node2

k8s中Linux必须关闭以下设置:

# 关闭防火墙
systemctl stop firewalld
systemctl disable firewalld

# 关闭selinux
	# 永久关闭
sed -i 's/enforcing/disabled/' /etc/selinux/config  
	# 临时关闭
setenforce 0

# 关闭swap
	# 临时
swapoff -a 
	# 永久关闭
sed -ri 's/.*swap.*/#&/' /etc/fstab

# 设置虚拟机ip地址不发生改变
 vim /etc/sysconfig/network-scripts/ifcfg-ens33
   	# 修改如下配置
BOOTPROTO=dhcp 			#修改为BOOTPROTO=static
 	# 然后添加如下设置:
IPADDR=master主机ip地址
NETMASK=255.255.255.0
GATEWAY=192.168.10.1 	#在虚拟机-编辑-虚拟网络编辑器查看,或者ifconfig查看
DNS1=192.168.10.1  		#与GATEWAY一致
	# 然后关机,打开虚拟机-编辑-虚拟网络编辑器-NAT设置-点击确定-重启虚拟机即可

# 根据规划设置主机名:
	# master节点
hostnamectl set-hostname k8smaster
	# node1节点
hostnamectl set-hostname k8snode1
	# node2节点
hostnamectl set-hostname k8snode2
# 在master添加hosts:
cat >> /etc/hosts << EOF
master主机ip k8smaster
node1节点ip k8snode1
node2节点ip k8snode2
EOF		
		
# 将桥接的IPv4流量传递到iptables的链
	?为什么这样设置
		同一节点的不同pod是利用linux bridge在网络上进行通讯
		如果不进行设置的话,podA请求services通过iptables发送,services中的podB返回数据时发现podA与podB在同一节点会走网路的第二层进行返回。
cat > /etc/sysctl.d/k8s.conf << EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
	
# 生效
sysctl --system  
		
# 设置Linux时间与windows同步
yum install ntpdate -y
ntpdate time.windows.com	

安装Docker(19.03.13)

# 配置docker的阿里yum源
cat >/etc/yum.repos.d/docker.repo<<EOF
[docker-ce-edge]
name=Docker CE Edge - \$basearch
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/7/\$basearch/edge
enabled=1
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg
EOF

# yum方式下载docker
	# yum安装
yum -y install docker-ce
	# 查看docker版本
docker --version  
	# 启动docker
systemctl start docker
	#开机启动docker
systemctl enable docker 

# 配置docker镜像源
cat >> /etc/docker/daemon.json << EOF
{
	"registry-mirrors": ["https://b9pmyelo.mirror.aliyuncs.com"]
}
EOF

安装kubernetes

# 添加kubernetes软件源
cat > /etc/yum.repos.d/kubernetes.repo << EOF
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF

# 安装kubeadm,kubelet和kubectl(指定版本1.20.11)
	# 安装kubelet、kubeadm、kubectl,同时指定版本
yum install -y kubelet-1.20.11 kubeadm-1.20.11 kubectl-1.20.11
	# 设置开机启动
systemctl enable kubelet

kubeadm方式搭建集群

# 部署Kubernetes Master【master节点】
kubeadm init --apiserver-advertise-address=master主机ip --image-repository registry.aliyuncs.com/google_containers --kubernetes-version v1.20.11 --service-cidr=10.96.0.0/12  --pod-network-cidr=10.244.0.0/16

使用kubectl工具 【master节点操作】–一个一个执行

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

# 查看当前节点
	kubectl get nodes
	
# 查看状态
	kubectl get pods -n kube-system
	
# 将其他node节点加入master操作(在node1和node2执行下面语句)
kubeadm join master主机ip:6443 --token n4tuyk.pjlc88k3e7f12fea \
    --discovery-token-ca-cert-hash sha256:60d17b6b8749b55d5c5074047ddf2219f2033ec568b1d299d16463a048c89da2 
    
# 默认token有效期为24小时,当过期之后,该token就不可用了。需创建新的token
kubeadm token create --print-join-command

部署CNI网络插件(以下语句报错,是由于域名解析不了,无法访问)

kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

# 解决:
	1.通过http://ip.tool.chinaz.com/raw.githubusercontent.com查找raw.githubusercontent.com对应的ip地址
	2.在linux中执行语句
vim /etc/hosts 
	# 添加如下内容:
185.199.109.133  raw.githubusercontent.com
	3.重新执行语句
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

解决某节点还处于NotRead状态,在master机器上将该节点删除

# master节点将该节点删除
kubectl delete node k8snode1
# 然后到k8snode1节点进行重置
 kubeadm reset
# 重置完后在加入
kubeadm join master主机ip:6443 --token n4tuyk.pjlc88k3e7f12fea \
	--discovery-token-ca-cert-hash sha256:60d17b6b8749b55d5c5074047ddf2219f2033ec568b1d299d16463a048c89da2 

测试kubernetes集群–以Nginx服务为例

# 下载nginx镜像,以容器方式启动
kubectl create deployment nginx --image=nginx

# 查看状态
kubectl get pod

# 对外暴露端口
kubectl expose deployment nginx --port=80 --type=NodePort

# 查看一下对外的端口
kubectl get pod,svc

# 测试访问
master主机:30559

在这里插入图片描述

k8s可视化工具:

免费版:Dashboard
企业版:kubesphere
  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-08-06 11:16:52  更:2022-08-06 11:20:11 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/18 21:39:06-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码