K8s 安装部署

news/2024/11/18 4:22:22/

节点

IP地址

性能分配

k8s-master

192.168.56.10

处理器内核 2 内存 4G

k8s-node1

192.168.56.11

处理器内核 2 内存 4G

k8s-node2

192.168.56.12

处理器内核 2 内存 4G

设置主机名称

Master
hostnamectl set-hostname k8s-master
Node
hostnamectl set-hostname k8s-node1
hostnamectl set-hostname k8s-node2

配置hosts 解析

cat <<EOF>> /etc/hosts
192.168.56.10     k8s-master
192.168.56.11     k8s-node1
192.168.56.12     k8s-node2
EOFcat /etc/hosts

安装依赖

yum install -y conntrack ipvsadm ipset jq iptables curl sysstat libseccomp wget vim net-tools git

设置防火墙为 Iptables 并设置空规则

systemctl stop firewalld && systemctl disable firewalldyum -y install iptables-services && systemctl start iptables && systemctl enable iptables && iptables -F && service iptables save

关闭 SELINUX

swapoff -a && sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstabsetenforce 0 && sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config

调整内核参数

modprobe br_netfiltercat <<EOF> kubernetes.conf 
net.bridge.bridge-nf-call-iptables=1
net.bridge.bridge-nf-call-ip6tables=1
net.ipv4.ip_forward=1
net.ipv4.tcp_tw_recycle=0
vm.swappiness=0 # 禁止使用 swap 空间,只有当系统 OOM 时才允许使用它
vm.overcommit_memory=1 # 不检查物理内存是否够用
vm.panic_on_oom=0 # 开启 OOM
fs.inotify.max_user_instances=8192
fs.inotify.max_user_watches=1048576
fs.file-max=52706963
fs.nr_open=52706963
net.ipv6.conf.all.disable_ipv6=1
net.netfilter.nf_conntrack_max=2310720
EOFcp kubernetes.conf /etc/sysctl.d/kubernetes.confsysctl -p /etc/sysctl.d/kubernetes.conf若报错:sysctl: cannot stat /proc/sys/net/ipv4/tcp_tw_recycle: No such file or directory
则:
查看conntrack是否加载
lsmod |grep conntrack
加载conntrack
modprobe ip_conntrack
重新执行
sysctl -p /etc/sysctl.d/kubernetes.conf

调整系统时区

# 设置系统时区为 中国/上海
timedatectl set-timezone Asia/Shanghai
# 将当前的 UTC 时间写入硬件时钟
timedatectl set-local-rtc 0
# 重启依赖于系统时间的服务
systemctl restart crond

设置 rsyslogd 和 systemd journald

# 持久化保存日志的目录
mkdir /var/log/journal 
mkdir /etc/systemd/journald.conf.d
cat > /etc/systemd/journald.conf.d/99-prophet.conf <<EOF
[Journal]
# 持久化保存到磁盘
Storage=persistent# 压缩历史日志
Compress=yesSyncIntervalSec=5m
RateLimitInterval=30s
RateLimitBurst=1000# 最大占用空间 10G
SystemMaxUse=10G# 单日志文件最大 200M
SystemMaxFileSize=200M# 日志保存时间 2 周
MaxRetentionSec=2week# 不将日志转发到 syslog
ForwardToSyslog=no
EOFsystemctl restart systemd-journald

kube-proxy开启ipvs的前置条件

cat <<EOF> /etc/sysconfig/modules/ipvs.modules 
#!/bin/bash
modprobe -- ip_vs
modprobe -- ip_vs_rr
modprobe -- ip_vs_wrr
modprobe -- ip_vs_sh
modprobe -- nf_conntrack_ipv4
EOFchmod 755 /etc/sysconfig/modules/ipvs.modules && bash /etc/sysconfig/modules/ipvs.modules && lsmod | grep -e ip_vs -e nf_conntrack_ipv4# 如果上述出现如下错误
modprobe: FATAL: Module nf_conntrack_ipv4 not found in directory /lib/modules/4.18.0-372.9.1.el8.x86_64
# 因为内核版本较高的原因尝试下方
cat <<EOF> /etc/sysconfig/modules/ipvs.modules
#!/bin/bash
modprobe -- ip_vs
modprobe -- ip_vs_rr
modprobe -- ip_vs_wrr
modprobe -- ip_vs_sh
modprobe -- nf_conntrack
EOFchmod +x /etc/sysconfig/modules/ipvs.modules/bin/bash /etc/sysconfig/modules/ipvs.moduleslsmod | grep -e -ip_vs -e nf_conntrack

卸载原有的docker

停止服务
systemctl stop docker
删除文件
rm -rf /etc/docker
rm -rf /run/docker
rm -rf /var/lib/dockershim
rm -rf /var/lib/docker
列出相关包并移出
yum list installed |grep docker
yum -y remove XXXXXXX
查看docker相关的rpm源文件并删除
rpm -qa |grep docker
yum -y remove XXXXXXX

安装docker

yum install -y yum-utils device-mapper-persistent-data lvm2
配置源
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
查看版本
yum list docker-ce --showduplicates | sort -r
安装指定版本的server和cliyum install -y docker-ce-20.10.7-3.el7 docker-ce-cli-20.10.7-3.el7 containerd.io
修改配置文件
mkdir /etc/docker
cat > /etc/docker/daemon.json << EOF
{
"registry-mirrors": ["https://gqs7xcfd.mirror.aliyuncs.com","https://hub-mirror.c.163.com"],
"exec-opts": ["native.cgroupdriver=systemd"],
"log-driver": "json-file",
"log-opts": {
"max-size": "100m"
},
"storage-driver": "overlay2"
}
EOF启动并配置docker服务
systemctl daemon-reload && systemctl enable docker && systemctl start docker若启动报错
failed to start daemon: error initializing graphdriver: overlay2: the backing xfs filesystem is formatted without d_type support, which leads to incorrect behavior. Reformat the filesystem with ftype=1 to enable d_type support.
则删除daemon.json中的overlay2驱动配置;或者格式化文件系统。【建议安装前先使用xfs_info查看挂载点文件系统格式化情况,ftype=0情况下,kubeadm init时会报错】
格式化文件系统
查看文件系统信息
df -T
xfs_info [挂载点:/dev/sda1或者/dev/mapper/centos-root]
结果:
meta-data=/dev/mapper/centos-root isize=256    agcount=16, agsize=3276800 blks=                       sectsz=512   attr=2, projid32bit=1=                       crc=0        finobt=0
data     =                       bsize=4096   blocks=50759680, imaxpct=25=                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=0
log      =internal               bsize=4096   blocks=6400, version=2=                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
格式化
可以看到,ftype=0,所以在启动 Docker 的时候报错了。
格式化 xfs 文件系统,将 ftype 设置为 1,【需卸载挂载的文件系统】
mkfs.xfs -n ftype=1 /dev/mapper/centos-root

安装kubeadm,kubelet和kubectl

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=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF### 列出所有版本 建议安装 1.23.6
yum list kubelet --showduplicatesyum install -y kubelet-1.23.6 kubeadm-1.23.6 kubectl-1.23.6systemctl enable kubelet

初始化 kubernetes master/node

[master]上执行

kubeadm init --kubernetes-version 1.23.6 \--apiserver-advertise-address=192.168.56.10 \--service-cidr=10.96.0.0/16 \--pod-network-cidr=10.244.0.0/16 \--image-repository registry.aliyuncs.com/google_containers 使用下面命令
kubeadm init --kubernetes-version 1.23.6 --apiserver-advertise-address=192.168.56.10 --service-cidr=10.96.0.0/16 --pod-network-cidr=10.244.0.0/16 --image-repository registry.aliyuncs.com/google_containers 

配置集群相关信息

安装完成后终端会显示
mkdir -p $HOME/.kubesudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/configsudo chown $(id -u):$(id -g) $HOME/.kube/configkubeadm join 192.168.56.10:6443 --token nd0hv2.mjlfe5rlu026nrtf \--discovery-token-ca-cert-hash sha256:480eea593d48e4058204741b27fe936b0a5c7e2896fa3f7cb09c20ea9f8a5157

配置网络插件

wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.ymlkubectl apply -f kube-flannel.yaml

查看服务状态

kubectl get pods -n kube-system -o wide kubectl get nodes

安装ingress-nginx插件

kubectl apply -f ingress-controller.yaml

测试ingress-nginx插件工作是否成功,部署demo(官网测试案例)

kubectl create deployment demo --image=httpd --port=80
kubectl expose deployment demo
# nginx.mercator.com 自定义域名
kubectl create ingress demo-localhost --class=nginx   --rule="nginx.mercator.com/*=demo:80"
kubectl get pod,svc,ingress
部署成功后,访问 curl nginx.mercator.com,正常情况下会显示It Works!
访问成功的前提需要:
1.在虚拟机上配置域名解析:127.0.0.1 nginx.mercator.com
2.在本地宿主机上配置解析:宿主机ip nginx.mercator.com


http://www.ppmy.cn/news/163067.html

相关文章

360极速浏览器无法打开qq邮箱网址

描述&#xff1a;360极速浏览器无法打开qq邮箱 分析&#xff1a;360极速浏览器出现了故障 步骤&#xff1a; 1.按F1打开修复工具 2.勾选修复项开始修复 3.修复成功&#xff0c;启动浏览器

QQ点不开链接/空间/邮箱。提示:windows找不到文件

今天要用QQ编辑腾讯在线文档时&#xff0c;点不开&#xff0c;系统报错如下。包括在QQ界面点击空间、邮箱等都会报错。 原因&#xff1a;系统默认的游览器是Edge。但是前几天被我卸载掉了。现在从QQ上跳转到新链接自然需要默认的游览器。 解决方法&#xff1a;更改默认游览器 现…

腾讯QQ邮箱、网易163邮箱配置客户端(Windows自带邮件)教程

1. 163邮箱配置教程 登录163邮箱网页版&#xff0c;点击设置-常规设置-POP3/SMTP/IMAP&#xff0c;点击开启 获取授权密码&#xff0c;复制 打开电脑自带的邮件&#xff0c;点击设置-管理账户-添加账户-其他账户&#xff0c;使用163邮箱账号和刚刚复制的密码进行登录即可 …

关于浏览器无法登入QQ邮箱

近期谷歌浏览器登入QQ邮箱&#xff0c;总是登入不上去&#xff0c;显示cookie不正常之类的&#xff0c;通过一番折腾找到解决办法&#xff1a;修改电脑网络DNS 公共DNS推荐谷歌的DNS&#xff08;8.8.8.8和8.8.4.4&#xff09;或114&#xff08;114.114.114.114和114.114.115.11…

登陆qq邮箱网络未连接到服务器,QQ邮箱无法登陆解决方法图文教程

问题一&#xff1a;QQ是否被盗! 登录一下自己的qq&#xff0c;看一下自己的账号有误异常登录&#xff0c;或者qq根本无法登录。qq被盗往往会造成我们无法登录邮箱。建议找回密码或者通过申诉的方法找回密码。 问题二&#xff1a;是否浏览器不兼容 小编就遇到这个问题&#xff0…

qq邮箱显示服务器连接错误,为什么我的QQ邮箱显示网络错误

解决步骤是&#xff1a; 1、首先给自己发一封邮件&#xff0c;如果发信正常并且能够收到邮件&#xff0c;说明一切正常&#xff0c;没有问题。 2、检查邮件过滤设置。在邮箱页面右上角点击“设置”&#xff0c;打开设置页面&#xff0c;点击“过滤器”&#xff0c;检查过滤条件…

#请高手帮忙解决一下Java写QQ邮箱验证发送的链接打不开的问题

###最近在Github上面下载了一个项目&#xff0c;用户注册是用邮箱注册&#xff0c;邮件正常发送到QQ邮箱之后&#xff0c;那个激活链接没办法点开&#xff0c;右键复制链接到单独页面上又可以打开&#xff0c;这是为啥呢。。。试了一遍163邮箱没这问题。 ###域名配置&#xff…

qq邮箱服务器连接错误代码,qq邮箱错误代码103打不开是怎么回事

有些人因为为qq邮箱打不开是怎么回事显示错误代码103而苦恼&#xff0c;那么qq邮箱打不开是怎么回事呢?显示错误代码103.下面是学习小编给大家整理的有关介绍qq邮箱错误代码103打不开的处理方法&#xff0c;希望对大家有帮助! qq邮箱错误代码103打不开的处理方法 网站自身问题…