第二节Kubernetes 安装部署
一、常见的K8S安装部署方式:
(1)Minikube 单节点微型K8S,仅供学习预览
Documentation--Try Kubernetes--Hello Minikube--Launch Terminal
$kubectl get pods -n kube-system
(2)二进制安装部署(生产首先,新手推荐)
(3)使用kubeadmin进行部署,K8S的部署工具,跑在K8S里(相对简单,熟手推荐)
ps:https://blog.stanley.wang
#yum install epel-release #centos7.6 5台 #curl -o /etc/yum.repo.d/epel.repo http://mirrors.aliyum.com/repo/epel-7.repo # yum install wget net-tools telnet tree nmap sysstat lrzsz bind-utils dos2unix -y hdss7-11上安装dns 配置bind9 #yum install bind -y #vi /etc/named.conf listen-on port 53 { 10.27.61.11; }; 监听本机端口 allow-query { any; }; forwarders { 10.27.61.254; }; recursion yes;递归查询yes,(迭代查询) dnssec-enable no; dnssec-validation no; 检查配置 #named-checkconf 区域配置文件 # vim /etc/named.rfc1912.zones zone "host.com" IN { type master; file "host.com.zone"; allow-update { 10.27.61.11; }; }; zone "od.com" IN { type master; file "od.com.zone"; allow-update { 10.27.61.11; }; }; 配置区域数据文件 /var/named/host.com.zone $ORIGIN host.com. $TTL 600 ; 10 minutes @ IN SOA dns.host.com. dnsadmin.host.com. ( 2021110201 ; serial 10800 ; refresh (3 hours) 900 ; retry (15 minutes) 604800 ; expire (1 week) 86400 ; minimum (1 day) ) NS dns.host.com. $TTL 60 ; 1 minute AAAA ::1 dns A 10.27.61.11 HDSS7-11 A 10.27.61.11 HDSS7-12 A 10.27.61.12 HDSS7-21 A 10.27.61.13 HDSS7-22 A 10.27.61.15 HDSS7-200 A 10.27.61.16 配置业务域配置文件 /var/named/od.com.zone $ORIGIN od.com. $TTL 600 ; 10 minutes @ IN SOA dns.od.com. dnsadmin.od.com. ( 2021110201 ; serial 10800 ; refresh (3 hours) 900 ; retry (15 minutes) 604800 ; expire (1 week) 86400 ; minimum (1 day) ) NS dns.od.com. $TTL 60 ; 1 minute dns A 10.27.61.11 # 检查配置 #named-checkconf 7-11 ~]# systemctl start named 7-11 ~]# netstat -ntplu |grep 53 tcp 0 0 10.227.6.11:53 0.0.0.0:* LISTEN 23383/named tcp 0 0 127.0.0.1:953 0.0.0.0:* LISTEN 23383/named tcp6 0 0 ::1:953 :::* LISTEN 23383/named udp 0 0 10.227.6.11:53 0.0.0.0:* 23383/named 验证 #
附:Kubernetes集群架构图

二、部署前置工作
1,安装bind
主机命名规则之一:主机名不与业务有关系:地域+IP段的后两位
1.调整操作系统:
所有主机上:
调整yum源:
1.安装epel-release
# yum install -y epel-release
2.安装必要工具
# yum install -y wget net-tools telnet tree nmap sysstat lrzsz dos2unix bind-utils
查看内核版本,运行docker需要3.8以上,查看的为3.10
# uname -a
3.在hdss7-11安装Bind
[root@hdss7-11 ~]# yum install -y bind
[root@hdss7-11 ~]# rpm -qa bind
配置bind
[root@hdss7-11 ~]# vi /etc/named.conf # BIND进程的工作属性,区域的定义
13 listen-on port 53 { 192.168.154.11; }; # 监听本机IP
14 listen-on-v6 port 53 { ::1; }; # 删除,不监听IPV6
20 allow-query { any; }; # 允许所有主机查看
21 forwarders { 192.168.154.2; }; # 办公网上一级的DNS
33 recursion yes; # dns采用递归的查询
35 dnssec-enable no; # 关闭,节省资源(生产可能不需要关闭)
36 dnssec-validation no; # 关闭,节省资源,不做互联网认证
检查配置文件是否正确
[root@hdss7-11 ~]# named-checkconf
[root@hdss7-11 ~]# echo $?
0
配置区域配置文件
[root@hdss7-11 ~]# vi /etc/named.rfc1912.zones
# 最后添加
zone "host.com" IN {
type master;
file "host.com.zone";
allow-update { 192.168.154.11; };
};
zone "od.com" IN {
type master;
file "od.com.zone";
allow-update { 192.168.154.11; };
};
配置区域数据文件
[root@hdss7-11 ~]# vi /var/named/host.com.zone
$ORIGIN host.com.
$TTL 600 ; 10 minutes # 过期时间2019.12.09+01序号
@ IN SOA dns.host.com. dnsadmin.host.com. ( # 区域授权文件的开始,OSA记录,dnsadmin.host.com为邮箱
2019120901 ; serial # 安装的当天时间
10800 ; refresh (3 hours)
900 ; retry (15 minutes)
604800 ; expire (1 week)
86400 ; minimum (1 day)
)
NS dns.host.com. # NS记录
$TTL 60 ; 1 minute
dns A 192.168.154.11 # A记录
HDSS7-11 A 192.168.154.11
HDSS7-12 A 192.168.154.12
HDSS7-21 A 192.168.154.21
HDSS7-22 A 192.168.154.22
HDSS7-200 A 192.168.154.200
[root@hdss7-11 ~]# vi /var/named/od.com.zone
$ORIGIN od.com.
$TTL 600 ; 10 minutes
@ IN SOA dns.od.com. dnsadmin.od.com. (
2019120901 ; serial
10800 ; refresh (3 hours)
900 ; retry (15 minutes)
604800 ; expire (1 week)
86400 ; minimum (1 day)
)
NS dns.od.com.
$TTL 60 ; 1 minute
dns A 192.168.153.11
检查配置文件是否正确
[root@hdss7-11 ~]# named-checkconf
[root@hdss7-11 ~]# echo $?
0
检测区域数据文件
[root@hdss7-11 named]# named-checkzone "host.com" /var/named/host.com.zone
zone host.com/IN: loaded serial 2019121001
OK
[root@hdss7-11 named]# named-checkzone "od.com" /var/named/od.com.zone
zone od.com/IN: loaded serial 2019120901
OK
更改文件的属组,权限
[root@hdss7-11 named]# chown root:named /var/named/host.com.zone
[root@hdss7-11 named]# chown root:named /var/named/od.com.zone
[root@hdss7-11 named]# chmod 640 /var/named/host.com.zone
[root@hdss7-11 named]# chmod 640 /var/named/od.com.zone
启动named
[root@hdss7-11 named]# systemctl restart named
[root@hdss7-11 named]# systemctl enable named
查看启动端口
[root@hdss7-11 named]# netstat -luntp | grep 53
验证解析
[root@hdss7-11 named]# dig -t A hdss7-21.host.com @192.168.153.11 +short
192.168.153.21
[root@hdss7-11 named]# dig -t A hdss7-200.host.com @192.168.153.11 +short
更改客户端dns
[root@hdss7-11 named]# vi /etc/sysconfig/network-scripts/ifcfg-ens33
DNS1="192.168.153.11"
[root@hdss7-11 named]# systemctl restart network
[root@hdss7-11 named]# cat /etc/resolv.conf
# Generated by NetworkManager
search host.com
nameserver 192.168.153.11
[root@hdss7-11 named]# ping hdss7-21.host.com
添加主机域search host.com使用短域名
[root@hdss7-11 named]# cat /etc/resolv.conf
# Generated by NetworkManager
search host.com
[root@hdss7-11 named]# ping hdss7-21
更改所有主机的DNS,重启网卡
# vi /etc/sysconfig/network-scripts/ifcfg-ens33
DNS1="192.168.153.11"
# systemctl restart network
将虚拟机的网卡DNS也改成192.168.153.11 IPV4 -- 高级 -- 越点改成20
将本机的网卡DNS也改成192.168.153.11 IPV4 -- 高级 -- 越点改成20
2,准备签发证书环境
准备签发证书环境
运维主机 HDSS7-200.host.com上:
安装CFSSL
证书签发工具CFSSL:R1.2
cfssl下载地址
cfssl-json下载地址
cfssl-certinfo下载地址
[root@hdss7-200 ~]# wget https://pkg.cfssl.org/R1.2/cfssl_linux-amd64 -O /usr/bin/cfssl
[root@hdss7-200 ~]# wget https://pkg.cfssl.org/R1.2/cfssljson_linux-amd64 -O /usr/bin/cfssl-json
[root@hdss7-200 ~]# wget https://pkg.cfssl.org/R1.2/cfssl-certinfo_linux-amd64 -O /usr/bin/cfssl-certinfo
chmod +x /usr/bin/cfssl*
root@hdss7-200 ~]# which cfssl-certinfo
签发证书
[root@hdss7-200 ~]# cd /opt/
[root@hdss7-200 opt]# mkdir certs
[root@hdss7-200 opt]# cd certs/
[root@hdss7-200 ~]# vi /opt/certs/ca-csr.json
签发根证书 -- 创建生成CA证书签名请求(csr)的JSON配置文件
{
"CN": "OldboyEdu", # 机构名称,浏览器使用该字段验证网站是否合法,一般写的是域名,非常重要,浏览器使用该字段验证网站是否合法
"hosts": [
],
"key": {
"algo": "rsa", # 算法
"size": 2048 # 长度
},
"names": [
{
"C": "CN", # C,国家
"ST": "beijing", # ST 州,省
"L": "beijing", # L 地区 城市
"O": "od", # O 组织名称,公司名称
"OU": "ops" # OU 组织单位名称,公司部门
}
],
"ca": {
"expiry": "175200h" # expiry 过期时间,任何证书都有过期时间.20年
}
}
签发承载式证书
[root@hdss7-200 certs]# cfssl gencert -initca ca-csr.json | cfssl-json -bare ca
[root@hdss7-200 certs]# ll
总用量 16
-rw-r--r-- 1 root root 993 12月 10 11:54 ca.csr
-rw-r--r-- 1 root root 328 12月 10 11:53 ca-csr.json
-rw------- 1 root root 1679 12月 10 11:54 ca-key.pem # 根证书的私钥
-rw-r--r-- 1 root root 1346 12月 10 11:54 ca.pem # 根证书
3,node节点docker环境
3.部署docker环境
在node主机与运维主机上:21、22、200
[root@hdss7-200 ]# curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
[root@hdss7-200 ]# mkdir -p /etc/docker
[root@hdss7-200 ]# mkdir -p /data/docker
[root@hdss7-200 ]# vi /etc/docker/daemon.json
{
"graph": "/data/docker",
"storage-driver": "overlay2",
"insecure-registries": ["registry.access.redhat.com","quay.io","harbor.od.com"],
"registry-mirrors": ["https://q2gr04ke.mirror.aliyuncs.com"],
"bip": "172.7.200.1/24", # 定义k8s主机上k8s pod的ip地址网段
"exec-opts": ["native.cgroupdriver=systemd"],
"live-restore": true
}
[root@hdss7-200 ~]# systemctl start docker
[root@hdss7-200 ~]# systemctl enable docker
[root@hdss7-21 ]# vi /etc/docker/daemon.json
{
"graph": "/data/docker",
"storage-driver": "overlay2",
"insecure-registries": ["registry.access.redhat.com","quay.io","harbor.od.com"],
"registry-mirrors": ["https://q2gr04ke.mirror.aliyuncs.com"],
"bip": "172.7.21.1/24", # 定义k8s主机上k8s pod的ip地址网段
"exec-opts": ["native.cgroupdriver=systemd"],
"live-restore": true
}
[root@hdss7-22 ]# vi /etc/docker/daemon.json
{
"graph": "/data/docker",
"storage-driver": "overlay2",
"insecure-registries": ["registry.access.redhat.com","quay.io","harbor.od.com"],
"registry-mirrors": ["https://q2gr04ke.mirror.aliyuncs.com"],
"bip": "172.7.22.1/24", # 定义k8s主机上k8s pod的ip地址网段
"exec-opts": ["native.cgroupdriver=systemd"],
"live-restore": true
}
4,准备harbor搭建
安装1.7.6以上版本
# 1.9.1不能用,添加dashboard.od.com会无法push
[root@hdss7-200 ~]# mkdir /opt/src
[root@hdss7-200 ~]# cd /opt/src/
[root@hdss7-200 src]# ls
harbor-offline-installer-v1.9.1.tgz
[root@hdss7-22 src]# tar zxvf harbor-offline-installer-v1.8.0.tgz -C /opt/
# 把软件包做版本标识,做一个软链接,便于以后升级
[root@hdss7-200 src]# cd ..
[root@hdss7-200 opt]# mv harbor/ harbor-v1.8.0
[root@hdss7-200 opt]# ln -s /opt/harbor-v1.8.0/ /opt/harbor
[root@hdss7-200 opt]# ll
总用量 0
drwx--x--x 4 root root 28 12月 10 14:30 containerd
lrwxrwxrwx 1 root root 19 12月 10 15:00 harbor -> /opt/harbor-v1.8.0/
drwxr-xr-x 2 root root 100 12月 10 14:58 harbor-v1.8.0
drwxr-xr-x 2 root root 49 12月 10 14:56 src
编辑harbor文件
[root@hdss7-200 opt]# cd harbor
[root@hdss7-200 harbor]# vi harbor.yml
5 hostname: harbor.od.com
10 port: 180
27 harbor_admin_password: Harbor12345
40 data_volume: /data/harbor
87 location: /data/harbor/logs # 更改日志存储路径
[root@hdss7-200 harbor]# mkdir -p /data/harbor/logs
单机编排工具
[root@hdss7-200 harbor]# yum install -y docker-compose
[root@hdss7-200 harbor]# rpm -qa docker-compose
docker-compose-1.18.0-4.el7.noarch
安装
[root@hdss7-200 harbor]# ./install.sh
[root@hdss7-200 harbor]# docker-compose ps
每次重启docker需要执行
[root@hdss7-200 harbor]# docker-compose up -d
安装nginx做反向代理
[root@hdss7-200 harbor]# yum install -y nginx
[root@hdss7-200 harbor]# vi /etc/nginx/conf.d/harbor.od.com.conf
server {
listen 80;
server_name harbor.od.com;
client_max_body_size 1000m;
location / {
proxy_pass http://127.0.0.1:180;
}
}
检测配置文件
[root@hdss7-11 harbor]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
[root@hdss7-11 harbor]# systemctl start nginx
[root@hdss7-11 harbor]# systemctl enable nginx
dns服务器
[root@hdss7-11 named]# vi /var/named/od.com.zone
$ORIGIN od.com.
$TTL 600 ; 10 minutes
@ IN SOA dns.od.com. dnsadmin.od.com. (
2019120902 ; serial # 往后滚动一个记录编号02,每次更改配置,必须滚动一个序号
10800 ; refresh (3 hours)
900 ; retry (15 minutes)
604800 ; expire (1 week)
86400 ; minimum (1 day)
)
NS dns.od.com.
$TTL 60 ; 1 minute
dns A 192.168.153.11
harbor A 192.168.153.200
[root@hdss7-11 named]# systemctl restart named
验证
[root@hdss7-11 named]# dig -t A harbor.od.com +short
http://harbor.od.com/
新建一个public项目,公开
[root@hdss7-200 harbor]# docker pull nginx:1.7.9
[root@hdss7-200 harbor]# docker tag nginx:1.7.9 harbor.od.com/public/nginx:v1.7.9
[root@hdss7-200 harbor]# docker login harbor.od.com
[root@hdss7-200 harbor]# docker push harbor.od.com/public/nginx:v1.7.9
比较好的笔记
(1)https://www.cnblogs.com/linuxk/category/1248289.html?page=2
(2)https://www.cnblogs.com/gshelldon/p/14735378.html
浙公网安备 33010602011771号