配置K8s

  1. #####################################################################################
  2. # 配置 ----------------------------------------------------------START
  3. # 主节点
  4. HOST="192.168.2.151"
  5. HOST_NAME="master"
  6. # 从节点
  7. declare -A SLAVES
  8. SLAVES=(
  9. [slave1]="192.168.2.152"
  10. [slave2]="192.168.2.153"
  11. )
  12. # 如果是Harbor,则是配置的Host
  13. DOCKERREPOHOST="wosperry.com.cn:8704" #必须先 docker login 192.168.124.5 登录自己仓库#
  14. DOCKERREPONAME="google_containers"
  15. # 配置 -----------------------------------------------------------END
  16. #####################################################################################
  17. # 随便新建一个文件夹 -----------------------------------------------START
  18. mkdir /k8s
  19. cd /k8s
  20. # 随便新建一个文件夹 -----------------------------------------------END
  21. # 同步时间 -------------------------------------------------------START
  22. yum -y install chrony
  23. systemctl start chronyd && systemctl enable chronyd
  24. chronyc sources
  25. # 同步时间 -------------------------------------------------------END
  26. # 设置 Host Name ------------------------------------------------START
  27. hostnamectl set-hostname $HOST_NAME
  28. # 设置 Host Name ------------------------------------------------END
  29. # 调整 hosts ----------------------------------------------------START
  30. TMP=""
  31. TMP=`echo -e "${TMP}\n${HOST} ${HOST_NAME}"`
  32. for key in $(echo ${!SLAVES[*]})
  33. do
  34. TMP=`echo -e "${TMP}\n${SLAVES[$key]} ${key}"`
  35. done
  36. cat << EOF >> /etc/hosts
  37. ${TMP}
  38. EOF
  39. # 查看HOST
  40. cat /etc/hosts
  41. # 调整 hosts ----------------------------------------------------END
  42. # 禁用SELinux和Swap ---------------------------------------------START
  43. # 关闭swap分区【虚拟内存】并且永久关闭虚拟内存
  44. swapoff -a && sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab
  45. # 关闭selinux
  46. setenforce 0 && sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config
  47. # 禁用SELinux和Swap ----------------------------------------------END
  48. # 安装依赖软件 ---------------------------------------------------START
  49. 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
  50. # 安装依赖软件 ---------------------------------------------------END
  51. # 放行端口 ------------------------------------------------------START
  52. firewall-cmd --zone=public --add-port=6443/tcp --permanent
  53. firewall-cmd --zone=public --add-port=2379-2380/tcp --permanent
  54. firewall-cmd --zone=public --add-port=10250-10252/tcp --permanent
  55. firewall-cmd --zone=public --add-port=30000-32767/tcp --permanent
  56. # 重启
  57. firewall-cmd --reload
  58. # 放行端口 ------------------------------------------------------END
  59. # 置空iptables --------------------------------------------------START
  60. yum -y install iptables-services && systemctl start iptables && systemctl enable iptables && iptables -F && service iptables save
  61. # 置空iptables --------------------------------------------------END
  62. # 安装 docker-ce ------------------------------------------------START
  63. wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo
  64. yum -y install docker-ce && systemctl enable docker && systemctl start docker
  65. docker --version
  66. # 安装 docker-ce ------------------------------------------------END
  67. # 配置 /etc/docker/daemon.json ----------------------------------START
  68. mkdir -p /etc/docker
  69. cat > /etc/docker/daemon.json <<EOF
  70. {
  71. "registry-mirrors": [
  72. "https://4534gx72.mirror.aliyuncs.com",
  73. "https://1nj0zren.mirror.aliyuncs.com",
  74. "https://docker.mirrors.ustc.edu.cn",
  75. "http://f1361db2.m.daocloud.io",
  76. "https://registry.docker-cn.com"
  77. ],
  78. "insecure-registries": [
  79. "$DOCKERREPOHOST"
  80. ]
  81. }
  82. EOF
  83. systemctl daemon-reload && systemctl restart docker
  84. # 配置 /etc/docker/daemon.json ----------------------------------END
  85. # 调整内核参数 ---------------------------------------------------START
  86. cat > kubernetes.conf <<EOF
  87. net.bridge.bridge-nf-call-iptables=1
  88. net.bridge.bridge-nf-call-ip6tables=1
  89. net.ipv4.ip_forward=1
  90. net.ipv4.tcp_tw_recycle=0
  91. vm.swappiness=0
  92. vm.overcommit_memory=1
  93. vm.panic_on_oom=0
  94. fs.inotify.max_user_instances=8192
  95. fs.inotify.max_user_watches=1048576
  96. fs.file-max=52706963
  97. fs.nr_open=52706963
  98. net.ipv6.conf.all.disable_ipv6=1
  99. net.netfilter.nf_conntrack_max=2310720
  100. EOF
  101. # 将优化内核文件拷贝到/etc/sysctl.d/文件夹下,这样优化文件开机的时候能够被调用
  102. cp kubernetes.conf /etc/sysctl.d/kubernetes.conf
  103. # 手动刷新,让优化文件立即生效
  104. sysctl -p /etc/sysctl.d/kubernetes.conf
  105. # 调整内核参数 ---------------------------------------------------END
  106. # 创建路径 ------------------------------------------------------START
  107. # 创建保存日志的目录
  108. mkdir /var/log/journal
  109. # 创建配置文件存放目录
  110. mkdir /etc/systemd/journald.conf.d
  111. # 创建路径 ------------------------------------------------------END
  112. # 创建配置文件 ---------------------------------------------------START
  113. cat > /etc/systemd/journald.conf.d/99-prophet.conf <<EOF
  114. [Journal]
  115. Storage=persistent
  116. Compress=yes
  117. SyncIntervalSec=5m
  118. RateLimitInterval=30s
  119. RateLimitBurst=1000
  120. SystemMaxUse=10G
  121. SystemMaxFileSize=200M
  122. MaxRetentionSec=2week
  123. ForwardToSyslog=no
  124. EOF
  125. # 创建配置文件 ---------------------------------------------------END
  126. # 重启systemd journald 的配置 ------------------------------------START
  127. systemctl restart systemd-journald
  128. # 重启systemd journald 的配置 ------------------------------------END
  129. # 打开文件数调整 --------------------------------------------------START
  130. echo "* soft nofile 65536" >> /etc/security/limits.conf
  131. echo "* hard nofile 65536" >> /etc/security/limits.conf
  132. # 打开文件数调整 --------------------------------------------------END
  133. # kube-proxy 开启 ipvs 前置条件 -----------------------------------START
  134. modprobe br_netfilter
  135. cat > /etc/sysconfig/modules/ipvs.modules <<EOF
  136. modprobe -- ip_vs
  137. modprobe -- ip_vs_rr
  138. modprobe -- ip_vs_wrr
  139. modprobe -- ip_vs_sh
  140. modprobe -- nf_conntrack_ipv4
  141. EOF
  142. # 使用lsmod命令查看这些文件是否被引导
  143. chmod 755 /etc/sysconfig/modules/ipvs.modules && bash /etc/sysconfig/modules/ipvs.modules && lsmod | grep -e ip_vs -e nf_conntrack_ipv4
  144. # kube-proxy 开启 ipvs 前置条件 -----------------------------------END
  145. # 国内镜像配置(国内建议配置) ----------------------------------------START
  146. cat > /etc/yum.repos.d/kubernetes.repo << EOF
  147. [kubernetes]
  148. name=Kubernetes
  149. baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
  150. enabled=1
  151. gpgcheck=1
  152. repo_gpgcheck=1
  153. gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
  154. EOF
  155. # 国内镜像配置(国内建议配置) ----------------------------------------END
  156. # 安装Kubelet ----------------------------------------------------START
  157. yum -y install kubelet kubectl kubeadm
  158. systemctl enable kubelet && systemctl start kubelet
  159. # 安装Kubelet ----------------------------------------------------END
  160. # 以下私服拉取镜像,不一定要这样执行,可以尝试
  161. # kubeadm config print init-defaults > kubeadm-init.yaml
  162. # 生成的文件
  163. # 先尝试 kubeadm config images pull --config kubeadm-init.yaml
  164. # 直接拉取镜像试试,如果不行再走私服
  165. # 我遇到装不了的情况,仓库的coredns的tag不带v,而使用的带v
  166. # 不使用生成的文件
  167. # kubeadm config print init-defaults > kubeadm-init.yaml
  168. # 创建 kubeadm-init.yaml------------------------------------------START
  169. ####################################################################################################
  170. # 私服开始
  171. ####################################################################################################
  172. cat << EOF > kubeadm-init.yaml
  173. apiVersion: kubeadm.k8s.io/v1beta2
  174. bootstrapTokens:
  175. - groups:
  176. - system:bootstrappers:kubeadm:default-node-token
  177. token: abcdef.0123456789abcdef
  178. ttl: 24h0m0s
  179. usages:
  180. - signing
  181. - authentication
  182. kind: InitConfiguration
  183. localAPIEndpoint:
  184. advertiseAddress: ${HOST}
  185. bindPort: 6443
  186. nodeRegistration:
  187. criSocket: /var/run/dockershim.sock
  188. name: master
  189. taints:
  190. - effect: NoSchedule
  191. key: node-role.kubernetes.io/master
  192. ---
  193. apiServer:
  194. timeoutForControlPlane: 4m0s
  195. apiVersion: kubeadm.k8s.io/v1beta2
  196. certificatesDir: /etc/kubernetes/pki
  197. clusterName: kubernetes
  198. controllerManager: {}
  199. dns:
  200. type: CoreDNS
  201. etcd:
  202. local:
  203. dataDir: /var/lib/etcd
  204. imageRepository: ${DOCKERREPOHOST}/${DOCKERREPONAME}
  205. kind: ClusterConfiguration
  206. kubernetesVersion: v1.21.0
  207. networking:
  208. dnsDomain: cluster.local
  209. serviceSubnet: 10.96.0.0/12
  210. scheduler: {}
  211. EOF
  212. # 创建 kubeadm-init.yaml------------------------------------------END
  213. docker login $DOCKERREPOHOST
  214. # 拉取镜像并推送到自己仓库 -------------------------------------------START
  215. docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-apiserver:v1.21.0
  216. docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/kube-apiserver:v1.21.0 ${DOCKERREPOHOST}/${DOCKERREPONAME}/kube-apiserver:v1.21.0
  217. docker push ${DOCKERREPOHOST}/${DOCKERREPONAME}/kube-apiserver:v1.21.0
  218. docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-controller-manager:v1.21.0
  219. docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/kube-controller-manager:v1.21.0 ${DOCKERREPOHOST}/${DOCKERREPONAME}/kube-controller-manager:v1.21.0
  220. docker push ${DOCKERREPOHOST}/${DOCKERREPONAME}/kube-controller-manager:v1.21.0
  221. docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-scheduler:v1.21.0
  222. docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/kube-scheduler:v1.21.0 ${DOCKERREPOHOST}/${DOCKERREPONAME}/kube-scheduler:v1.21.0
  223. docker push ${DOCKERREPOHOST}/${DOCKERREPONAME}/kube-scheduler:v1.21.0
  224. docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-proxy:v1.21.0
  225. docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/kube-proxy:v1.21.0 ${DOCKERREPOHOST}/${DOCKERREPONAME}/kube-proxy:v1.21.0
  226. docker push ${DOCKERREPOHOST}/${DOCKERREPONAME}/kube-proxy:v1.21.0
  227. kubeadm config images pull --config kubeadm-init.yaml
  228. docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/etcd:3.4.13-0
  229. docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/etcd:3.4.13-0 ${DOCKERREPOHOST}/${DOCKERREPONAME}/etcd:3.4.13-0
  230. docker push ${DOCKERREPOHOST}/${DOCKERREPONAME}/etcd:3.4.13-0
  231. docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.4.1
  232. docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.4.1 ${DOCKERREPOHOST}/${DOCKERREPONAME}/pause:3.4.1
  233. docker push ${DOCKERREPOHOST}/${DOCKERREPONAME}/pause:3.4.1
  234. docker pull coredns/coredns:latest
  235. docker tag coredns/coredns:latest ${DOCKERREPOHOST}/${DOCKERREPONAME}/coredns:v1.8.0
  236. docker push ${DOCKERREPOHOST}/${DOCKERREPONAME}/coredns:v1.8.0
  237. # 拉取镜像并推送到自己仓库 -------------------------------------------END
  238. ####################################################################################################
  239. # 私服结束
  240. ####################################################################################################
  241. kubeadm config images pull --config kubeadm-init.yaml
  242. #--kubernetes-version="v1.21.0" --pod-network-cidr=10.0.244.0/16
  243. #--image-repository ${DOCKERREPOHOST}/${DOCKERREPONAME}/google_containers
  244. kubeadm init --config kubeadm-init.yaml
  245. 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. 🔥 LeetCode 热题 HOT 100(31-40)

    75. 颜色分类 思路:将 2 往后放,0 往前放,剩余的1自然就放好了. 使用双指针:left.right 分别指向待插入的 0 和 2 的位置,初始 left 指向数组头,right 指向数组尾部 ...

  2. 大数据学习(11)—— Hive元数据服务模式搭建

    这一篇介绍Hive的安装及操作.版本是Hive3.1.2. 调整部署节点 在Hadoop篇里,我用了5台虚拟机来搭建集群,但是我的电脑只有8G内存,虚拟机启动之后卡到没法操作,把自己坑惨了. Hive ...

  3. Spring Boot 与 R2DBC 整合

    R2DBC 是 "Reactive Relational Database Connectivity"的简称.R2DBC 是一个 API 规范的倡议,声明对于访问关系型数据库驱动实 ...

  4. Gnucash的投资记录

    投资活动主要涉及3个账户:资产(Asset)下的子账户记录投资金额,收入(Income)下的子账户记录投资收入,支出(Expense)下的子账户记录投资费用支出(例如银行手续费,证券交易费等). 以购 ...

  5. Supervisord远程命令执行漏洞(CVE-2017-11610)复现

    Supervisord远程命令执行漏洞(CVE-2017-11610)复现 文章首发在安全客 https://www.anquanke.com/post/id/225451 写在前面 因为工作中遇到了 ...

  6. Redis配置及攻击利用

    Redis配置及攻击利用 Redis及其安全配置 Redis介绍 redis默认会绑定在 0.0.0.0:6379,如果没有进行采用相关的策略,比如添加防火墙规则避免其他非信任来源 ip 访问等,这样 ...

  7. 说说XXE漏洞那些事

    想不起来写点啥了,又是摸鱼的一天,看了一些红队大佬们整理的资料,非常精彩,于是一个咸鱼翻身先选了一些简单的小点来写一写个人的感想(后续会继续更新其他内容) 不能说写的是技术分享,因为师傅们的文章珠玉在 ...

  8. Internet的接入与IP地址 概述

    文章目录 一.计算机接入Internet 1.公用交换电话网(PSTN)接入 2.有线电视(CATV)接入 3.局域网接入 4.无线接入 二.IP地址 1.IP地址的格式 2.IP地址分类 3.子网掩 ...

  9. STM32—DMA存储器到外设

    DMA目录 DMA简介 DMA框图 DMA传输数据分析 1.传输的方向 2.传输的数量 3.传输的模式 代码部分 DMA初始化结构体 USART配置函数 DMA配置函数 主函数 DMA简介 DMA(D ...

  10. Kafka丢数据、重复消费、顺序消费的问题

    面试官:今天我想问下,你觉得Kafka会丢数据吗? 候选者:嗯,使用Kafka时,有可能会有以下场景会丢消息 候选者:比如说,我们用Producer发消息至Broker的时候,就有可能会丢消息 候选者 ...