配置K8s

#####################################################################################
# 配置 ----------------------------------------------------------START
# 主节点
HOST="192.168.2.151"
HOST_NAME="master"
# 从节点
declare -A SLAVES
SLAVES=(
[slave1]="192.168.2.152"
[slave2]="192.168.2.153"
)
# 如果是Harbor,则是配置的Host
DOCKERREPOHOST="wosperry.com.cn:8704" #必须先 docker login 192.168.124.5 登录自己仓库#
DOCKERREPONAME="google_containers"
# 配置 -----------------------------------------------------------END
##################################################################################### # 随便新建一个文件夹 -----------------------------------------------START
mkdir /k8s
cd /k8s
# 随便新建一个文件夹 -----------------------------------------------END # 同步时间 -------------------------------------------------------START
yum -y install chrony
systemctl start chronyd && systemctl enable chronyd
chronyc sources
# 同步时间 -------------------------------------------------------END # 设置 Host Name ------------------------------------------------START
hostnamectl set-hostname $HOST_NAME
# 设置 Host Name ------------------------------------------------END # 调整 hosts ----------------------------------------------------START
TMP=""
TMP=`echo -e "${TMP}\n${HOST} ${HOST_NAME}"`
for key in $(echo ${!SLAVES[*]})
do
TMP=`echo -e "${TMP}\n${SLAVES[$key]} ${key}"`
done
cat << EOF >> /etc/hosts
${TMP}
EOF
# 查看HOST
cat /etc/hosts
# 调整 hosts ----------------------------------------------------END # 禁用SELinux和Swap ---------------------------------------------START
# 关闭swap分区【虚拟内存】并且永久关闭虚拟内存
swapoff -a && sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab
# 关闭selinux
setenforce 0 && sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config
# 禁用SELinux和Swap ----------------------------------------------END # 安装依赖软件 ---------------------------------------------------START
yum install -y conntrack ipvsadm ipset jq iptables curl sysstat libseccomp wget vim net-tools git iproute lrzsz bash-completion tree nfs-utils unzip bind-utils gcc
# 安装依赖软件 ---------------------------------------------------END # 放行端口 ------------------------------------------------------START
firewall-cmd --zone=public --add-port=6443/tcp --permanent
firewall-cmd --zone=public --add-port=2379-2380/tcp --permanent
firewall-cmd --zone=public --add-port=10250-10252/tcp --permanent
firewall-cmd --zone=public --add-port=30000-32767/tcp --permanent
# 重启
firewall-cmd --reload
# 放行端口 ------------------------------------------------------END
# 置空iptables --------------------------------------------------START
yum -y install iptables-services && systemctl start iptables && systemctl enable iptables && iptables -F && service iptables save
# 置空iptables --------------------------------------------------END # 安装 docker-ce ------------------------------------------------START
wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo
yum -y install docker-ce && systemctl enable docker && systemctl start docker
docker --version
# 安装 docker-ce ------------------------------------------------END # 配置 /etc/docker/daemon.json ----------------------------------START
mkdir -p /etc/docker cat > /etc/docker/daemon.json <<EOF
{
"registry-mirrors": [
"https://4534gx72.mirror.aliyuncs.com",
"https://1nj0zren.mirror.aliyuncs.com",
"https://docker.mirrors.ustc.edu.cn",
"http://f1361db2.m.daocloud.io",
"https://registry.docker-cn.com"
],
"insecure-registries": [
"$DOCKERREPOHOST"
]
}
EOF systemctl daemon-reload && systemctl restart docker
# 配置 /etc/docker/daemon.json ----------------------------------END # 调整内核参数 ---------------------------------------------------START
cat > kubernetes.conf <<EOF
net.bridge.bridge-nf-call-iptables=1
net.bridge.bridge-nf-call-ip6tables=1
net.ipv4.ip_forward=1
net.ipv4.tcp_tw_recycle=0
vm.swappiness=0
vm.overcommit_memory=1
vm.panic_on_oom=0
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
net.netfilter.nf_conntrack_max=2310720
EOF # 将优化内核文件拷贝到/etc/sysctl.d/文件夹下,这样优化文件开机的时候能够被调用
cp kubernetes.conf /etc/sysctl.d/kubernetes.conf
# 手动刷新,让优化文件立即生效
sysctl -p /etc/sysctl.d/kubernetes.conf
# 调整内核参数 ---------------------------------------------------END # 创建路径 ------------------------------------------------------START
# 创建保存日志的目录
mkdir /var/log/journal
# 创建配置文件存放目录
mkdir /etc/systemd/journald.conf.d
# 创建路径 ------------------------------------------------------END # 创建配置文件 ---------------------------------------------------START
cat > /etc/systemd/journald.conf.d/99-prophet.conf <<EOF
[Journal]
Storage=persistent
Compress=yes
SyncIntervalSec=5m
RateLimitInterval=30s
RateLimitBurst=1000
SystemMaxUse=10G
SystemMaxFileSize=200M
MaxRetentionSec=2week
ForwardToSyslog=no
EOF
# 创建配置文件 ---------------------------------------------------END # 重启systemd journald 的配置 ------------------------------------START
systemctl restart systemd-journald
# 重启systemd journald 的配置 ------------------------------------END # 打开文件数调整 --------------------------------------------------START
echo "* soft nofile 65536" >> /etc/security/limits.conf
echo "* hard nofile 65536" >> /etc/security/limits.conf
# 打开文件数调整 --------------------------------------------------END # kube-proxy 开启 ipvs 前置条件 -----------------------------------START
modprobe br_netfilter cat > /etc/sysconfig/modules/ipvs.modules <<EOF
modprobe -- ip_vs
modprobe -- ip_vs_rr
modprobe -- ip_vs_wrr
modprobe -- ip_vs_sh
modprobe -- nf_conntrack_ipv4
EOF
# 使用lsmod命令查看这些文件是否被引导
chmod 755 /etc/sysconfig/modules/ipvs.modules && bash /etc/sysconfig/modules/ipvs.modules && lsmod | grep -e ip_vs -e nf_conntrack_ipv4
# kube-proxy 开启 ipvs 前置条件 -----------------------------------END # 国内镜像配置(国内建议配置) ----------------------------------------START
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=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
# 国内镜像配置(国内建议配置) ----------------------------------------END # 安装Kubelet ----------------------------------------------------START
yum -y install kubelet kubectl kubeadm
systemctl enable kubelet && systemctl start kubelet
# 安装Kubelet ----------------------------------------------------END # 以下私服拉取镜像,不一定要这样执行,可以尝试
# kubeadm config print init-defaults > kubeadm-init.yaml
# 生成的文件
# 先尝试 kubeadm config images pull --config kubeadm-init.yaml
# 直接拉取镜像试试,如果不行再走私服
# 我遇到装不了的情况,仓库的coredns的tag不带v,而使用的带v # 不使用生成的文件
# kubeadm config print init-defaults > kubeadm-init.yaml
# 创建 kubeadm-init.yaml------------------------------------------START ####################################################################################################
# 私服开始
####################################################################################################
cat << EOF > kubeadm-init.yaml
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: ${HOST}
bindPort: 6443
nodeRegistration:
criSocket: /var/run/dockershim.sock
name: master
taints:
- effect: NoSchedule
key: node-role.kubernetes.io/master
---
apiServer:
timeoutForControlPlane: 4m0s
apiVersion: kubeadm.k8s.io/v1beta2
certificatesDir: /etc/kubernetes/pki
clusterName: kubernetes
controllerManager: {}
dns:
type: CoreDNS
etcd:
local:
dataDir: /var/lib/etcd
imageRepository: ${DOCKERREPOHOST}/${DOCKERREPONAME}
kind: ClusterConfiguration
kubernetesVersion: v1.21.0
networking:
dnsDomain: cluster.local
serviceSubnet: 10.96.0.0/12
scheduler: {}
EOF # 创建 kubeadm-init.yaml------------------------------------------END docker login $DOCKERREPOHOST # 拉取镜像并推送到自己仓库 -------------------------------------------START docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-apiserver:v1.21.0
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/kube-apiserver:v1.21.0 ${DOCKERREPOHOST}/${DOCKERREPONAME}/kube-apiserver:v1.21.0
docker push ${DOCKERREPOHOST}/${DOCKERREPONAME}/kube-apiserver:v1.21.0 docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-controller-manager:v1.21.0
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/kube-controller-manager:v1.21.0 ${DOCKERREPOHOST}/${DOCKERREPONAME}/kube-controller-manager:v1.21.0
docker push ${DOCKERREPOHOST}/${DOCKERREPONAME}/kube-controller-manager:v1.21.0 docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-scheduler:v1.21.0
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/kube-scheduler:v1.21.0 ${DOCKERREPOHOST}/${DOCKERREPONAME}/kube-scheduler:v1.21.0
docker push ${DOCKERREPOHOST}/${DOCKERREPONAME}/kube-scheduler:v1.21.0 docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-proxy:v1.21.0
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/kube-proxy:v1.21.0 ${DOCKERREPOHOST}/${DOCKERREPONAME}/kube-proxy:v1.21.0
docker push ${DOCKERREPOHOST}/${DOCKERREPONAME}/kube-proxy:v1.21.0
kubeadm config images pull --config kubeadm-init.yaml docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/etcd:3.4.13-0
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/etcd:3.4.13-0 ${DOCKERREPOHOST}/${DOCKERREPONAME}/etcd:3.4.13-0
docker push ${DOCKERREPOHOST}/${DOCKERREPONAME}/etcd:3.4.13-0 docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.4.1
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.4.1 ${DOCKERREPOHOST}/${DOCKERREPONAME}/pause:3.4.1
docker push ${DOCKERREPOHOST}/${DOCKERREPONAME}/pause:3.4.1 docker pull coredns/coredns:latest
docker tag coredns/coredns:latest ${DOCKERREPOHOST}/${DOCKERREPONAME}/coredns:v1.8.0
docker push ${DOCKERREPOHOST}/${DOCKERREPONAME}/coredns:v1.8.0 # 拉取镜像并推送到自己仓库 -------------------------------------------END ####################################################################################################
# 私服结束
####################################################################################################
kubeadm config images pull --config kubeadm-init.yaml #--kubernetes-version="v1.21.0" --pod-network-cidr=10.0.244.0/16
#--image-repository ${DOCKERREPOHOST}/${DOCKERREPONAME}/google_containers kubeadm init --config kubeadm-init.yaml kubectl get nodes

K8s配置。--未完成的更多相关文章

  1. k8s配置中心-configmap,Secret密码

    目录 k8s配置中心-configmap,Secret 创建ConfigMap 使用ConfigMap subPath参数 Secret 官方文档 编写secret清单 使用secret 在 Pod ...

  2. K8S配置安装全过程

    V1.11.1https://github.com/kubernetes/kubernetes/releases/tag/v1.11.1环境准备:系统:centos7.2.1511[root@mast ...

  3. Jenkins基于https的k8s配置

    一.摘要 jenkins 连接低版本的k8s时,不需要验证.但是新版本的启用了https和角色管理 二.安装kubernetes插件 登录jenkins,点击 Manage Jenkins --> ...

  4. 可能是Asp.net Core On host、 docker、kubernetes(K8s) 配置读取的最佳实践

    写在前面 为了不违反广告法,我竭尽全力,不过"最佳实践"确是标题党无疑,如果硬要说的话 只能是个人最佳实践. 问题引出 ​ 可能很多新手都会遇到同样的问题:我要我的Asp.net ...

  5. K8s配置配置存活、就绪和启动探测器

    kubelet 使用存活探测器来知道什么时候要重启容器. 例如,存活探测器可以捕捉到死锁(应用程序在运行,但是无法继续执行后面的步骤). 这样的情况下重启容器有助于让应用程序在有问题的情况下更可用. ...

  6. k8s配置集ConfigMap详解

    ConfigMap介绍 ConfigMap和Secret是Kubernetes系统上两种特殊类型的存储卷,ConfigMap对象用于为容器中的应用提供配置文件等信息.但是比较敏感的数据,例如密钥.证书 ...

  7. Tomcat负载均衡配置-未完成

    集群技术是目前非常流行的提高系统服务能力与高可靠性( HA- High Availability )的手段,通过把多个独立的服务器组成一个集群可以实现失效无缝转移.也就是说当有某一台集群中的服务器当机 ...

  8. [k8s]k8s配置nfs做后端存储&配置多nginx共享存储&&statefulset配置

    所有节点安装nfs yum install nfs-utils rpcbind -y mkdir -p /ifs/kubernetes echo "/ifs/kubernetes 192.1 ...

  9. K8S配置多集群访问

    中文官档: http://docs.kubernetes.org.cn/823.html 背景:我们通过会有多个k8s集群,例如集群(cn-k8s)和集群(jp-k8s),那个就需要有一台服务器可以同 ...

随机推荐

  1. SpringBoot下Schdule的配置与使用

    我们在平常项目开发中,经常会用到周期性定时任务,这个时候使用定时任务就能很方便的实现.在SpringBoot中用得最多的就是Schedule. 一.SpringBoot集成Schedule 1.依赖配 ...

  2. kong整合Cosul实践(3)

    1. 准备工作: 需要.netcore或者java程序一套,引入consul第三方包 我这里搭建了一个.netcore的webapi项目,引入Consul第三方包,网上可查资料一堆 环境需要kong, ...

  3. Shell-11-read命令

    read read命令从标准输入读取,并且把输入的内容赋值给变量 参数 示例 1 2 3 while 4 分别赋值变量

  4. Lab: 2FA bypass using a brute-force attack:暴力破解双重验证靶场复盘(困难级别)

    靶场内容: This lab's two-factor authentication is vulnerable to brute-forcing. You have already obtained ...

  5. CVE-2020-2555漏洞复现&&流量分析

    CVE-2020-2555漏洞复现&&流量分析 一.准备环境 windows7: weblogic 12.2.1.4.0 JDK版本为jdk-8u261 关于weblogic搭建可以看 ...

  6. STP工作流程

    第一步:选择一个根网桥: 第二步:在每个非根网乔上选举一个根端口: 第三步:在每个网段上选举一个指定端口: 第四步:阻塞非根,非指定端口:

  7. ReentrantLock可重入锁lock,tryLock的区别

    void lock(); Acquires the lock. Acquires the lock if it is not held by another thread and returns im ...

  8. PS与CSS字间距转换

    字间距: 实际像素大小 real_letter_spacing,(单位为px) 文字字号 font,(单位为px) 文字间距 spacing, 它们的换算关系为: real_letter_spacin ...

  9. ES6中新增的数组知识记录

    JSON数组格式转换 let json = { '0': 'hello', '1': 'I am ', '2': 'michael', length:3 } 这就是一个JSON数组格式,跟普通的JSO ...

  10. nodejs 更改项目端口号的 方法

    我这里是 koa2 项目 1.项目目录 serverConf.js 这里面配置端口 代码如下: const ServerConf= { ServicePort: 3036 }; module.expo ...