Centos 7.x 线上安装 Kubernetes

镜像下载、域名解析、时间同步请点击阿里云开源镜像站

安装依赖包

yum install -y conntrack ntpdate ntp ipvsadm ipset jq iptables curl systat libseccomp wget vim net-tools git iptables-services

关闭防火墙,为iptables设置规则

systemctl stop firewalld && systemctl disable firewalld && systemctl status firewalld
systemctl start iptables && systemctl enable iptables && iptables -F && service iptables save

关闭SWAP 和 SELINUX

swapoff -a && sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab
setenforce 0 && sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config

调整内核参数,对于k8s

cat > /etc/sysctl.d/kubernetes.conf << EOF
net.bridge.bridge-nf-call-iptables=1   #&#x5F00;&#x542F;&#x7F51;&#x6865;&#x6A21;&#x5F0F;
net.bridge.bridge-nf-call-ip6tables=1   #&#x5F00;&#x542F;&#x7F51;&#x6865;&#x6A21;&#x5F0F;
net.ipv4.ip_forward=1
net.ipv4.tcp_tw_recycle=0
vm.swappiness=0        #&#x7981;&#x6B62;&#x4F7F;&#x7528; swap &#x7A7A;&#x95F4;, &#x53EA;&#x6709;&#x5F53;&#x7CFB;&#x7EDF; OOM &#x65F6;&#x624D;&#x5141;&#x8BB8;&#x4F7F;&#x7528;&#x5B83;
vm.overcommit_memory=1    #&#x4E0D;&#x68C0;&#x67E5;&#x7269;&#x7406;&#x5185;&#x5B58;&#x662F;&#x5426;&#x591F;&#x7528;
vm.panic_on_oom=0         #&#x5F00;&#x542F;OOM
fs.inotify.max_user_instances=8192
fs.inotify.max_user_watches=1048576
fs.file-max=52706963
fs.nr_open=52706963
net.ipv6.conf.all.disable_ipv6=1   #&#x5173;&#x95ED;IPV6&#x534F;&#x8BAE;
net.netfilter.nf_conntrack_max=2310720
EOF

sysctl -p /etc/sysctl.d/kubernetes.conf

调整系统时区

&#x8BBE;&#x7F6E;&#x7CFB;&#x7EDF;&#x65F6;&#x533A;&#x4E3A; &#x4E2D;&#x56FD;/&#x4E0A;&#x6D77;
timedatectl set-timezone Asia/Shanghai

关闭系统不需要服务,postfix是邮件服务

systemctl stop postfix && systemctl disable postfix

设置rsyslogd 和 systemd journald

&#x521B;&#x5EFA;&#x6301;&#x4E45;&#x5316;&#x4FDD;&#x5B58;&#x65E5;&#x5FD7;&#x76EE;&#x5F55;
mkdir -p /var/log/journal
&#x521B;&#x5EFA;&#x914D;&#x7F6E;&#x6587;&#x4EF6;&#x5B58;&#x653E;&#x76EE;&#x5F55;
mkdir -p /etc/systemd/journald.conf.d

&#x521B;&#x5EFA;&#x914D;&#x7F6E;&#x6587;&#x4EF6;
cat > /etc/systemd/journald.conf.d/99-prophet.conf << EOF
[Journal]
#&#x6301;&#x4E45;&#x5316;&#x4FDD;&#x5B58;&#x5230;&#x78C1;&#x76D8;
Storage=persistent
#&#x538B;&#x7F29;&#x5386;&#x53F2;&#x65E5;&#x5FD7;
Compress=yes
SyncIntervalSec=5m
RateLimitInterval=30s
RateLimitBurst=1000
#&#x6700;&#x5927;&#x5360;&#x7528;&#x7A7A;&#x95F4;10G
SystemMaxUse=10G
#&#x5355;&#x65E5;&#x5FD7;&#x6587;&#x4EF6;&#x6700;&#x5927;200M
SystemMaxFileSize=200M
#&#x65E5;&#x5FD7;&#x4FDD;&#x5B58;&#x65F6;&#x95F4;2&#x5468;
MaxRetentionSec=2week
#&#x4E0D;&#x5C06;&#x65E5;&#x5FD7;&#x8F6C;&#x53D1;&#x5230;syslog
ForwardToSyslog=no
EOF

&#x91CD;&#x542F;journald
systemctl restart systemd-journald

kube-proxy开启ipvs的前置条件

modprobe br_netfilter

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

安装 Docker 软件

&#x914D;&#x7F6E;daemon
cat > /etc/docker/daemon.json << EOF
{
    "exec-opts": ["native.cgroupdriver=systemd"],
    "log-driver": "json-file",
    "log-opts": {
        "max-size": "100m"
    }
}
EOF
&#x91CD;&#x542F;docker
systemctl daemon-reload && systemctl restart docker

安装 Kubeadm (主从配置)

&#x914D;&#x7F6E;yum&#x6E90;
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
&#x5B89;&#x88C5; kubeadm &#x521D;&#x59CB;&#x5316;&#x5DE5;&#x5177;&#xFF0C;kubectl &#x547D;&#x4EE4;&#x884C;&#x7BA1;&#x7406;&#x5DE5;&#x5177;&#xFF0C;kubelet
yum -y install kubeadm-1.15.1 kubectl-1.15.1 kubelet-1.15.1
&#x8BBE;&#x7F6E;&#x5F00;&#x673A;&#x81EA;&#x542F;
systemctl enable kubelet

初始化主节点

注意:
1.advertiseAddress需要更换为master服务器的ip地址

&#x6253;&#x5370;&#x9ED8;&#x8BA4;&#x7684;&#x521D;&#x59CB;&#x5316;&#x6587;&#x4EF6;&#xFF0C;&#x6253;&#x5370;&#x5230;kubeadm-init.yaml
kubeadm config print init-defaults > kubeadm-init.yaml
&#x4FEE;&#x6539;
cat > kubeadm-init.yaml << EOF
apiVersion: kubeadm.k8s.io/v1beta2
bootstrapTokens:
- groups:
  - system:bootstrappers:kubeadm:default-node-token
  token: abcdef.0123456789abcdef
  ttl: 24h0m0s
  usages:
  - signing
  - authentication
kind: InitConfiguration
localAPIEndpoint:
  advertiseAddress: xx.xx.xx.xx   # master&#x8282;&#x70B9;&#x7684;IP&#x5730;&#x5740;
  bindPort: 6443
nodeRegistration:
  criSocket: /var/run/dockershim.sock
  name: master
  taints:
  - effect: NoSchedule
    key: node-role.kubernetes.io/master
apiVersion: kubeproxy.config.k8s.io/v1alpha1
kind: KubeProxyConfiguration
featureGates:
  SupportIPVSProxyMode: true
mode: ipvs
EOF
&#x542F;&#x52A8;
kubeadm init --config=kubeadm-init.yaml | tee kubeadm-init.log

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

mkdir -p /root/install-k8s/core
mv /root/kubeadm-init.* /root/install-k8s/core

安装 flannel

mkdir -p /root/install-k8s/plugin/flannel
cd /root/install-k8s/plugin/flannel
wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
kubectl apply -f /root/install-k8s/plugin/flannel/kube-flannel.yml

本文转自:https://blog.csdn.net/weixin_45456679/article/details/123423237

Original: https://www.cnblogs.com/helong-123/p/16053466.html
Author: 萌褚
Title: Centos 7.x 线上安装 Kubernetes

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/523956/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • linux制作iso文件

    使用mkisofs工具 *基础用法 [root@localhost ~]# yum -y install mkisofs [root@localhost ~]# mkisofs -…

    Linux 2023年6月6日
    076
  • 标签泄露 Label leaking

    404. 抱歉,您访问的资源不存在。 可能是网址有误,或者对应的内容被删除,或者处于私有状态。 代码改变世界,联系邮箱 contact@cnblogs.com 园子的商业化努力-困…

    Linux 2023年6月7日
    093
  • C盘空间怎么不够了?原来杀毒软件隔离区太大了

    打开小红伞的隔离区,文件全选,删除,居然一下多出20个G. C盘空间怎么不够了?原来杀毒软件隔离区太大了 麻了。打开小红伞的隔离区,文件全选,删除,一下多出20个G. 还有一个比较…

    Linux 2023年6月6日
    0115
  • mit6.824 笔记 一

    分布式是复杂的系统再考虑分布式系统前应该尽可能尝试其他方法。 人们使用大量的相互协作的计算机驱动力是: 人们需要获得更高的计算性能。可以这么理解这一点,(大量的计算机意味着)大量的…

    Linux 2023年6月7日
    0108
  • docker 部署etcd

    原文链接:https://www.zhoubotong.site/post/77.html安装docker-compose这里就不介绍了,直接进入正题:创建etcd数据目录(根据需…

    Linux 2023年6月6日
    0110
  • C++ 之多态总结

    前言 最近为了完成数据库系统的实验,又复习起了《C++ Primer》,上一次看这本巨著也是大二下的六月份,那时看面向对象程序编程这一章还云里雾里的,没有领会多态的奥妙,学完 Ja…

    Linux 2023年6月7日
    088
  • windows下使用route添加路由

    404. 抱歉,您访问的资源不存在。 可能是网址有误,或者对应的内容被删除,或者处于私有状态。 代码改变世界,联系邮箱 contact@cnblogs.com 园子的商业化努力-困…

    Linux 2023年6月7日
    0106
  • IDEA如何切换到括号外

    一般我们输入完括号后都会习惯性Enter或者Shift + Enter切换到括号外,结果却变成了: public void nothing() Enter → public voi…

    Linux 2023年6月13日
    090
  • 记录XorDDos木马清理步骤

    1.检查 查看定时任务文件发现有两个异常定时任务 [root@manage ~]# cat /etc/crontab user-name command to be execute…

    Linux 2023年6月7日
    099
  • Git的使用以及常用命令(详解)

    一、 版本控制工具 什么是版本控制系统? 版本控制系统(Version Control System):是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统。版本控…

    Linux 2023年6月6日
    0111
  • 《拉钩课程 – 重学操作系统 – Linux 指令入门》

    1、进程是什么?进程是应用的执行副本。应用的可执行文件是放在文件系统里,把可执行文件启动,就会在操作系统里(具体来说是内存中)形成一个应用的副本,这个副本就是进程。 2、Linux…

    Linux 2023年5月27日
    0110
  • 在Ubuntu机器上使用war包安装Jenkins

    因为一些需求需要迁移之前使用的Jenkins,原来是按照官方文档使用apt方式安装的,这次搬迁后的机器由于默认不通外网(可以通过代理走外网),因此趁此机会,尝试改用war包方式安装…

    Linux 2023年6月6日
    0116
  • Linux常用命令

    Linux常用命令 在学习瑞吉外卖项目课程中自己做的一个linux常用命令的小笔记便于以后复习使用,仅供参考。 文件目录操作命令 pwd:显示该目录或者文件的路径 ls命令 ls:…

    Linux 2023年6月7日
    087
  • Nginx/Tengine安装配置详解

    1 概念 Nginx (“engine x”) 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器。官方测试…

    Linux 2023年6月14日
    093
  • Linux上安装tomcat

    参考https://www.digitalocean.com/community/tutorials/how-to-install-apache-tomcat-8-on-cento…

    Linux 2023年6月6日
    096
  • Ubuntu Typora安装

    Ubuntn Typora安装 现在好像开始收费了,网上给的方法都是从官网下载的,感觉迟早不能用,因为要钱了 官网好像给的安装方法如下,可是好像不太好用 or run: sudo …

    Linux 2023年6月14日
    099
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球