当前位置: 首页 > article >正文

k8s 1.26安装

文章目录

    • 1、前期准备
      • 1、修改内核参数
      • 2、配置k8s源
      • 3、安装containerd
      • 4、设置容器运行时
    • 2、k8s安装
      • 1、安装k8s包
      • 2、通过配置文件进行初始化
      • 3、安装网络插件
      • 4、测试
      • 5、docker

1、前期准备

  • 关闭防火墙和selinux和交换分区

  • 修改主机名和免密登录

  • 上面的这些不会做的话,趁早别学k8s了,学不明白的

1、修改内核参数

[root@master yum.repos.d]# cat /etc/sysctl.d/k8s.conf 
net.bridge.bridge-nf-call-ip6tables = 1  # 启用对ipv6流量的桥接网络数据包的iptables的过滤功能,走iptables的规则
net.bridge.bridge-nf-call-iptables = 1  # 对ipv4的iptables的过滤功能
net.ipv4.ip_forward = 1    # 启动对ipv4数据包的转发功能;pod想要访问外网或者访问另外一个Pod,这个功能必须打开,否则系统只会管自己,不会帮别人转发数据包,就是只会管理发给自己的数据包的请求,不是自己的请求不会管

modprobe br_netfilter  # 加载linux内核模块

[root@master yum.repos.d]# sysctl -p /etc/sysctl.d/k8s.conf   # 加载指定配置文件的参数值,立即生效
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1

# 加载这些内核模块
[root@master ~]# cat /etc/sysconfig/modules/ipvs.modules 
modprobe -- ip_vs
modprobe -- ip_vs_rr
modprobe -- ip_vs_wrr
modprobe -- ip_vs_sh
modprobe -- nf_conntrack_ipv4

bash /etc/sysconfig/modules/ipvs.modules 

# 查看内核
lsmod | grep  -e ip_vs -e nf_conntrack_ipv4

2、配置k8s源

[root@master /]# 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、安装containerd

yum -y install  yum-utils

yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

yum -y install docker-ce


# 修改配置文件
containerd config default > /etc/containerd/config.toml
SystemdCgroup = true   # 驱动设置为systemd,与kubelet保持一致
sandbox_image = "registry.aliyuncs.com/google_containers/pause:3.9" # 使用的沙盒镜像是这个,国内可以进行访问到

# 设置containerd镜像仓库地址

      [plugins."io.containerd.grpc.v1.cri".registry.mirrors]
         [plugins."io.containerd.grpc.v1.cri".registry.mirrors."registry.k8s.io"]  # 请求的是registry.k8s.io的地址都重定向到下面的地址,之前用的是阿里云的仓库地址,一直拉取不到镜像
            endpoint = ["https://registry-k8s-io.mirrors.sjtug.sjtu.edu.cn"]
         [plugins."io.containerd.grpc.v1.cri".registry.mirrors."docker.io"]
            endpoint = [仓库地址]


systemctl enable containerd --now

4、设置容器运行时

  • ctr是containerd的默认的工具

  • crictl是用于支持k8s容器运行时的接口,用于运行containerd中的容器和pod

  • 也就是说crictl与指定的容器运行时containerd和镜像服务端点通信,交互操作

# 指容器运行时的终端接口,连接到哪个容器运行时的unix socket
crictl config runtime-endpoint unix:///var/run/containerd/containerd.sock   

# 告诉crictl对镜像做操作时使用的哪个接口
crictl config image-endpoint unix:///var/run/containerd/containerd.sock

2、k8s安装

1、安装k8s包

yum -y install kubelet-1.26.0 kubectl-1.26.0 kubeadm-1.26.0

systemctl enable kubelet

2、通过配置文件进行初始化

kubeadm config print init-defaults > kubeadm.yaml

[root@master ~]# cat kubeadm.yaml 
apiVersion: kubeadm.k8s.io/v1beta3
bootstrapTokens:
- groups:
  - system:bootstrappers:kubeadm:default-node-token
  token: abcdef.0123456789abcdef
  ttl: 24h0m0s
  usages:
  - signing
  - authentication
kind: InitConfiguration
localAPIEndpoint:
  advertiseAddress: 10.104.43.133   # master ip地址
  bindPort: 6443
nodeRegistration:
  criSocket: unix:///run/containerd/containerd.sock  # 容器运行时的接口 
  imagePullPolicy: IfNotPresent
  name: master   # 主机名 
  taints: null
---
apiServer:
  timeoutForControlPlane: 4m0s
apiVersion: kubeadm.k8s.io/v1beta3
certificatesDir: /etc/kubernetes/pki
clusterName: kubernetes
controllerManager: {}
dns: {}
etcd:
  local:
    dataDir: /var/lib/etcd
imageRepository: registry.aliyuncs.com/google_containers   # 在初始化的时候设置的镜像仓库地址
kind: ClusterConfiguration
kubernetesVersion: 1.26.0
networking:
  dnsDomain: cluster.local
  serviceSubnet: 10.96.0.0/12
  podSubnet: 10.244.0.0/16  # pod的网段
scheduler: {}
---
apiVersion: kubeproxy.config.k8s.io/v1alpha1
kind: KubeProxyConfiguration   
mode: ipvs  # 设置ipvs
---
apiVersion: kubelet.config.k8s.io/v1beta1
kind: KubeletConfiguration
cgroupDriver: systemd   # 设置kubelet驱动为systemd

# 初始化
kubeadm init --config=kubeadm.yaml --ignore-preflight-errors=SystemVerification

3、安装网络插件

kubectl apply -f calico.yaml

4、测试

[root@master ~]# kubectl get node
NAME     STATUS   ROLES           AGE   VERSION
master   Ready    control-plane   49m   v1.26.0
node1    Ready    <none>          32m   v1.26.0
[root@master ~]# kubectl get pod -A
NAMESPACE     NAME                                      READY   STATUS    RESTARTS   AGE
default       nginx                                     1/1     Running   0          20m
kube-system   calico-kube-controllers-57b57c56f-sfc4w   1/1     Running   0          29m
kube-system   calico-node-9hwf6                         1/1     Running   0          29m
kube-system   calico-node-bnb2s                         1/1     Running   0          29m
kube-system   coredns-5bbd96d687-8w5wg                  1/1     Running   0          49m
kube-system   coredns-5bbd96d687-fxzj9                  1/1     Running   0          49m
kube-system   etcd-master                               1/1     Running   1          49m
kube-system   kube-apiserver-master                     1/1     Running   0          50m
kube-system   kube-controller-manager-master            1/1     Running   0          49m
kube-system   kube-proxy-rcmrz                          1/1     Running   0          32m
kube-system   kube-proxy-v6wvt                          1/1     Running   0          49m
kube-system   kube-scheduler-master                     1/1     Running   1          49m


# 创建一个pod,进行访问

5、docker

  • 虽然弃用了docker,但是还是可以进行安装的,并且docker构建镜像比较方便的

http://www.kler.cn/a/401010.html

相关文章:

  • 大学作业参考:网页设计作业 - 工作计划-Java SQL HTML源码下载
  • 【青牛科技】视频监控器应用
  • 机器学习基础04
  • 理解 Python 中的 __getitem__ 方法:在自定义类中启用索引和切片操作
  • Java——并发工具类库线程安全问题
  • Android Activity Manager Service (AMS) 深入详解及源码分析
  • 集群聊天服务器(11)客户端开发
  • 计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-11-04
  • 小程序-基于java+SpringBoot+Vue的实习生管理系统设计与实现
  • 网络安全等级测评师
  • vue3的setup、ref、reactive
  • RDD转换算子:join方面的算子(leftOuterJoin、rightOuterJoin、fullOuterJoin)
  • Spring Boot汽车资讯:驾驭信息新浪潮
  • 【网络安全 | 漏洞挖掘】在重置密码流程利用请求头实现ATO
  • 软件测试丨Java常用库
  • webgis与纯前端相比如何?
  • 网络传输:网卡、IP、网关、子网掩码、MAC、ARP、路由器、NAT、交换机
  • 【pytest】pytest注解使用指南
  • AI 技术在旅游和酒店行业的应用前景
  • 如何利用WebSockets实现高效的实时通信应用
  • docker 安装之 windows安装
  • MySQL深度剖析-索引原理由浅入深
  • Qt-QWidget中的属性和方法
  • 【Oracle篇】掌握SQL Tuning Advisor优化工具:从工具使用到SQL优化的全方位指南(第六篇,总共七篇)
  • 【第六课】Rust所有权系统(二)
  • 【网络安全面经】技术性问题3