kubernetes-v1.20.4 二进制部署-flannel-v0.13.0

摘要:
5.授权apiserver访问kubeletcat˃apiserver-to-kubelet-rbac。yaml˂˂EOFapiVersion:rbac。批准k8秒。io/v1kind:ClusterRolemetadata:注释:rbac。批准库伯内特斯。io/autoupdate:“true”标签:kubernetes io/bootstrapping:rbac-defaultsname:system:kube-apiserver to kubeletrules:-apiGroups:-“”资源:-nodes/proxy-nodes/stats-nodes/log-nodes/spec-nodes/metrics-pods/logverbs:-“*”---apiVersion:rbac-authorization.k8s。io/v1kind:ClusterRoleBindingmetadata:名称:system:kube apiservernamespace:“”roleRef:apiGroup:rbac.authorization.k8s.iokind:CluberRolename:system:kubeapiserver-to-kubeletsubjects:-apiGroup:lbac.authrization.k8s.iokind:用户名:kubernetesEOFkubectl将fapiserver应用于kubelet rbac。Yaml II。将模式更改为IPVS注:使用法兰绒的K8s集群可以更改为IPV模式。使用Calico的K8s集群需要将内核升级到4.1。

一、部署CNI网络

获取最新更新以及文章用到的软件包,请移步点击查看更新

1、先准备好CNI二进制文件:

下载地址:https://github.com/containernetworking/plugins/releases/download/v0.8.6/cni-plugins-linux-amd64-v0.8.6.tgz

2、解压二进制包并移动到默认工作目录:

mkdir /opt/cni/bin
tar zxvf cni-plugins-linux-amd64-v0.8.6.tgz -C /opt/cni/bin

3、部署CNI网络:

wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
sed -i -r "s#quay.io/coreos/flannel:.*-amd64#lizhenliang/flannel:v0.12.0-amd64#g" kube-flannel.yml

4、默认镜像地址无法访问,修改为docker hub镜像仓库。

kubectl apply -f kube-flannel.yml

kubectl get pods -n kube-system
NAME                          READY   STATUS    RESTARTS   AGE
kube-flannel-ds-amd64-2pc95   1/1     Running   072s

kubectl getnode
NAME         STATUS   ROLES    AGE   VERSION
k8s-master   Ready    <none>   41m   v1.20.4

部署好网络插件,Node准备就绪。

5、授权apiserver访问kubelet

cat > apiserver-to-kubelet-rbac.yaml <<EOF
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  annotations:
    rbac.authorization.kubernetes.io/autoupdate: "true"labels:
    kubernetes.io/bootstrapping: rbac-defaults
  name: system:kube-apiserver-to-kubelet
rules:
  -apiGroups:
      - ""resources:
      - nodes/proxy
      - nodes/stats
      - nodes/log
      - nodes/spec
      - nodes/metrics
      - pods/log
    verbs:
      - "*"
---apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: system:kube-apiserver
  namespace: ""roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: system:kube-apiserver-to-kubelet
subjects:
  -apiGroup: rbac.authorization.k8s.io
    kind: User
    name: kubernetes
EOF

kubectl apply -f apiserver-to-kubelet-rbac.yaml
 

二、模式修改为IPVS

注意:使用flannel的k8s集群允许修改成ipvs模式(测试通没没问题),使用Calico的k8s集群需要内核升级到4.1。

1、开启内核参数

cat >> /etc/sysctl.conf <<EOF
net.ipv4.ip_forward = 1net.bridge.bridge-nf-call-iptables = 1net.bridge.bridge-nf-call-ip6tables = 1EOF
sysctl -p #生效

2、开启ipvs支持

yum update -y # 可做可不做,如果CentOS 7内核大于3.10yum install -y ipset ipvsadm conntrack conntrack-tools

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_ipv4
EOF
chmod 755 /etc/sysconfig/modules/ipvs.modules && bash /etc/sysconfig/modules/ipvs.modules && lsmod | grep -e ip_vs -e nf_conntrack_ipv4

3、配置kube-proxy服务

vi /usr/lib/systemd/system/kube-proxy.service # 修改服务文件

# ExecStart选项的末尾添加下面两行
--proxy-mode=ipvs 
--masquerade-all=true

4、修改kube-proxy配置文件

# systemctl status kube-proxy.service 查看配置文件保存地址

vi kube-proxy-config.yml # 末尾添加下面两行,启用ipvs,使用rr轮询

mode: ipvs
scheduler: "rr"

5、重启服务,查看结果

# 重启kube-proxy
systemctl daemon-reload
systemctl restart kube-proxy
systemctl status kube-proxy

# 查看转发
ipvsadm -L -n

6、加上网段文件

[root@k8s-master1 ~]# cat /run/flannel/subnet.env 
FLANNEL_NETWORK=10.244.0.0/16FLANNEL_SUBNET=10.244.1.1/24FLANNEL_MTU=1450FLANNEL_IPMASQ=true

免责声明:文章转载自《kubernetes-v1.20.4 二进制部署-flannel-v0.13.0》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇vue+ts+router实现单页面打开新窗口,不显示侧边栏问题(返回上一页,保留数据)Mysql日期分组无数据查询填充0下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Kubernetes的搭建与配置(二):部署 Wayne 用户界面

1、关于Wayne 简介 GitHub:https://github.com/Qihoo360/wayne Wayne是一个Kubernetes的可视化管理平台,通过直观的页面操作便可完成Kubernetes中资源的创建、部署等操作。 采用微内核架构,通过插件化的方式将不同功能尽量的分离,更利于各种定制化功能的扩展。 在此基础上,融入了部门、项目的概念,通...

Kubernetes进阶实战读书笔记:配置容器应用(容器化应用配置方式)

一、容器化应用配置方式 每个应用程序都是一个可执行程序文件、它包含操作码列表、CPU通过执行这些操作码来完成特定的操作、例如,cat命令是由:/usr/bin/cat文件提供的、该文件含有机器指令的列表、在屏幕上显示制定文件的内容时需要使用这些机器指令、几乎每个程序的行为都可以通过其命令选项及参数或配置文件来按需定制、实践中、人们通常不会以默认的配置参数运...

Prometheus实战之联邦+高可用+持久

  导航:这里主要是列出一个prometheus一些系统的学习过程,最后按照章节顺序查看,由于写作该文档经历了不同时期,所以在文中有时出现 的云环境不统一,但是学习具体使用方法即可,在最后的篇章,有一个完整的腾讯云的实战案例。   1.什么是prometheus?   2.Prometheus安装   3.Prometheus的Exporter详解   ...

Rancher 2.4实现零宕机升级集群,无需担心组件出现短暂故障!

在瞬息万变的技术世界中,为用户提供持续不断、快速的创新至关重要。Kubernetes是一个极佳引擎,可以在云端、本地以及边缘驱动创新。因此,Kubernetes及其整个生态系统本身迭代十分迅速,让Kubernetes保持最新状态以确保安全和新功能的使用对于任何部署来说都至关重要。 什么是零宕机升级集群 Rancher 2.4已于上周GA,在Rancher...

Kubernetes 系列(六):Kubernetes部署Prometheus监控

1.创建命名空间 新建一个yaml文件命名为monitor-namespace.yaml,写入如下内容: apiVersion: v1 kind: Namespace metadata: name: monitoring 执行如下命令创建monitoring命名空间: kubectl create -f monitor-namespace.yam...

Kubernetes基础:查看状态、管理服务

目标 了解Kubernetes Pod 了解Kubernetes Node 学习如何调试部署问题 了解如何通过Service暴露应用 Kubernetes Pods 在Kubernetes中创建一个Deployment 部署就会在Node上创建一个Pod,Pod是Kubernetes中对于一组容器以及与容器相关的资源的集合。Pod中的容器会共享IP和端...