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```

可以看到已经创建了三个副本
完事

posted @   0更新  阅读(18)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 实操Deepseek接入个人知识库
· 易语言 —— 开山篇
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 【全网最全教程】使用最强DeepSeekR1+联网的火山引擎,没有生成长度限制,DeepSeek本体
点击右上角即可分享
微信分享提示