×

【K8S学习】kubernetes基础学习第二天
  

技服74623 713

{{ttag.title}}
K8S集群搭建
1.环境准备和初始化
1.1 准备环境
服务器要求:
•     建议最小硬件配置:2核CPU、2G内存、20G硬盘
•     服务器最好可以访问外网,会有从网上拉取镜像需求,如果服务器不能上网,需要提前下载对应镜像并导入节点
软件环境:Docker   20-ce ; Kubernetes    1.23;
主机规划

主机名 IP地址 操作系统 配置
k8s-master 10.10.200.61 CentOS7.6 2CPU 4G内存 50G硬盘
k8s-node1 10.10.200.62 CentOS7.6 2CPU 4G内存 50G硬盘
k8s-node2 10.10.200.63 CentOS7.6 2CPU 4G内存 50G硬盘


架构图:

                              
1.2 操作系统初始化配置【所有节点】
  1. # 关闭防火墙# 关闭防火墙并设置防火墙随机不自启(kubernetes和docker在运行中会产生大量防火墙规则)systemctl stop firewalld
  2. systemctl disable firewalld

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

  6. # 关闭swap,(kubernetes强制要求禁用)
  7. swapoff -a  # 临时
  8. sed -ri 's/.*swap.*/#&/' /etc/fstab    # 永久

  9. # 根据规划设置主机名
  10. hostnamectl set-hostname <hostname>

  11. # 在master添加hosts
  12. cat >> /etc/hosts << EOF
  13. 10.10.200.61 k8s-master
  14. 10.10.200.62 k8s-node1
  15. 10.10.200.63 k8s-node2
  16. EOF

  17. # 将桥接的IPv4流量传递到iptables的链
  18. cat > /etc/sysctl.d/k8s.conf << EOF
  19. net.bridge.bridge-nf-call-ip6tables = 1
  20. net.bridge.bridge-nf-call-iptables = 1
  21. EOF
  22. sysctl --system  # 生效

  23. # 时间同步  【集群时间差距大导致集群异常】
  24. yum install ntpdate -y
  25. ntpdate time.windows.com
复制代码



2. 安装Docker/kubeadm/kubelet【所有节点】

2.1 安装Docker
  1. wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo
  2. yum -y install docker-ce
  3. systemctl enable docker && systemctl start docker
复制代码


配置镜像下载加速器:
  1. cat > /etc/docker/daemon.json << EOF{  "registry-mirrors": ["https://b9pmyelo.mirror.aliyuncs.com"],  "exec-opts": ["native.cgroupdriver=systemd"]}
  2. EOF
  3. systemctl restart docker
  4. docker info
复制代码


2.2 添加阿里云YUM软件源
  1. cat > /etc/yum.repos.d/kubernetes.repo << EOF
  2. [kubernetes]
  3. name=Kubernetes
  4. baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
  5. enabled=1
  6. gpgcheck=0
  7. repo_gpgcheck=0
  8. gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
  9. EOF
复制代码


2.3 安装kubeadm,kubelet和kubectl
由于版本更新频繁,这里指定版本号部署:
yum install -y kubelet-1.23.0 kubeadm-1.23.0 kubectl-1.23.0
systemctl enable kubelet

3. 部署Kubernetes Master
在10.10.200.61(Master)执行。
  1. kubeadm init \
  2.   --apiserver-advertise-address=10.10.200.61 \
  3.   --image-repository registry.aliyuncs.com/google_containers \
  4.   --kubernetes-version v1.23.0 \
  5.   --service-cidr=10.96.0.0/12 \
  6.   --pod-network-cidr=10.244.0.0/16 \
  7.   --ignore-preflight-errors=all
复制代码

•     --apiserver-advertise-address集群通告地址
•     --image-repository由于默认拉取镜像地址k8s.gcr.io国内无法访问,这里指定阿里云镜像仓库地址
•     --kubernetes-versionK8s版本,与上面安装的一致
•     --service-cidr集群内部虚拟网络,Pod统一访问入口
•     --pod-network-cidrPod网络,与下面部署的CNI网络组件yaml中保持一致
初始化完成后,最后会输出一个join命令,先记住,下面用。

拷贝kubectl使用的连接k8s认证文件到默认路径:
  1. mkdir -p $HOME/.kube
  2. sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
  3. sudo chown $(id -u):$(id -g) $HOME/.kube/config
复制代码


查看工作节点:
kubectl get nodes
NAME               STATUS     ROLES            AGE   VERSION
localhost.localdomain   NotReady   control-plane,master   20s   v1.23.0
注:由于网络插件还没有部署,还没有准备就绪 NotReady,先继续
参考资料:
4. 加入Kubernetes Node
在192.168.31.72/73(Node)执行。
向集群添加新节点,执行在kubeadm init输出的kubeadm join命令:
  1. <blockquote>kubeadm join 10.10.200.61:6443 --token t7yus6.s965of3y7330upgx --discovery-token-ca-cert-hash sha256:6c6d677080a244ba851e9450829694ab0940ca1fed7c1517edb26d7b4817d666
复制代码

默认token有效期为24小时,当过期之后,该token就不可用了。这时就需要重新创建token,可以直接使用命令快捷生成:
kubeadm token create --print-join-command

5. 部署容器网络(CNI)
Calico是一个纯三层的数据中心网络方案,是目前Kubernetes主流的网络方案。
下载YAML:
下载完后还需要修改里面定义Pod网络(搜索关键字 CALICO_IPV4POOL_CIDR),与前面kubeadm init的--pod-network-cidr指定的一样地址【在calico.yaml的3580行】。
修改完后文件后,部署:
kubectl apply -f calico.yaml
kubectl get pods -n kube-system
等Calico Pod都Running,节点也会准备就绪
注:以后所有yaml文件都只在Master节点执行。
安装目录:/etc/kubernetes/
组件配置文件目录:/etc/kubernetes/manifests/

打赏鼓励作者,期待更多好文!

打赏
1人已打赏

新手253765 发表于 2023-11-7 10:34
  
感谢分享,有助于工作和学习
新手698409 发表于 2023-11-7 11:35
  
感谢分享
哇哈哈哈哈哈 发表于 2023-11-7 14:23
  

感谢分享,有助于工作和学习
冯宏斌 发表于 2023-11-7 17:17
  
感谢分享,有助于工作和学习
冯宏斌 发表于 2023-11-8 09:01
  
关注订阅华北区板块,获取更多学习干货!
冯宏斌 发表于 2023-11-8 09:05
  
关注订阅华北区板块,获取更多学习干货!
冯宏斌 发表于 2023-11-8 09:07
  
关注订阅华北区板块,获取更多学习干货!
冯宏斌 发表于 2023-11-8 09:10
  
感谢分享,有助于工作和学习
凯Kane 发表于 2023-11-9 09:10
  
垚哥,你的代码框怎么弄的呀
发表新帖
热门标签
全部标签>
每日一问
技术盲盒
2024年技术争霸赛
干货满满
技术笔记
新版本体验
信服圈儿
GIF动图学习
产品连连看
VPN 对接
标准化排查
2023技术争霸赛专题
技术晨报
功能体验
自助服务平台操作指引
技术咨询
信服课堂视频
每周精选
答题自测
安装部署配置
流量管理
秒懂零信任
场景专题
每日一记
文档捉虫活动
华北区交付直播
终端接入
地址转换
排障笔记本
产品预警公告
通用技术
畅聊IT
专家问答
技术圆桌
在线直播
MVP
网络基础知识
升级
安全攻防
上网策略
测试报告
日志审计
问题分析处理
运维工具
云计算知识
用户认证
原创分享
解决方案
sangfor周刊
项目案例
SANGFOR资讯
专家分享
技术顾问
信服故事
SDP百科
功能咨询
授权
设备维护
资源访问
虚拟机
存储
迁移
加速技术
玩转零信任
S豆商城资讯
技术争霸赛
「智能机器人」
追光者计划
深信服技术支持平台
社区帮助指南
答题榜单公布
纪元平台
卧龙计划
华北区拉练
天逸直播
以战代练
山东区技术晨报
齐鲁TV
北京区每日一练

本版版主

10
16
2

发帖

粉丝

关注

124
72
30

发帖

粉丝

关注

26
7
0

发帖

粉丝

关注

69
37
2

发帖

粉丝

关注

6
14
0

发帖

粉丝

关注

16
10
5

发帖

粉丝

关注

本版达人