这里是引用

  1. 操作系统要求
  2. 服务器配置信息
  3. 基础环境部署
    3.1. NTP时钟源同步
    3.2. 关闭firewalld服务
    3.3. 关闭SElinux服务
    3.4. 系统调优配置
    3.5. 开启IP转发功能
    3.6. 开启bridge-nf转发功能
    3.7. 关闭swap功能
    3.8. 更改host信息
    3.8.1. 更改主机名称
    3.8.2. master添加hosts
    3.8.3. 配置添加DNS解析
  4. K8S集群信息
  5. 升级kernel内核版本
    5.1. kernelYUM源更新方式
    5.2. kernel离线RPM更新方式
  6. Docker程序安装
    6.1. docker安装方式
    6.1.1. docker阿里YUM源安装方式
    6.1.2. docker离线RPM安装方式
    6.2. docker离线安装
    6.3. docker服务启动
    6.4. 配置docker存储路径
    6.5. 重启docker服务
    6.6. K8S安装方式
    6.6.1. K8S阿里YUM源安装方式
    6.6.2. K8S离线RPM安装方式
  7. Kubernetes程序安装
    7.1. K8S离线安装
    7.2. K8S创建集群
    7.3. K8S集群pod网络插件CNI安装
    7.4. K8S集群添加worker节点
    7.5. K8S集群Metrics-server安装
    7.6. K8S集群Helm安装
    7.7. helm添加仓库测试

这里是引用

K8S集群应用市场安装部署:第一篇

  1. 操作系统要求
    CentOS7.4/7.5/7.6/7.8/7.9/8.2

2.服务器设备配置
2U机架,RAID卡存储RAID5配置设备规格如下:
CPU型号:Intel® Xeon® Gold 5218 CPU
CPU主频:2.30GHz
CPU数量:2
CPU核数:32
CPU线程数:64
内存大小:256G
HDD信息:SATA 8T12
SSD信息:480G
2
GE(电)数量:2个
10GE网卡型号:Intel Corporation Ethernet Controller X710 for 10GbE
10GE网卡数量:1块
10GE网卡芯片:Intel Corporation Ethernet Controller X710

虚拟机服务器配置信息:

  1. Intel® Xeon® 2*6核=12核/24线程 * 3台
  2. 内存32G/台 *3台
  3. 存储:/home 200G * 3台

3.基础环境部署
3.1.NTP时钟源同步
在每台服务器的计划任务里添加NTP时钟源同步的定时任务
[root@localhost ~]# crontab -l


*/50 * * * * /usr/sbin/ntpdate 192.168.200.1 ;hwclock --systohc


/usr/sbin/ntpdate  ntp1.aliyun.com ;hwclock --systohc(阿里时钟源)

NTP时钟同步验证如下:
注意:各服务器之间的时区不一样,安装docker/k8s会有问题
/usr/sbin/ntpdate 172.16.247.109 ;hwclock --systohc

查看时区是否为Asia/shanghai
timedatectl | grep Time

方案二:手动同步系统时间
1) 测当前系统的时区和时间
要求:系统时区为上海时区。
检测方式:
a. 命令行执行#date 返回时区为 CST;
b. 命令行执行#date -R 返回时区为+0800。
以上两种方式任选一种方式检查,若返回时区不正确,
则需要修改时区时间。正确运行命令返回结果 , 如下图所示:

2)修正当前系统的时区和时间
如果我们检查时区和时间不正确,则我们根据以下步骤修改系统的时区和时间:
第一步:修正时区为上海时区
/bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
timedatectl set-timezone Asia/Shanghai

第二步:修正时间为当前网络时间(命令的时间为样列,请根据实际需要修改)
date -s ‘2020-10-23 15:06:00’ (请参照北京时间来修改)
第三步:将修正时间时区写入系统时钟
hwclock -w

3.2.关闭firewalld服务


systemctl  stop  firewalld.service
systemctl  disable  firewalld.service
systemctl  status  firewalld.service

3.3.关闭SElinux服务
vi /etc/sysconfig/selinux
SELINUX=disabled

getenforce


3.4.系统调优配置


echo "vm.swappiness = 0" >> /etc/sysctl.conf
echo "vm.overcommit_memory = 1" >> /etc/sysctl.conf
echo "fs.file-max = 102400" >> /etc/sysctl.conf
echo "net.core.somaxconn = 32768" >> /etc/sysctl.conf
echo "vm.max_map_count= 655360" >> /etc/sysctl.conf
sysctl -p

**验证:
sysctl -p


echo "* soft nofile 655360" >> /etc/security/limits.conf
echo "* hard nofile 655360" >> /etc/security/limits.conf
echo "* soft nproc 655360" >> /etc/security/limits.conf
echo "* hard nproc 655360" >> /etc/security/limits.conf
echo "* soft nofile 65536" > /etc/security/limits.d/20-nproc.conf
ulimit -HSn 655360
ulimit -a

**验证:
ulimit -a

3.5.开启IP转发功能

**验证:sysctl -p

3.6.开启bridge-nf转发功能
将桥接的IPv4/IPv6/Arp流量传递到iptables的链


cat >> /etc/sysctl.d/k8s.conf << EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF

sysctl --system
#生效

centos默认不开启bridge-nf
由于网桥工作于数据链路层,在iptables没有开启bridge-nf时,
数据会直接经过网桥转发,结果就是对FORWARD的设置失效;

3.7.关闭swap功能
swapoff -a
vi /etc/fstab (注释swap挂载)

注意:swap会影响k8s集群使用

3.8.更改host信息
更改主机名称


hostnamectl set-hostname k8s-master-node102
hostnamectl set-hostname k8s-worker-node103
hostnamectl set-hostname k8s-worker-node104

master节点添加hosts


cat >> /etc/hosts << EOF
192.168.200.102 k8s-master-node102
192.168.200.103 k8s-worker-node103
192.168.200.104 k8s-worker-node104
EOF

配置添加DNS解析


cat >> /etc/resolv.conf  << EOF
nameserver 114.114.114.114
EOF
ping www.baidu.com

**验证:ping www.baidu.com 可以访问Internet互联网

4.K8S集群信息




5.升级kernel内核版本
5.1.kernelYUM源更新方式
查看内核最新版本
yum list kernel*

yum -y install update kernel*

reboot #重启服务器

**验证:

5.2.kernel离线RPM更新方式
tar -xf kernel-V3.10.0.1127.tar.gz
cd kernel-V3.10.0.1127/
sh install.sh

reboot #重启服务器生效
uname -r

6.Docker程序安装
6.1.docker安装方式
docker阿里YUM源安装方式


wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo

或者


cat <<EOF > /etc/yum.repos.d/docker-ce.repo
[docker-ce-stable]
name=Docker CE Stable - $basearch
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/7/$basearch/stable
enabled=1
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg
EOFhttps://mirrors.aliyun.com/docker-ce/linux/centos/7/x86_64/stable/Packages/

安装最新版本的Docker Engine和容器,或转到下一步以安装特定版本:
yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io


yum install -y  docker-ce-19.03.13-3.el7.x86_64
yum install -y  docker-ce-cli-19.03.13-3.el7.x86_64
yum install -y  containerd.io

docker离线RPM安装方式
tar -xf Docker-V1.19.13.tar.gz

6.2.docker离线安装
cd Docker-V1.19.13/
sh install.sh

6.3.docker服务启动
systemctl start docker
systemctl enable docker

执行如下命令查看docker版本是否为1.19.13:
docker version
docker info

6.4.配置docker存储路径
查看服务器存储目录,进行配置docker数据存储路径。


mkdir -p /home/docker/
vi /usr/lib/systemd/system/docker.service
添加红色选框
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock  --graph /home/docker


启动参数解释:

  • 重置docker的数据文件目录:–graph /home/docker 防止后期docker数据文件增大

6.5.重启docker服务
systemctl daemon-reload
systemctl restart docker

验证docker数据文件目录:
docker info | grep home

6.6.K8S安装方式
K8S阿里YUM源安装方式


cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[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
EOFhttps://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/


yum install -y kubelet-1.18.10
yum install -y kubeadm-1.18.10
yum install -y kubectl-1.18.10

K8S离线RPM安装方式
tar -xf Kubernetes-V1.18.10.tar.gz
cd Kubernetes-V1.18.10/
sh install.sh

7.Kubernetes程序安装
7.1.K8S离线安装
cd Kubernetes-V1.18.10/
sh install.sh
或者
rpm -ivh *.rpm

systemctl enable kubelet
systemctl start kubelet

7.2.K8S创建集群
在master上创建K8S集群
由于默认拉取k8s官方镜像地址k8s.gcr.io时国内无法进行访问,这里指定阿里云镜像仓库地址进行拉取镜像。


kubeadm config images pull --image-repository=registry.aliyuncs.com/google_containers

[root@k8s-master-node102 ~]# docker images
REPOSITORY                                                        TAG                 IMAGE ID            CREATED             SIZE
registry.aliyuncs.com/google_containers/kube-proxy                  v1.18.12            06f1dd86004c        2 weeks ago         117MB
registry.aliyuncs.com/google_containers/kube-apiserver            v1.18.12            d4e7de4ee6a8        2 weeks ago         173MB
registry.aliyuncs.com/google_containers/kube-controller-manager   v1.18.12            37efdbf07b2a        2 weeks ago         162MB
registry.aliyuncs.com/google_containers/kube-scheduler            v1.18.12            fb649979593e        2 weeks ago         95.3MB
registry.aliyuncs.com/google_containers/kube-proxy                  v1.18.10            2abfb19fb8ae        6 weeks ago         117MB
registry.aliyuncs.com/google_containers/kube-apiserver            v1.18.10            ab3c7c4901f3        6 weeks ago         173MB
registry.aliyuncs.com/google_containers/kube-controller-manager   v1.18.10            b52d2697baa9        6 weeks ago         162MB
registry.aliyuncs.com/google_containers/kube-scheduler             v1.18.10            f23f5042d485        6 weeks ago         95.3MB
registry.aliyuncs.com/google_containers/pause                            3.2                 80d28bedfe5d        9 months ago        683kB
registry.aliyuncs.com/google_containers/coredns                         1.6.7               67da37a9a360        10 months ago       43.8MB
registry.aliyuncs.com/google_containers/etcd                               3.4.3-0             303ce5db0e90        13 months ago       288MB

kubeadm init \--apiserver-advertise-address=192.168.200.102 \--image-repository registry.aliyuncs.com/google_containers \--kubernetes-version v1.18.10 \--service-cidr=10.96.0.0/12 \--pod-network-cidr=10.244.0.0/16

参数说明:

kubeadm init输出的kubeadm join命令信息:用于添加集群使用


kubeadm join 192.168.200.102:6443 --token a8p2nj.ha1uveue1xa7iwe5 \
--discovery-token-ca-cert-hash sha256:23fa28a13e4df03e60a757a37283878a35b5dd86795221f7e74d0e4f0e0a2916

使用kubectl工具: 在master 上执行以下命令


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

验证:
kubectl get nodes

docker images

kubectl get pods -n kube-system

7.3.K8S集群pod网络插件CNI安装
Calico官网下载calico.yaml:
wget https://docs.projectcalico.org/manifests/calico.yaml

安装calico:
kubectl apply -f calico.yaml

验证:
docker images

kubectl get pods -n kube-system

7.4.K8S集群添加worker节点
创建token
创建token:或者使用之前没有过期的token信息
kubeadm token create

查询token:
kubeadm token list


openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2>/dev/null | openssl dgst -sha256 -hex | sed 's/^.* //'

Worker节点加入k8s集群
在所有的worker节点执行如下命令:


kubeadm join 192.168.200.102:6443 --token 461e27.t4b5z6k2fd3klzg7 \
--discovery-token-ca-cert-hash sha256:23fa28a13e4df03e60a757a37283878a35b5dd86795221f7e74d0e4f0e0a2916

验证:
kubectl get nodes

kubectl get pods -n kube-system

kubectl get pods -n kube-system -o wide

7.5.K8S集群Metrics-server安装


获取安装文件:
wget https://github.com/kubernetes-sigs/metrics-server/releases/download/v0.3.6/components.yaml -O metrics-server-deployment.yaml 

先获取镜像:
docker  pull   registry.aliyuncs.com/google_containers/metrics-server-amd64:v0.3.6

vi metrics-server-deployment.yaml (修改镜像信息)

安装metrics-server
kubectl apply -f metrics-server-deployment.yaml

验证:

kubectl top node
kubectl top pod

7.6.K8S集群Helm安装
1.Helm官网下载
wget https://get.helm.sh/helm-v3.3.4-linux-amd64.tar.gz
2. Helm二进制安装
tar -xf helm-v3.3.4-linux-amd64.tar.gz
mv linux-amd64/helm /usr/local/bin/
ldconfig

helm version

7.7.helm添加仓库测试
添加helm仓库
helm repo:操作仓库
helm repo add stable https://apphub.aliyuncs.com/stable

helm repo update:更新仓库
helm repo update

helm search hub:在Helm Hub上搜索Chart
helm search:在本地配置的Repo中搜索查找Chart
helm search repo mysql

helm show : 查找chart信息
helm show chart stable/mysql

helm install:安装chart
helm install stable/mysql --generate-name

helm list:查看已部署的release
helm list

helm status: 查看release信息
helm status mysql-1604465423

helm uninstall: 卸载release
helm list
helm uninstall mysql-1604463386
helm list

注意:
通常直接部署都会有各种大大小小的问题,所以一般是先下载Chart到本地,编辑之后再从本地部署。
helm pull stable/mysql
tar -xf mysql-1.6.7.tgz
ls -l mysql/
total 36
-rwxr-xr-x 1 root root 502 Sep 7 10:07 Chart.yaml
-rwxr-xr-x 1 root root 23294 Sep 7 10:07 README.md
drwxr-xr-x 3 root root 268 Nov 4 12:38 templates
-rwxr-xr-x 1 root root 6164 Sep 7 10:07 values.yaml

7.8.K8S集群 ingress-ingress安装
获取安装文件:
https://github.com/WillLiaowh/k8s/blob/master/mandatory.yaml

获取镜像:
docker pull quay.io/kubernetes-ingress-controller/nginx-ingress-controller:0.30.0

docker images

或者下载
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/nginx-ingress-controller:0.30.0

vi mandatory.yaml (修改镜像信息)

安装ingress-ingress
kubectl apply -f mandatory.yaml

验证:
kubectl get node --show-labels

kubectl get ds -A

增加标签
kubectl label nodes k8s-master-node102 type=lb

7.9.K8S集群 DNS服务安装

  1. YUM安装bind软件包
    yum -y install bind bind-chroot bind-utils


    2.配置DNS域名
    vi /etc/named.conf
    配置允许访问权限为:any


    vi /etc/named.rfc1912.zones
zone "cloud.com" IN {type master;file "named.cloud.com.zone";allow-update { none; };
};zone "102.200.168.192.in-addr.arpa" IN {type master;file "named.192.168.200.102.arpa";allow-update { none; };
};
  1. 配置DNS主机正反向解析信息
    cd /var/named/
    cp -rf named.localhost named.cloud.com.zone
    cp -rf named.loopback named.192.168.200.102.arpa

chown -R root:named named.cloud.com.zone
chown -R root:named named.192.168.200.102.arpa

1.配置DNS正向域名解析:
vi /var/named/named.cloud.com.zone

2.配置DNS反向域名解析:
vi /var/named/named.192.168.200.102.arpa

4.启动named服务
systemctl enable named
systemctl restart named
systemctl status named.service

5.

K8S集群应用市场安装部署:第一篇相关推荐

  1. 纯手工搭建k8s集群-(二)核心模块部署

    1. 部署ETCD(主节点) 1.1 简介 kubernetes需要存储很多东西,像它本身的节点信息,组件信息,还有通过kubernetes运行的pod,deployment,service等等.都需 ...

  2. 搭建K8S集群之node节点部署

    在上一篇文章中,我们完成了K8S系列之K8S集群之Master节点部署,在这篇文章中,我们将开始部署Node节点相关的组件.在node节点上,需要部署kubelet和kube-proxy两个K8S组件 ...

  3. Spark集群完全分布式安装部署

    Spark集群完全分布式安装部署 下载安装 配置Spark 1spark-envsh配置 2slaves配置 3profile配置 复制到其他节点 测试 总结 Spark集群完全分布式安装部署 本文中 ...

  4. K8S集群搭建:安装kubeadm集群部署工具

    将镜像包上传至服务器每个节点 mkdir /usr/local/k8s-install cd /usr/local/k8s-install XFTP上传安装文件 每个CentOS上安装Docker 使 ...

  5. k8s集群之master节点部署

    apiserver的部署 api-server的部署脚本 [root@mast-1 k8s]# cat apiserver.sh #!/bin/bashMASTER_ADDRESS=$1 主节点IP ...

  6. Spark笔记整理(一):spark单机安装部署、分布式集群与HA安装部署+spark源码编译...

    [TOC] spark单机安装部署 1.安装scala 解压:tar -zxvf soft/scala-2.10.5.tgz -C app/ 重命名:mv scala-2.10.5/ scala 配置 ...

  7. K8S集群搭建,并部署nginx实现跨网络访问

    K8S基础概念 一.核心概念 1.Node Node作为集群中的工作节点,运行真正的应用程序,在Node上Kubernetes管理的最小运行单元是Pod.Node上运行着Kubernetes的Kube ...

  8. K8S集群的详细安装步骤大数据教程

    Kubernetes是一个可移植的,可扩展的开源平台,用于管理容器化的工作负载和服务,可促进声明式配置和自动化.它拥有一个庞大且快速增长的生态系统.Kubernetes的服务,支持和工具使用的非常广泛 ...

  9. Rancher 2.2 GA:企业进入应用跨多K8S集群、混合云部署新时代

    2019独角兽企业重金招聘Python工程师标准>>> Rancher 2.2 GA版本引入的创造性新功能,将进一步实现Kubernetes-as-a-service,使企业用户能够 ...

最新文章

  1. Spring Boot使用@Async实现异步调用:自定义线程池
  2. 如何用python画数据图-python怎么对动态数据在同一张图上画出来
  3. python零碎知识(8):UserDict 类
  4. hadoop(4)——用python代码结合hadoop完成一个小项目
  5. [BUUCTF-pwn]——ciscn_2019_s_4
  6. 程序员的进阶课-架构师之路(2)-数组
  7. 软件构造-线程安全性
  8. Python一周小结
  9. html <font>中英文常用字体和颜色总结
  10. Linux 命令(186)—— atq 命令
  11. Android浮窗权限判断
  12. 《MINECRAFT我的世界 新手完全攻略(第3版)》一1.1 注册与下载
  13. 五月集训-14【栈】
  14. 为什么大家都在用 PDF? PDF 文档怎么修改?
  15. 电视投屏显示设置服务器,Win10怎么投屏到电视?WIN10投屏到液晶电视具体步骤...
  16. CISP-PTE靶机练习(me-and-my-girlfriend)
  17. 微信小程序实现展示图片(图片推广小程序可以使用)
  18. 压缩png命令cmd_PNG图片文件大小怎么改变
  19. 龙门架式焊接机器人_龙门架式焊接机器人系统设计
  20. 【12】理解电路:从电报机到门电路,我们如何做到“千里传信”?

热门文章

  1. 打印机设备与计算机连接类型,电脑打印机的连接方式 打印机的种类有哪些
  2. java万年历的设计总结_java万年历设计报告
  3. python干货分享/网址总结
  4. Java8 新特性(下)
  5. 途虎养车产品经理面试(魔幻)
  6. HTML5Canvas实现简易画图工具(铅笔,直线,矩形,圆,文本框,橡皮擦等)
  7. 肝肠轴——看不见的Crosstalk
  8. show和shown区别
  9. 关于安卓手机的一些专业名称解释
  10. 我的世界java百度什么电脑玩好_【我的世界】为了在龙芯电脑上玩Minecraft(我的世界)我做了什么_玩得好游戏攻略...