Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >K8s 1.18.2 kubeadm安装

K8s 1.18.2 kubeadm安装

作者头像
院长技术
发布于 2022-03-11 04:13:59
发布于 2022-03-11 04:13:59
59000
代码可运行
举报
文章被收录于专栏:院长运维开发院长运维开发
运行总次数:0
代码可运行

1、初始化系统:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
systemctl stop firewalld && systemctl disable firewalld
setenforce 0  && sed -i "s/^SELINUX=.*/SELINUX=disabled/g" /etc/selinux/config
swapoff -a &&  sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab
ulimit -SHn 65535

2、时间同步(克隆机可以忽略) 其他时间同步方式也可以

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
yum install chrony -y
systemctl enable chronyd
systemctl start chronyd
chronyc sources

3、设置内核参数:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cat >> /etc/sysctl.d/k8s.conf << EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
vm.swappiness=0
EOF

4、ipvs安装:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
yum install ipvsadm ipset sysstat conntrack libseccomp -y

cat > /etc/sysconfig/modules/ipvs.modules <

5、主机名设置:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
hostnamectl set-hostname xxxxx
exec bash
主机名注入/etc/hosts文件

6、docker安装:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum install docker-ce-19.03.8-3.el7 -y
systemctl start docker
systemctl enable docker
curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361db2.m.daocloud.io
systemctl restart docker

7、k8s组件安装:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cat < /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=http://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
http://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF

yum install -y kubelet-1.18.2-0 kubeadm-1.18.2-0 kubectl-1.18.2-0 --disableexcludes=kubernetes
systemctl enable kubelet.service

8、初始化节点(master操作):

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
kubeadm init \
    --apiserver-advertise-address=10.20.0.240 \
    --image-repository registry.cn-hangzhou.aliyuncs.com/google_containers \
    --kubernetes-version v1.18.2 \
    --pod-network-cidr=10.244.0.0/16 \
    --service-cidr=100.96.0.0/12
    
    
  mkdir -p $HOME/.kube
  sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
  sudo chown $(id -u):$(id -g) $HOME/.kube/config
  
  
说明: --apiserver-advertise-address  k8s-master的ip

9、加入node节点:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
kubeadm join xxxxxxxxxx:6443 --token abcdef.0123456789abcdef \
    --discovery-token-ca-cert-hash sha256:b1cc55529671e40ff54fcbaa01d06d321878a93406614e4abbdf619bd7a7e3a9
说明: 此步骤以k8s-master节点操作的的提示为准(第七步的操作)

10、安装网络插件flannel

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
文档:k8s 1.18 flannel.yaml
apiVersion: policy/v1beta1
kind: PodSecurityPolicy
metadata:
  name: psp.flannel.unprivileged
  annotations:
    seccomp.security.alpha.kubernetes.io/allowedProfileNames: docker/default
    seccomp.security.alpha.kubernetes.io/defaultProfileName: docker/default
    apparmor.security.beta.kubernetes.io/allowedProfileNames: runtime/default
    apparmor.security.beta.kubernetes.io/defaultProfileName: runtime/default
spec:
  privileged: false
  volumes:
  - configMap
  - secret
  - emptyDir
  - hostPath
  allowedHostPaths:
  - pathPrefix: "/etc/cni/net.d"
  - pathPrefix: "/etc/kube-flannel"
  - pathPrefix: "/run/flannel"
  readOnlyRootFilesystem: false
  # Users and groups
  runAsUser:
    rule: RunAsAny
  supplementalGroups:
    rule: RunAsAny
  fsGroup:
    rule: RunAsAny
  # Privilege Escalation
  allowPrivilegeEscalation: false
  defaultAllowPrivilegeEscalation: false
  # Capabilities
  allowedCapabilities: ['NET_ADMIN', 'NET_RAW']
  defaultAddCapabilities: []
  requiredDropCapabilities: []
  # Host namespaces
  hostPID: false
  hostIPC: false
  hostNetwork: true
  hostPorts:
  - min: 0
    max: 65535
  # SELinux
  seLinux:
    # SELinux is unused in CaaSP
    rule: 'RunAsAny'
---
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: flannel
rules:
- apiGroups: ['extensions']
  resources: ['podsecuritypolicies']
  verbs: ['use']
  resourceNames: ['psp.flannel.unprivileged']
- apiGroups:
  - ""
  resources:
  - pods
  verbs:
  - get
- apiGroups:
  - ""
  resources:
  - nodes
  verbs:
  - list
  - watch
- apiGroups:
  - ""
  resources:
  - nodes/status
  verbs:
  - patch
---
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: flannel
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: flannel
subjects:
- kind: ServiceAccount
  name: flannel
  namespace: kube-system
---
apiVersion: v1
kind: ServiceAccount
metadata:
  name: flannel
  namespace: kube-system
---
kind: ConfigMap
apiVersion: v1
metadata:
  name: kube-flannel-cfg
  namespace: kube-system
  labels:
    tier: node
    app: flannel
data:
  cni-conf.json: |
    {
      "name": "cbr0",
      "cniVersion": "0.3.1",
      "plugins": [
        {
          "type": "flannel",
          "delegate": {
            "hairpinMode": true,
            "isDefaultGateway": true
          }
        },
        {
          "type": "portmap",
          "capabilities": {
            "portMappings": true
          }
        }
      ]
    }
  net-conf.json: |
    {
      "Network": "10.244.0.0/16",
      "Backend": {
        "Type": "vxlan"
      }
    }
---
apiVersion: apps/v1
kind: DaemonSet
metadata:
  name: kube-flannel-ds
  namespace: kube-system
  labels:
    tier: node
    app: flannel
spec:
  selector:
    matchLabels:
      app: flannel
  template:
    metadata:
      labels:
        tier: node
        app: flannel
    spec:
      affinity:
        nodeAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
            nodeSelectorTerms:
            - matchExpressions:
              - key: kubernetes.io/os
                operator: In
                values:
                - linux
      hostNetwork: true
      priorityClassName: system-node-critical
      tolerations:
      - operator: Exists
        effect: NoSchedule
      serviceAccountName: flannel
      initContainers:
      - name: install-cni
        image: quay.io/coreos/flannel:v0.14.0-rc1
        command:
        - cp
        args:
        - -f
        - /etc/kube-flannel/cni-conf.json
        - /etc/cni/net.d/10-flannel.conflist
        volumeMounts:
        - name: cni
          mountPath: /etc/cni/net.d
        - name: flannel-cfg
          mountPath: /etc/kube-flannel/
      containers:
      - name: kube-flannel
        image: quay.io/coreos/flannel:v0.14.0-rc1
        command:
        - /opt/bin/flanneld
        args:
        - --ip-masq
        - --kube-subnet-mgr
        resources:
          requests:
            cpu: "100m"
            memory: "50Mi"
          limits:
            cpu: "100m"
            memory: "50Mi"
        securityContext:
          privileged: false
          capabilities:
            add: ["NET_ADMIN", "NET_RAW"]
        env:
        - name: POD_NAME
          valueFrom:
            fieldRef:
              fieldPath: metadata.name
        - name: POD_NAMESPACE
          valueFrom:
            fieldRef:
              fieldPath: metadata.namespace
        volumeMounts:
        - name: run
          mountPath: /run/flannel
        - name: flannel-cfg
          mountPath: /etc/kube-flannel/
      volumes:
      - name: run
        hostPath:
          path: /run/flannel
      - name: cni
        hostPath:
          path: /etc/cni/net.d
      - name: flannel-cfg
        configMap:
          name: kube-flannel-cfg
---
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
K8s版本V1.18.0单节点Master部署
–apiserver-advertise-address:通告侦听地址 –image-repository:指定镜像地址使用阿里云的,默认会使用谷歌镜像 –kubernetes-version:指定当前的kubernetes的版本 –pod-network-cidr=10.244.0.0/16:flannel网络的固定地址范围
互联网-小阿宇
2022/11/21
3820
k8s 学习(1)——CentOS 系统搭建 k8s 环境
最近准备系统地学习一下 k8s,所以第一件事就是搭建环境,本篇文章就来记录一下自己在 CentOS 系统上搭建 k8s 环境的经历。
Hopetree
2022/09/26
1.2K0
CentOS 搭建 K8S 环境教程,一次性成功,收藏了!
最新版的v1.16.2试过了,一直无法安装完成,安装到kubeadm init那一步执行后,报了很多错,如:node xxx not found等。centos7都重装了几次,还是无法解决。用了一天都没安装完,差点放弃。后来在网上搜到的安装教程基本都是v1.16.0的,我不太相信是v1.16.2的坑所以先前没打算降级到v1.16.0。没办法了就试着安装v1.16.0版本,竟然成功了。记录在此,避免后来者踩坑。
芋道源码
2020/10/09
11.1K0
CentOS 搭建 K8S 环境教程,一次性成功,收藏了!
k8s最新版本安装_我的世界1.17版本下载
11.如果部署出现问题,解决问题之后再使用kubeadm清除一次再重新执行上面命令。
全栈程序员站长
2022/11/10
2760
k8s最新版本安装_我的世界1.17版本下载
入门K8s:一键脚本搭建Linux服务器集群
好久没有写系列博客了,本文主要是对网上文章的总结篇,主要是将安装和运行代码做了一次真机实验,亲测可用。文章内包含的脚本和代码,多来自于网络,也有我自己的调整和配置,文章末尾对参考的文献做了列举,方便大家参考。
老张的哲学
2022/04/11
1.6K0
k8sV1.18.0版本一键部署脚本(全部代码在下方)
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/101912.html原文链接:
全栈程序员站长
2021/06/08
4140
k8sV1.18.0版本一键部署脚本(全部代码在下方)
kubernetes安装及集群搭建
环境准备 为了修改文件传输文件的方便,将主机名更改为安装环境所述的node,并写入hosts文件
互联网-小阿宇
2022/11/21
5010
kubernetes安装及集群搭建
kubernetes教程入门_centos7搭建k8s集群
kubernetes本质是一组服务器集群,可以在集群的每个节点上运行特定的程序,来对节点中的容器进行管理。
全栈程序员站长
2022/09/22
1.5K0
kubernetes教程入门_centos7搭建k8s集群
.Net微服务实战之Kubernetes的搭建与使用
  说到微服务就得扯到自动化运维,然后别人就不得不问你用没用上K8S。K8S的门槛比Docker Compose、Docker Swarm高了不少,无论是概念上还是在实施搭建时。我自己也经过了多次的实践,整理出一套顺利部署的流程。
陈珙
2020/08/12
9130
.Net微服务实战之Kubernetes的搭建与使用
十分钟搭建好K8S集群
虽然网上有大量从零搭建K8S的文章,但大都针对老版本,若直接照搬去安装最新的1.20版本会遇到一堆问题。故此将我的安装步骤记录下来,希望能为读者提供copy and paste式的集群搭建帮助。
陶辉
2020/12/23
1K0
十分钟搭建好K8S集群
Kubernetes/K8S部署之kubeadm
修改镜像地址:(有可能默认不能拉取,确保能够访问到quay.io这个registery,否则修改如下内容)
码客说
2021/03/04
1.2K0
(二)Kubernetes安装
Kubernetes集群大体分为一主多从和多主多从两大类: 一主多从:一个master节点和多个node节点,搭建简单,存在单点故障,一般用于测试环境 多主多从:多个master节点和多个node节点,搭建复杂,安全性高,用于生产环境
云叶知秋
2021/12/06
1.2K0
使用kubeadm快速部署一个K8s集群
Kubeadm 是一个 K8s 部署工具,提供 kubeadm init 和 kubeadm join,用于快速部署 Kubernetes 集群。
鱼找水需要时间
2023/08/03
1K0
使用kubeadm快速部署一个K8s集群
安装kubernetes
1.1 环境准备介绍 角色 IP地址 操作系统 配置 kubernetes docker master 192.168.199.100 centos7.x 2核/2G/50G 1.18.0 18.06.3 node1 192.168.199.101 centos7.x 2核/2G/50G 1.18.0 18.06.3 node2 192.168.199.102 centos7.x 2核/2G/50G 1.18.0 18.06.3 1.2 准备工作 1.2.1 关闭防火墙 systemctl
ruochen
2021/12/05
1.7K0
kubernetes - kubeadm
首先Kubernetes首字母为K,末尾为s,中间一共有8个字母,所以简称K8s。
断痕
2021/01/21
4220
kubernetes - kubeadm
k8s集群部署高可用完整版
环境规划 k8s-master1 192.168.0.131 kube-apiserver kube-controller-manager kube-scheduler etcd k8s-master2 192.168.0.132 kube-apiserver kube-controller-manager kube-scheduler k8s-node01 192.168.0.133 kubelet kube-proxy docker etcd k8s-node02 192.168.0.134 kubel
yuezhimi
2020/09/30
1.4K0
k8s集群部署高可用完整版
Kubeadm高可用集群安装-v1.15.3
创建高可用首先先有一个 Master 节点,然后再让其他服务器加入组成三个 Master 节点高可用,然后再将工作节点 Node 加入。
院长技术
2020/06/12
5310
centos7通过kubeadm安装k8s1.27.1版本
CentOS 7.x 系统自带的 3.10.x 内核存在一些 Bugs,导致运行的 Docker、Kubernetes 不稳定,还有会造成kube-proxy不能转发流量
dgds
2023/05/17
2K1
Kubernetes(k8s)-网络插件(Flannel)
作者介绍:简历上没有一个精通的运维工程师。下面的思维导图也是预计更新的内容和当前进度(不定时更新)。
运维小路
2025/03/10
2220
Kubernetes(k8s)-网络插件(Flannel)
二进制搭建Kubernetes集群(最新v1.16.0版本)
下载地址:https://github.com/coreos/etcd/releases
仙人技术
2020/04/29
2K0
二进制搭建Kubernetes集群(最新v1.16.0版本)
相关推荐
K8s版本V1.18.0单节点Master部署
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验