K8S集群应用市场安装部署:第一篇
3.基础环境部署3.1.NTP时钟源同步在每台服务器的计划任务里添加NTP时钟源同步的定时任务[root@localhost ~]# crontab -l*/50 * * * * /usr/sbin/ntpdate 192.168.200.1 ;hwclock --systohc/usr/sbin/ntpdatentp1.aliyun.com (阿里时钟源)NTP时钟同步验证如下:注意:各服务器之
这里是引用
- 操作系统要求
- 服务器配置信息
- 基础环境部署
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解析 - K8S集群信息
- 升级kernel内核版本
5.1. kernelYUM源更新方式
5.2. kernel离线RPM更新方式 - 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安装方式 - 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集群应用市场安装部署:第一篇
- 操作系统要求
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信息:480G2
GE(电)数量:2个
10GE网卡型号:Intel Corporation Ethernet Controller X710 for 10GbE
10GE网卡数量:1块
10GE网卡芯片:Intel Corporation Ethernet Controller X710
虚拟机服务器配置信息:
- Intel® Xeon® 2*6核=12核/24线程 * 3台
- 内存32G/台 *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服务安装
- 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; };
};
- 配置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.
更多推荐
所有评论(0)