这里是引用

  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
EOF

https://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
EOF

https://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.

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐