centos部署k8s
一 准备三台centos7虚拟机
主机名 | ip |
---|---|
master | 192.168.184.129 |
node1 | 192.168.184.130 |
node2 | 192.168.184.131 |
配置方面,最低要求2c4g50GB
1.1 检查虚拟机是否可以上网
ping www.baidu.com
如果不能上网,检查网卡是否开启
vi /etc/sysconfig/network-scripts/ifcfg-ens33
#将ONBOOT改为yes
ONBOOT=yes
#重启网络
systemctl restart network
1.2 修改主机名
分别在master和两个node节点上修改
hostnamectl set-hostname master
1.3 设置时间同步
#检查是否安装了时间同步工具
rpm -qa |grep chrony
#如果没有安装,先安装
yum install chrony
#确定安装之后开启同步
systemctl start chronyd
systemctl enable chronyd
1.4 关闭所有防火墙
systemctl disable firewalld
1.5 关闭swap空间
vi /etc/fstab
# /dev/mapper/centos-swap swap
1.6 添加网桥过滤和地址转换
cat > /etc/sysctl.d/kubernetes.conf << EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
EOF
#然后执行
sysctl --system //生效命令
二 Docker安装
2.1 安装docker
略
2.2 配置docker驱动
如果设置不正确,后面执行kubeadm init会失败
# vi /etc/docker/daemon.json
{
"exec-opts": ["native.cgroupdriver=systemd"],
"registry-mirrors": ["https://kn0t2bca.mirror.aliyuncs.com"]
}
三 k8s安装
3.1 配置yum镜像源
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
3.2 安装kubeadm kubelet kubectl
yum install -y kubelet-1.23.0 kubeadm-1.23.0 kubectl-1.23.0
systemctl enable kubelet #开机自启
3.2 初始化master节点
切换至master节点操作以下命令
kubeadm init \
--apiserver-advertise-address=192.168.184.129 \
--image-repository registry.aliyuncs.com/google_containers \
--kubernetes-version v1.23.0 \
--service-cidr=10.96.0.0/12 \
--pod-network-cidr=10.244.0.0/16 \
--ignore-preflight-errors=all
–apiserver-advertise-address #集群通告地址(master 机器IP)
–image-repository #由于默认拉取镜像地址k8s.gcr.io国内无法访问,这里指定阿里云镜像仓库地址
–kubernetes-version #K8s版本,与上面安装的一致
–service-cidr #集群内部虚拟网络,Pod统一访问入口
–pod-network-cidr #Pod网络
执行成功后,会有join命令
3.3 创建必要的文件
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
3.4 将node节点加入集群
切换至node节点上执行join命令
kubeadm join 192.168.184.129 :6443 --token xxxx.xxxxxx \
--discovery-token-ca-cert-hash sha256:xxxx
token 默认只有24小时的有效期,刷新token命令
kubeadm token create --print-join-command
#会重新生成join命令
此时在master节点执行kubectl get node
,会发现状态是错误的,那是因为还没有装CNI网络驱动.
3.4 安装CNI
下载calico.yaml文件
wget https://docs.projectcalico.org/manifests/calico.yaml
修改CALICO_IPV4POOL_CIDR的值为pod网络,和–pod-network-cidr保持一致
比如
- name: CALICO_IPV4POOL_CIDR
value: "10.244.0.0/16"
将文件上传至master节点后执行命令
kubectl apply -f calico.yaml
等待一段时间后查看node状态kubectl get pods -n nodes
查看k8s系统空间kubectl get pods -n kube-system
四 测试
4.1 创建nginx.yaml文件
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
labels:
app: nginx
spec:
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx
执行 kubectl apply -f nginx.yaml
查看运行情况`kubectl get pod```
可以看到已经创建了三个副本
完事
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 实操Deepseek接入个人知识库
· 易语言 —— 开山篇
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 【全网最全教程】使用最强DeepSeekR1+联网的火山引擎,没有生成长度限制,DeepSeek本体