基础服务

本文基于centos7.5部署

规划

10.8.28.200
master-VIP
10.8.31.84
k8s-test-master-1
10.8.152.149
k8s-test-master-2
10.8.191.56
k8s-test-master-3
10.8.85.173
k8s-test-node-1

将host信息写入hosts文件

系统调优

 # 关闭swap
swapoff -a
yes | cp /etc/fstab /etc/fstab_bak
cat /etc/fstab_bak |grep -v swap > /etc/fstab # 关闭selinux
setenforce \
&& sed -i 's/^SELINUX=.*$/SELINUX=disabled/' /etc/selinux/config \
&& getenforce # 关闭防火墙
systemctl stop firewalld \
&& systemctl daemon-reload \
&& systemctl disable firewalld \
&& systemctl daemon-reload \
&& systemctl status firewalld yum install -y iptables-services \
&& systemctl stop iptables \
&& systemctl disable iptables \
&& systemctl status iptables # 系统参数调优
[ ! -e "/etc/sysctl.conf_bk" ] && /bin/mv /etc/sysctl.conf{,_bk} \
&& cat > /etc/sysctl.conf << EOF
fs.file-max=
fs.nr_open=
net.ipv4.tcp_max_tw_buckets =
net.ipv4.tcp_sack =
net.ipv4.tcp_window_scaling =
net.ipv4.tcp_rmem =
net.ipv4.tcp_wmem =
net.ipv4.tcp_max_syn_backlog =
net.core.netdev_max_backlog =
net.core.somaxconn =
net.core.wmem_default =
net.core.rmem_default =
net.core.rmem_max =
net.core.wmem_max =
net.ipv4.tcp_timestamps =
net.ipv4.tcp_fin_timeout =
net.ipv4.tcp_synack_retries =
net.ipv4.tcp_syn_retries =
net.ipv4.tcp_syncookies =
#net.ipv4.tcp_tw_len =
net.ipv4.tcp_tw_reuse =
net.ipv4.tcp_mem =
net.ipv4.tcp_max_orphans =
net.ipv4.ip_local_port_range =
#net.nf_conntrack_max =
#net.netfilter.nf_conntrack_max =
#net.netfilter.nf_conntrack_tcp_timeout_close_wait =
#net.netfilter.nf_conntrack_tcp_timeout_fin_wait =
#net.netfilter.nf_conntrack_tcp_timeout_time_wait =
#net.netfilter.nf_conntrack_tcp_timeout_established =
EOF
sysctl -p # k8s部分参数调优
cat <<EOF > /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables =
net.bridge.bridge-nf-call-iptables =
net.ipv4.ip_nonlocal_bind =
net.ipv4.ip_forward =
vm.swappiness=
EOF
sysctl -p /etc/sysctl.d/k8s.conf # 开启ipvs
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 /etc/sysconfig/modules/ipvs.modules && bash /etc/sysconfig/modules/ipvs.modules && lsmod | grep -e ip_vs -e nf_conntrack_ipv4 # 制作镜像(正常安装无需执行)
echo "mkdir -p /data/docker" >> /etc/rc.d/rc.local
echo "swapoff -a" >> /etc/rc.d/rc.local

安装docker

 # 拉取rpm文件,国内可以从阿里源下载
mkdir -p /data/init/docker && cd /data/init/docker
wget https://download.docker.com/linux/centos/7/x86_64/stable/Packages/docker-ce-18.09.8-3.el7.x86_64.rpm
wget https://download.docker.com/linux/centos/7/x86_64/stable/Packages/containerd.io-1.2.6-3.3.el7.x86_64.rpm
wget https://download.docker.com/linux/centos/7/x86_64/stable/Packages/docker-ce-cli-18.09.8-3.el7.x86_64.rpm
yum install -y containerd.io-1.2.-3.3.el7.x86_64.rpm docker-ce-cli-18.09.-.el7.x86_64.rpm docker-ce-18.09.-.el7.x86_64.rpm # 创建docker目录,修改docker运行参数
mkdir /data/docker
cat << EOF >/etc/sysconfig/docker
INSECURE_REGISTRY="--insecure-registry=harbor.test123.net"
DOCKER_NETWORK_OPTIONS="-H fd:// --containerd=/run/containerd/containerd.sock"
DOCKER_STORAGE_OPTIONS="--data-root=/data/docker --storage-driver=overlay2"
EOF # 编辑system unit文件
cat << EOF > /usr/lib/systemd/system/docker.service
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
BindsTo=containerd.service
After=network-online.target firewalld.service containerd.service
Wants=network-online.target
Requires=docker.socket [Service]
Type=notify
EnvironmentFile=-/etc/sysconfig/docker
ExecStart=/usr/bin/dockerd \\
\$INSECURE_REGISTRY \\
\$DOCKER_STORAGE_OPTIONS \\
\$DOCKER_NETWORK_OPTIONS
ExecReload=/bin/kill -s HUP \$MAINPID
TimeoutSec=
RestartSec=
Restart=always
StartLimitBurst=
StartLimitInterval=60s
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
TasksMax=infinity
Delegate=yes
KillMode=process [Install]
WantedBy=multi-user.target EOF # 启动docker
systemctl daemon-reload
systemctl restart docker.service
systemctl enable docker.service # 验证
docker info
docker version

安装kubeadm/kubelet/kubectl(选装)

 cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64
enabled=
gpgcheck=
repo_gpgcheck=
gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
EOF yum install -y kubelet kubeadm kubectl --disableexcludes=kubernetes systemctl enable --now kubelet

预下载镜像

 kubeadm config images pull
[config/images] Pulled k8s.gcr.io/kube-apiserver:v1.15.1
[config/images] Pulled k8s.gcr.io/kube-controller-manager:v1.15.1
[config/images] Pulled k8s.gcr.io/kube-scheduler:v1.15.1
[config/images] Pulled k8s.gcr.io/kube-proxy:v1.15.1
[config/images] Pulled k8s.gcr.io/pause:3.1
[config/images] Pulled k8s.gcr.io/etcd:3.3.
[config/images] Pulled k8s.gcr.io/coredns:1.3.

master-1到其他master免密

 # master-1执行
ssh-keygen
ssh-copy-id -i /root/.ssh/id_rsa.pub -p root@k8s-test-master-
ssh-copy-id -i /root/.ssh/id_rsa.pub -p root@k8s-test-master-

kubeadm安装集群系列-1.基础服务安装的更多相关文章

  1. kubeadm安装集群系列(kubeadm 1.15.1)

    kubeadm已经进入GA阶段,所以尝试使用kubeadm从零开始安装高可用的Kubernetes集群,并记录下过程和所有坑 本文基于kubeadm 1.15.1 目录 kubeadm安装集群系列-1 ...

  2. kubeadm安装集群系列-4.证书更新

    证书更新 默认证书一年有效期 一旦证书过期,使用kubectl时会出现如下提示:`Unable to connect to the server: x509: certificate has expi ...

  3. kubeadm安装集群系列-2.Master高可用

    Master高可用安装 VIP负载均衡可以使用haproxy+keepalive实现,云上用户可以使用对应的ULB实现 准备kubeadm-init.yaml文件 apiVersion: kubead ...

  4. kubeadm安装集群系列-3.添加工作节点

    添加工作节点 worker通过kubeadm join加入集群,加入所需的集群的token默认24小时过期 查看Token kubeadm token list # 如果失效创建一个新的 kubead ...

  5. kubeadm安装集群系列-5.其他操作

    常用的一些操作记录 imagePullSecrets kubectl -n [namespace] create secret docker-registry regsecret --docker-s ...

  6. mycat数据库集群系列之数据库多实例安装

    mycat数据库集群系列之数据库多实例安装 最近在梳理数据库集群的相关操作,现在花点时间整理一下关于mysql数据库集群的操作总结,恰好你又在看这一块,供一份参考.本次系列终结大概包括以下内容:多数据 ...

  7. Blazor+Dapr+K8s微服务之基于WSL安装K8s集群并部署微服务

         前面文章已经演示过,将我们的示例微服务程序DaprTest1部署到k8s上并运行.当时用的k8s是Docker for desktop 自带的k8s,只要在Docker for deskto ...

  8. Linux集群配置ntp时间同步服务

    集群中时间不同步有可能会让大数据的应用程序运行混乱,造成不可预知的问题,比如Hbase,当时间差别过大时就会挂掉,所以在大数据集群中,ntp服务,应该作为一种基础的服务,以下在演示在CentOS 7. ...

  9. 剖析Elasticsearch集群系列第一篇 Elasticsearch的存储模型和读写操作

    剖析Elasticsearch集群系列涵盖了当今最流行的分布式搜索引擎Elasticsearch的底层架构和原型实例. 本文是这个系列的第一篇,在本文中,我们将讨论的Elasticsearch的底层存 ...

随机推荐

  1. Java反射的使用

    反射的概述 1.Java反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法. 2.对于任意一个对象,都能调用它的任意一个方法和属性. 3.通过动态获取的信息以及动态调用对象的方法 ...

  2. [AngularJS] Decorator pattern for code reuse

    Imaging you have a large application, inside this large application you have many small individual a ...

  3. Spring中,请求参数处理

    Spring中,Controller里,获取请求数据有多种情况 在使用@RequestParam的方式获取请求中的参数时, 如果没有设置required这个属性,或者主动设置为true,则意味着这个参 ...

  4. FtpHelper.cs

    网上找了好多,感觉还是自己这个使用起来方便点,记录一下! using System; using System.Collections; using System.IO; using System.L ...

  5. cropbox.js 头像裁剪插件

    cropbox.js 一个轻量级和简单的JavaScript,Jquery,YUI插件来裁剪您的头像. 特征 支持dataUrl显示图像(函数getDataURL) 支持Blob上传图片(函数getB ...

  6. 利用ceph-deploy部署ceph存储集群

    一.环境准备 创建两台主机,ip地址和主机名如下 192.168.2.100,主机名ceph-1 192.168.2.101,主机名ceph-2 每个主机 新增加一块数据盘,分区根据自己需要分区即可, ...

  7. windos系统下使tomcat按天生成控制台日志catalina.out

    windos系统下的tomcat默认不会记录控制台catalina.out日志,只有访问日志,不便于排错 修改启动文件 1.打开bin下面的startup.bat文件,把 call "%EX ...

  8. 使用 suspend 和 resume 暂停和恢复线程

    suspend 和 resume 的使用 在 Thread 类中有这样两个方法:suspend 和 resume,这两个方法是成对出现的. suspend() 方法的作用是将一个线程挂起(暂停), r ...

  9. spring MVC 拦截有几种实现方式

    spring MVC 拦截有几种实现方式 实现HandelInterceptor接口方式        继承HandelInterceptor 的方式.一般有这两种方式 spring 如何走单元测式 ...

  10. vscode 设置 eclipse 快捷键

    点击安装之后,默认就是要ecliplse快捷键了 注意:部分快捷键可能会由于和原来的冲突而失效,例如快速在“下面插入行” ,我还是不能使用ecliplse的Shift+Enter,而要用Ctrl+En ...