IT评测·应用市场-qidao123.com技术社区

标题: 一篇可供参考的 K8S 落地实践经验 [打印本页]

作者: 河曲智叟    时间: 2024-3-3 14:46
标题: 一篇可供参考的 K8S 落地实践经验
前言

k8s 即 Kubernetes,是一个开源的容器编排引擎,用来对容器化应用进行自动化部署、 扩缩和管理
本篇文章将分享 k8s v1.18.8 的安装,以及其面板,监控,部署服务,使用Ingress-Ningx进行负载均衡的实践
因为公司用的这个老版本,并且后面要负责搭建,担心无法复刻,趁此周末,实践一二,确认可行,遂与君分享。
虚拟机准备


  1. 192.168.123.100 master
  2. 192.168.123.101 worker01
  3. 192.168.123.102 worker02
复制代码
CentOS8.5 设置固定 IP

  1. TYPE=Ethernet
  2. PROXY_METHOD=none
  3. BROWSER_ONLY=no
  4. DEFROUTE=yes
  5. IPV4_FAILURE_FATAL=no
  6. IPV6INIT=yes
  7. IPV6_AUTOCONF=yes
  8. IPV6_DEFROUTE=yes
  9. IPV6_FAILURE_FATAL=no
  10. NAME=eth0
  11. DEVICE=eth0
  12. ONBOOT=yes
  13. PREFIX=24
  14. IPV6_PRIVACY=no
  15. # 设置IP及网关
  16. BOOTPROTO=static
  17. IPADDR=192.168.123.100
  18. GATEWAY=192.168.123.1
复制代码
CentOS8.5 联网检查

  1. nameserver 192.168.123.1
复制代码
CentOS8.5 设置主机名

  1. # 查看hostname
  2. hostnamectl --static
  3. #设置 hostname 对应机器设置
  4. # 192.168.123.100
  5. hostnamectl set-hostname master
  6. # 192.168.123.101
  7. hostnamectl set-hostname worker01
  8. # 192.168.123.102
  9. hostnamectl set-hostname worker02
复制代码
确保每个节点上 MAC 地址的唯一性

可以在外部使用 PowerShell 查看 Hyper-V 虚拟机的地址,在导入时选择新注册会自动生成 Mac 地址,无需更改


确保 product_uuid 的唯一性


  1. Get-VM "k8s-master" | % { (gwmi -Namespace root\virtualization\v2 -Class msvm_computersystem -Filter ('ElementName="{0}"' -f $_.Name)).GetRelated('msvm_virtualsystemsettingdata') | select BIOSGUID }
  2. Get-VM "k8s-worker01" | % { (gwmi -Namespace root\virtualization\v2 -Class msvm_computersystem -Filter ('ElementName="{0}"' -f $_.Name)).GetRelated('msvm_virtualsystemsettingdata') | select BIOSGUID }
  3. Get-VM "k8s-worker02" | % { (gwmi -Namespace root\virtualization\v2 -Class msvm_computersystem -Filter ('ElementName="{0}"' -f $_.Name)).GetRelated('msvm_virtualsystemsettingdata') | select BIOSGUID }
复制代码
  1. #这里假设虚拟机的VMname是k8s-master,自行替换即可
  2. $VMname="k8s-master"
  3. $vmx = Get-WmiObject -Namespace root\virtualization\v2 -Class msvm_virtualsystemsettingdata
  4. #每次操作选择一台虚拟机
  5. $CurrentSettingsData = $vmx | Where-Object { $_.ElementName -eq $VMname }
  6. #检查一下老的GUID
  7. $CurrentSettingsData.BIOSGUID
  8. #生成新GUID
  9. $GUID = [System.Guid]::NewGuid()
  10. #重新写入GUID,注意要带{},这是非常重要的细节
  11. $CurrentSettingsData.BIOSGUID = "{" + $GUID.Guid.ToUpper() + "}"
  12. #生成一个ModifySystemSettings的空对象
  13. $VMMS = Get-WmiObject -Namespace root\virtualization\v2 -Class msvm_virtualsystemmanagementservice
  14. $ModifySystemSettingsParams = $VMMS.GetMethodParameters('ModifySystemSettings')
  15. #配置这个属性,需要特殊的转换方式
  16. $ModifySystemSettingsParams.SystemSettings = $CurrentSettingsData.GetText([System.Management.TextFormat]::CimDtd20)
  17. #写入
  18. $VMMS.InvokeMethod('ModifySystemSettings', $ModifySystemSettingsParams, $null)
复制代码

确保 Machine ID 的唯一性


  1. sudo cp /etc/machine-id /etc/machine-id.backup
  2. sudo rm /etc/machine-id
  3. sudo systemd-machine-id-setup
  4. cat /etc/machine-id
复制代码

检查端口是否被占用


  1. ss -tuln | grep -E "6443|2379|2380|10250|10259|10257|30000-32767"
复制代码

安装 K8S v1.18.8

都2023年了,为什么还是 v1.18.8?
因为公司用的这个版本,并且后面要负责搭建,趁此周末,实践一二,确认可行,遂与君分享。
节点初始化

[code]# 关闭防火墙systemctl stop firewalld# 设置永久不开启防火墙systemctl disable firewalld# 关闭swap 分区 swapoff -a   #永久关闭sed -ri 's/.*swap.*/#&/' /etc/fstab# 将 SELinux 设置为 permissive 模式(相当于将其禁用)setenforce 0sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config# 允许 iptables 检查桥接流量cat > /etc/sysctl.d/k8s.conf  /etc/yum.repos.d/kubernetes.repo > /etc/hosts




欢迎光临 IT评测·应用市场-qidao123.com技术社区 (https://dis.qidao123.com/) Powered by Discuz! X3.4