k8s安装记录

news/2024/6/3 18:19:25 标签: kubernetes, 容器, 云原生

k8s安装记录

一、系统优化

#更新主机名
hostnamectl set-hostname 主机名
#添加host解析
echo '192.168.15.5 k8s-master01
192.168.15.41 k8s-master02
192.168.15.108 k8s-node01' >> /etc/hosts
#加载br_netfileter模块
modprobe br_netfilter ; lsmod|grep br_netfilter
#配置内核转发及网桥过滤、关闭swap
cat > /etc/sysctl.d/k8s.conf  << EOF
vm.swappiness = 0
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
EOF
sysctl -p /etc/sysctl.d/k8s.conf
#配置ipvs
yum -y install ipset ipvsadm
cat > /etc/sysconfig/modules/ipvs.modules << EOF
#! /bin/bash
modprobe -- ip_vs
modprobe -- ip_vs_rr
modprobe -- ip_vs_wrr
modprobe -- ip_vs_sh
modprobe -- nf_conntrack
EOF
chmod +x /etc/sysconfig/modules/ipvs.modules
bash /etc/sysconfig/modules/ipvs.modules
lsmod |egrep "(ip_vs|nf_conntrack)"
#免密登录
#升级内核
yum update kernel
yum install -y https://www.elrepo.org/elrepo-release-7.el7.elrepo.noarch.rpm
#安装kernel-ml版本,ml为长期稳定版本,lt为长期维护版本
yum --disablerepo="*" --enablerepo="elrepo-kernel" list available
yum --enablerepo=elrepo-kernel install -y kernel-lt
#设置grub2默认引导为0
yum install -y grub2-pc
grub2-set-default 0
#重新生成grub2引导文件
sed -i  's/GRUB_DEFAULT=saved/GRUB_DEFAULT=0/g' /etc/default/grub
grub2-mkconfig -o /boot/grub2/grub.cfg
#查看引导顺序
awk -F\' '$1=="menuentry " {print i++ " : " $2}' /boot/grub2/grub.cfg
#重启
reboot
#重启设置服务开机启动
systemctl enable --now docker
systemctl enable --now cri-docker
systemctl enable --now kubelet

二、安装docker

#移除老版本
sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

#安装新版本
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

sudo yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

#切换docker默认目录(可选操作)
cat << EOF > /etc/docker/daemon.json
{
  "exec-opts":["native.cgroupdriver=systemd"],
  "data-root": "/data/docker"
}
EOF

#启动docker
sudo systemctl start docker
sudo systemctl enable docker

三、安装 cri-docker

#安装
wget https://github.com/Mirantis/cri-dockerd/releases/download/v0.3.2/cri-dockerd-0.3.2-3.el7.x86_64.rpm
sudo rpm -ivh cri-dockerd-0.3.2-3.el7.x86_64.rpm

#查看cri-docker需要的pause版本
kubeadm config images  list|grep pause

#修改ExecStart参数
sed -i 's@ExecStart=.*@ExecStart=/usr/bin/cri-dockerd --network-plugin=cni --pod-infra-container-image=registry.k8s.io/pause:3.9@g' /usr/lib/systemd/system/cri-docker.service

#启动服务
sudo systemctl enable --now cri-docker

安装k8s

#添加yum源
cat <<EOF | sudo tee /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-\$basearch
enabled=1
gpgcheck=1
gpgkey=https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
exclude=kubelet kubeadm kubectl
EOF
#安装
sudo yum install -y kubelet kubeadm kubectl --disableexcludes=kubernetes
#修改初始化系统管理器
cat > /etc/sysconfig/kubelet << EOF
KUBELET_EXTRA_ARGS="--cgroup-driver=systemd"
EOF
#自启动
sudo systemctl enable --now kubelet

初始化k8s

kubeadm init --config /root/kubeadm-config.yaml |tee -a init.log

添加控制节点需要拷贝一下证书

pki
|-- ca.crt
|-- ca.key
|-- etcd
|   |-- ca.crt
|   `-- ca.key
|-- front-proxy-ca.crt
|-- front-proxy-ca.key
|-- sa.key
`-- sa.pub

加入节点

#加入管理节点(需要拷贝证书)
kubeadm join api.k8s.cc.com:6443 --token abcdef.0123456789abcdef --discovery-token-ca-cert-hash sha256:8a0bcbfe844f9fb061481b687dea0a2f739d02361fafb413f720c34ddb622722         --control-plane --cri-socket unix:///var/run/cri-dockerd.sock |tee -a add.log
#加入worker
kubeadm join api.k8s.cc.com:6443 --token abcdef.0123456789abcdef --discovery-token-ca-cert-hash sha256:30742bc4ccb3aa6b9d9d51ca07ca474f38c08e717f6bc8490174d6c197282d5b --cri-socket unix:///var/run/cri-dockerd.sock

#生成新的加入命令
kubeadm token create --print-join-command

安装网络

#到官网下载yaml并修改默认网段
kubectl apply -f calico.yaml

kubeadm-config.yaml

calico.yaml


http://www.niftyadmin.cn/n/472513.html

相关文章

亚马逊测评:如何有效使用IP和养号设备环境

随着网络科技的崛起&#xff0c;越来越多的本土企业入驻亚马逊电子商务平台上&#xff0c;这导致了对产品评价需求的激增。然而&#xff0c;评价并非随意进行&#xff0c;它需要多方面的资源&#xff0c;并需要密切注意一些重要环节。以下是我分享给大家一些宝贵的知识&#xf…

bat脚本及windows组策略问题

bat脚本中的gpedit.msc是什么意思 gpedit.msc 是一个 Microsoft Windows 本地组策略编辑器&#xff08;Group Policy Editor&#xff09;&#xff0c;它允许用户管理本地计算机的组策略&#xff0c;如安全、配置和管理设置。在 BAT 脚本中调用 gpedit.msc 可以自动打开本地组策…

3 分钟为英语学习神器 Anki 部署一个专属同步服务器

原文链接&#xff1a;https://icloudnative.io/posts/anki-sync-server/ Anki 介绍 Anki 是一个辅助记忆软件&#xff0c;其本质是一个卡片排序工具--即依据使用者对卡片上的自定义内容进行主动测试、自我评判后&#xff0c;其内部算法根据评判结果更改每张卡片下次测试时间的…

2023年1月至4月天猫平台美妆品类销售数据分析

如今&#xff0c;随着人们消费观念的突破&#xff0c;越来越多的人用美妆来诠释个性表达&#xff0c;美丽经济获得更多关注&#xff0c;化妆品消费理念逐渐增强&#xff0c;因此&#xff0c;美妆市场也形成了较大的规模。 根据鲸参谋电商数据显示&#xff0c;2023年1月至4月&am…

LC-1186. 删除一次得到子数组最大和(记忆化搜索 ==> 动态规划)

1186. 删除一次得到子数组最大和 难度中等181 给你一个整数数组&#xff0c;返回它的某个 非空 子数组&#xff08;连续元素&#xff09;在执行一次可选的删除操作后&#xff0c;所能得到的最大元素总和。换句话说&#xff0c;你可以从原数组中选出一个子数组&#xff0c;并可…

基于Dubbo分布式学校信息管理系统设计与实现

一、引言 1.1 课题背景 随着时代的发展与进步,计算机网络也随之日益完善,渐渐覆盖了我们生活的各个方面。在信息化和数字化的时代背景下,使用计算机管理学校信息来提升教育工作的质量和效率,是大势所趋,所以近年来,随着网络技术的不断发展,使用信息管理系统的学校越来…

嵌入式ppt

第二章 第五章 第六章 第七章 第八章 第九章 第十章 考点 条件编译 volatile、static、 union、 struct、 const指针 堆与栈的不同点 3.功能模块应用题 (1) GPIO 的应用:流水灯的电路及软件编码、驱动数码管的电路及编码。 (2)外部中断的应用:电路及回调函数编码。 (3) …

服务器资源:RDS\ECS\云Redis的区别

以下是RDS&#xff08;关系型数据库服务&#xff09;、ECS&#xff08;弹性计算服务&#xff09;和云Redis&#xff08;云数据库Redis版&#xff09;之间的区别总结&#xff1a; RDSECS云Redis 类型 关系型数据库虚拟服务器NoSQL内存数据库数据存储存储在云数据库引擎中存储在…