配置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. SpringCloud升级之路2020.0.x版-2.微服务框架需要考虑的问题

    本系列为之前系列的整理重启版,随着项目的发展以及项目中的使用,之前系列里面很多东西发生了变化,并且还有一些东西之前系列并没有提到,所以重启这个系列重新整理下,欢迎各位留言交流,谢谢!~ 上图中演示了一 ...

  2. tp phpexcel 导出后台访问方法

    public function phpexcel(){ //-----excel表导出 $dataid = $_GET['dataid']; $status = $_GET['status']; $F ...

  3. leetcode 有效三角形的个数

    题目描述: 平明伞兵解法: 既然要求满足三角形要求的三边,简单来说,就是最短两边之和大于第三边,所以,第一步Arrays.sort().先排序,然后直接伞兵暴力法,三重循环.当然最后肯定是能跑出来的, ...

  4. 直接使用!安装WordPress一键部署轻松建站教程

    关于 WordPress WordPress (opens new window)简称WP,最初是一款博客系统,后逐步演化成一款功能强大的企业级 CMS(内容管理/建站系统),目前是公认的全球最佳建站 ...

  5. 对HashMap的一次记录

    HashMap的具体学习,认识了解. 前言 也是最近开始面试才发现,HashMap是问的真多.以前听学长或自己在网上看到过一些面试资料都在说集合.线程这块比较重要,面试的重点.自己也是有那抵触情绪,所 ...

  6. Android开发失业六个月了,无限的焦虑

    最近到网上看到这样一个帖子: Android开发,坐标魔都:目前为止已经失业六个月,找工作期间,尤其是最近两天确实心态不好.要么没有面试,要么给的工资不符合预期( hr 压价太狠了,原先说的 19k, ...

  7. Linux 内核的代码仓库太不一样了,光克隆都让我挠头,克隆后居然还丢文件,你肯定也会遇到!!!

    一个肯定能让你节省几个小时的小知识 大家好,我是 小猿来也,一个人称撸(划)码(水)小能手的程序猿. 最近一段时间,每次经过旁边大佬工位,总是发现他在快速的切屏,不知道在搞什么?难道他发现了快乐星球? ...

  8. 拦截器HandlerInterceptorAdapter的postHandle和afterCompletion无法获取response返回值问题

    缘起 有一个需求,在进入controller之前验证调用次数是否超过限制,在响应之后判断是否正常返回,对调用次数进行+1,发现带@RestController的类和带@ResponseBody的方法在 ...

  9. eclipse中添加进新的java项目中文乱码

    eclipse中添加进新的java项目中文乱码 添加学习的一些项目进eclipse中,结果其中的中文注释都变成了乱码 右击项目,点最下面的属性,出来新得弹框 在文本文件编码部分可以发现是GBK格式,选 ...

  10. Required request body is missing-请求接口报错

    一.问题由来 自己目前在做一个小程序的后台,已经写好了项目中的很多的接口,同时也在进行一些修改,比如添加拦截器,统一校验一个固定的参数是否正确. 在自己添加拦截器之前,这些接口都可以正常访问,可是在添 ...