kubernetes的安装

minikuber的安装与使用

kubeadm安装方式

k8s集群搭建

1、准备

1、准备三台服务

编辑三台服务器的/etc/sysconfig/network-scripts/ifcfg-ens33文件给三台服务器配置静态IP

# 示例 
IPADDR=192.168.1.100
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=8.8.8.8
#下面两项修改
BOOTPROTO=static
ONBOOT=yes

修改后保存

执行systemctl restart network

重启网络

2、同步时间

启动chronyd服务

执行systemctl start chronyd

使chronyd开机自启

执行systemctl enable chronyd

3、禁用iptables和firewalld服务
#关闭firewalld服务
systemctl stop iptables
#禁止firewalld服务开机自启
systemctl disable firewalld
# 关闭iptables
systemctl stop iptables
# 禁止iptables开机自启
systemctl disable iptables
4、禁用selinux
# 编辑/etc/selinux/config 将SELINUX的值设为disable
SELINUX=disable
5、禁用分区
#编辑分区fstab 注释掉swap分区一行    /etc/fstab
# /dev/mapper/centos/-swap swap
6、修改linux内核参数
#编辑 /etc/sysctl.d/kubernetes.conf 文件 添加如下配置
cat << EOF > /etc/sysctl.d/kubernetes.conf
net.bridge.bridge-nf-call-ip6tables =1
net.bridge.bridge-nf-call-iptables =1
net.ipv4.ip_forward = 1
EOF

重新加载配置

sysctl -p

加载网桥过滤模块

modprobe br_netfilter

查看网桥过滤模块是否加载成功

lsmod | grep br_netfilter
7、配置ipvs功能

在k8s中services有两种代理模型,一种是基于iptables的,一种是基于ipvs的,两者相比ipvs性能高但要手动加载

#安装ipset和ipvsadm
yum install ipset ipvsadmin -y

添加加载模块的脚本文件

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
EOF

为脚本文件添加执行权限

chmod +x /etc/sysconfig/modules/ipvs.modules

执行脚本文件

/bin/bash  /etc/sysconfig/modules/ipvs.modules

查看对应模块是否加载成功

lsmod | grep -e ip_vs -e nf_conntrack_ipv4
8、重启服务器
reboot

2、安装docker

1、安装docker看上文
2、添加一个配置文件
 /etc/docker && touch /etc/docker/daemon.json

#两条指令分别执行
cat << EOF > /etc/docker/daemon.json
{
	"exec-opts":["native.cgroupdriver=systemd"],
	"registry-mirrors":["https://dgdghshfrq.mirror.aliyun.cs.com"]
}
EOF
3、启动docker
systemctl start docker
# 设置开机自启
systemctl enable docker

3、安装k8s组件

1、设置k8s镜像
# 编辑/etc/yum.repos.d/kubernetes.repo
cat << EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes] 
name=Kubernetes 
baseurl=https://mirrors.aliyun.com/kubernetes-new/core/stable/v1.29/rpm/ 
enabled=1 
gpgcheck=0 
repo_gpgcheck=0 
gpgkey=https://mirrors.aliyun.com/kubernetes-new/core/stable/v1.29/rpm/repodata/repomd.xml.key 
EOF
2、安装kubeadm、kubectl、kubelet
yum install -y kubeadm kubectl kubelet

配置kubelet的cgroup

#编辑/etc/sysconfig/kubelet  添加如下内容
KUBELET_CGROUP_ARGS="--cgroup-driver=systemd"
KUBE_PROXY_MODE="ipvs"

设置kubelet开机自启

systemctl enable kubelet

###4、准备集群镜像

1、安装docker-engine的运行时接口cri-dockerd
# 获取cri-dockerd
wget https://github.com/Mirantis/cri-dockerd/releases/download/v0.3.12/cri-dockerd-0.3.12-3.el7.x86_64.rpm
# 安装cri-dockerd
yum install -y cri-dockerd-0.3.12-3.el7.x86_64.rpm
2、准备apiserver等组件镜像
# 在/etc/resolv.conf 文件中加入网关
nameserver 192.168.1.1

重加载

systemctl daemon-reload

查看需要的镜像

kubeadm config images list

首先创建一个脚本

touch pullImage.sh && chmod +x pullImage.sh
#写入以下内容
cat << EOF > init.sh
#!/bin/sh
images=(
	kube-apiserver:v1.29.3
	kube-controller-manager:v1.29.3
	kube-scheduler:v1.29.3
	kube-proxy:v1.29.3
	etcd:3.5.12-0
	pause:3.9
	coredns:v1.11.1
)
for image in "${images[@]}"
do
 docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/$image
 docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/$image registry.k8s.io/$image
 docker rmi registry.cn-hangzhou.aliyuncs.com/google_containers/$image
done 
 docker tag registry.k8s.io/coredns:v1.11.1 registry.k8s.io/coredns/coredns:v1.11.1
 docker rmi registry.k8s.io/coredns:v1.11.1
EOF

执行脚本

./pullImage.sh

修改文件/usr/lib/systemd/system/cri-docker.service的第十行内容

ExecStart=/usr/bin/cri-dockerd --pod-infra-container-image=registry.k8s.pause:3.9 --container-runtime-endpoint fd://

设置cri-dockerd自启动

systemctl start cri-docker
systemctl enable cri-docker

5、集群初始化

注意: 前四步各节点都要执行

1、创建集群初始化脚本

touch init.sh && chmod +x init.sh
cat << EOF > init.sh
kubeadm init \
--kubernetes-version=v1.29.3 \
--pod-network-cidr=10.244.0.0/16 \
--service-cidr=10.96.0.0/12 \
--apiserver-advertise-address=192.168.1.18 \  #本ip为master节点ip
--cri-socket=unix:///run/cri-dockerd.sock 
EOF

注意: 此步执行需要先确定docker cri的socket位置

执行init.sh

./init.sh

依次执行以下指令

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

worker节点依次执行kubeadm join指令

安装flannet网络插件

# 获取配置文件
wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
# 去掉文件中的三个image镜像地址的前端部分 docker.io/

在master节点执行

kubectl apply -f kube-flannel.pingyml

执行 kubectl get nodes指令 等待所有节点变为ready状态

apiVersion: batch/v1beta1
kind: Cronjob
metadata:
 name: pc-cronjob
 namespace: dev
 labels:
  controller: cronjob
spec:
 schedule: "*/1 * * * *"
 jobTemplate:
  metadata:
  spec:
    template:
     spec:
      restartPolicy: Never
      containers:
      - name: counter
        image: busybox:1.30
        command: ["bin/sh","-c","for i in 9 8 7 6 5 4 3 2 1;do echo $i;sleep 3;done"]
  • 14
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值