K8S(二)安装配置篇

架构图

Kubernetes节点

在这张系统架构图中,我们把服务分为运行在工作节点上的服务和组成集群级别控制板的服务。

Kubernetes节点有运行应用容器必备的服务,而这些都是受Master的控制。

每次个节点上当然都要运行Docker。Docker来负责所有具体的映像下载和容器运行。

Kubernetes主要由以下几个核心组件组成:

  • etcd保存了整个集群的状态;
  • apiserver提供了资源操作的唯一入口,并提供认证、授权、访问控制、API注册和发现等机制;
  • controller manager负责维护集群的状态,比如故障检测、自动扩展、滚动更新等;
  • scheduler负责资源的调度,按照预定的调度策略将Pod调度到相应的机器上;
  • kubelet负责维护容器的生命周期,同时也负责Volume(CVI)和网络(CNI)的管理;
  • Container runtime负责镜像管理以及Pod和容器的真正运行(CRI);
  • kube-proxy负责为Service提供cluster内部的服务发现和负载均衡;

除了核心组件,还有一些推荐的Add-ons:

  • kube-dns负责为整个集群提供DNS服务
  • Ingress Controller为服务提供外网入口
  • Heapster提供资源监控
  • Dashboard提供GUI
  • Federation提供跨可用区的集群
  • Fluentd-elasticsearch提供集群日志采集、存储与查询

参考学习文档  https://github.com/easzlab/kubeasz

Host Name Role IP conf version
master-bak        master  (用于测试添加) 10.2.33.101 4C8G         centos7.5
master-1 master  etcd  部署节点 10.2.33.100 4C8G centos7.5
master-2 master  etcd  10.2.33.99 4C8G centos7.5
master-3 master  etcd  10.2.33.98 4C8G centos7.5
node-1 node 10.2.33.97 8C16G centos7.5
node-2 node 10.2.33.96 8C16G centos7.5
node-3         node 10.2.33.95 8C16G centos7.5
node-bak node(用于测试添加) 10.2.33.94 8C16G centos7.5

所有服务器初始化、安装python2.7

部署节点配置如下:

yum -y install ansible
ssh-keygen
ssh-copy-id -i /root/.ssh/id_rsa root@10.2.33.95-100

curl -C- -fLO --retry 3 https://github.com/easzlab/kubeasz/releases/download/3.1.1/ezdown
chmod +x ezdown
./ezdown -D
上述脚本运行成功后,所有文件(kubeasz代码、二进制、离线镜像)均已整理好放入目录/etc/kubeasz

cd /etc/kubeasz/
./ezctl new k8s-01
cd clusters/k8s-01/
然后根据提示配置'/etc/kubeasz/clusters/k8s-01/hosts' 和 '/etc/kubeasz/clusters/k8s-01/config.yml':
根据前面节点规划修改hosts 文件和其他集群层面的主要配置选项;其他集群组件等配置项可以在config.yml 文件中修改。

# 一键安装
ezctl setup k8s-01 all
# 或者分步安装,具体使用 ezctl help setup 查看分步安装帮助信息
# ezctl setup k8s-01 01
# ezctl setup k8s-01 02
# ezctl setup k8s-01 03
# ezctl setup k8s-01 04
# ezctl setup k8s-01 05
# ezctl setup k8s-01 06
# ezctl setup k8s-01 07

##########dashboard#########

[root@localhost ssl]# kubectl get svc -n kube-system|grep dashboard
dashboard-metrics-scraper   ClusterIP   10.68.37.90     <none>        8000/TCP                 16h
kubernetes-dashboard        NodePort    10.68.154.239   <none>        443:32543/TCP            16h
[root@localhost ssl]# kubectl get svc -n kube-system -o wide |grep dashboard
dashboard-metrics-scraper   ClusterIP   10.68.37.90     <none>        8000/TCP                 16h   k8s-app=dashboard-metrics-scraper
kubernetes-dashboard        NodePort    10.68.154.239   <none>        443:32543/TCP            16h   k8s-app=kubernetes-dashboard

#kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep admin-user | awk '{print $1}')
Name:         admin-user-token-bhpgw
Namespace:    kube-system
Labels:       <none>
Annotations:  kubernetes.io/service-account.name: admin-user
              kubernetes.io/service-account.uid: e14095d4-098b-42d3-8e04-84ac8e47e5e6

Type:  kubernetes.io/service-account-token

Data
====
ca.crt:     1350 bytes
namespace:  11 bytes
token:      eyJhbGciOiJSUzI1NiIsImtpZCI6InA1OFZxRzlrZUVrc0c0OTRlZ0pKMWFDVnhhMWxhYVRJYnRWNXZsQU03NTAifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlLXN5c3RlbSIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJhZG1pbi11c2VyLXRva2VuLWJocGd3Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQubmFtZSI6ImFkbWluLXVzZXIiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC51aWQiOiJlMTQwOTVkNC0wOThiLTQyZDMtOGUwNC04NGFjOGU0N2U1ZTYiLCJzdWIiOiJzeXN0ZW06c2VydmljZWFjY291bnQ6a3ViZS1zeXN0ZW06YWRtaW4tdXNlciJ9.bp-l1M-yu4qnpAyeCuVoptlW1g8awQDI0XD89dr-RCNDQGpnRVpt5Ws5K0yLRSilA8Q4YdlHHQMckGmxdom0TiFk9Vr5BukdO51g7VIyOd__ZnIbRRRTtuNpO7PvkxzxyVRW9a5I89JDLPb2ptKLHBrolVGJK3DHZJbqc29ATYlYxoN2cDNYmNjacGXIyKfAxZkrcxxMEx9AebLAfbGQaVzKXPUapPMhTDo-flcR9Z3xBKXXoS0AQ3pA8rGOGi7qmsvXYEYvW_RKj2zCSZw7Cr_5Qnb6_EKB6lmSRGa7Uec5TeMyiw-FYSQmaVVOOF1wk-bDxauaJmh7prqRNw85tA

火狐浏览器访问
https://master_ip:32543   (输入以上的token,admin管理用户登陆)

##########Prometheus#########

/etc/kubeasz/clusters/k8s-01/config.yml 中配置项 prom_install: "yes"
ezctl setup k8s-01 07  (多执行几次,会下载失败,多等会安装慢)
#查询安装状态
[root@localhost k8s-01]# kubectl get pod,svc -n monitor
NAME                                                         READY   STATUS    RESTARTS      AGE
pod/alertmanager-prometheus-kube-prometheus-alertmanager-0   2/2     Running   0             63m
pod/prometheus-grafana-55c5f574d9-z7fpk                      2/2     Running   0             64m
pod/prometheus-kube-prometheus-operator-5f6774b747-8qvrx     1/1     Running   0             64m
pod/prometheus-kube-state-metrics-5f89586745-4zqqs           1/1     Running   0             64m
pod/prometheus-prometheus-kube-prometheus-prometheus-0       2/2     Running   1 (23m ago)   63m
pod/prometheus-prometheus-node-exporter-2smhh                1/1     Running   0             64m
pod/prometheus-prometheus-node-exporter-k24jp                1/1     Running   0             64m
pod/prometheus-prometheus-node-exporter-n5wxb                1/1     Running   0             64m
pod/prometheus-prometheus-node-exporter-vm5zl                1/1     Running   0             64m
pod/prometheus-prometheus-node-exporter-xwpv4                1/1     Running   0             64m
pod/prometheus-prometheus-node-exporter-zjv95                1/1     Running   0             64m

NAME                                              TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)                      AGE
service/alertmanager-operated                     ClusterIP   None            <none>        9093/TCP,9094/TCP,9094/UDP   63m
service/prometheus-grafana                        NodePort    10.68.202.166   <none>        80:30903/TCP                 64m
service/prometheus-kube-prometheus-alertmanager   NodePort
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

疯飙的蜗牛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值