k8s(三)生产环境快速部署(kubeasz版本2.0.2)

链接:https://github.com/easzlab/kubeasz

部署步骤

按照示例example/hosts.multi-node的节点配置,准备4台虚机,搭建一个多主高可用集群。

1.基础系统配置

  • 推荐内存2G/硬盘30G以上
  • 最小化安装CentOS 7 Minimal
  • 配置基础网络、更新源、SSH登录等

2.在每个节点安装依赖工具

  • yum makecache fast
  • yum update
  • yum install python -y

3.在ansible控制端安装及准备ansible

  • ssh-keygen
  • ssh-copy-id -i /root/.ssh/id_rsa.pub root@IP
  • yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
  • yum install ansible -y
  • yum install git python-pip -y
  • pip install pip --upgrade -i Simple Index
  • pip install ansible==2.6.18 netaddr==0.7.19 -i Simple Index

4.在ansible控制端安装

下载工具脚本easzup,举例使用kubeasz版本2.0.2

export release=2.0.2 
curl -C- -fLO --retry 3 https://github.com/easzlab/kubeasz/releases/download/${release}/easzup
chmod +x ./easzup 
# 使用工具脚本下载 ./easzup -D
cd /etc/ansible && cp example/hosts.multi-node hosts

根据实际情况更改hosts内容

验证ansible : ansible all -m ping

5.在ansible控制端编排k8s安装

# 分步安装

ansible-playbook 01.prepare.yml 
ansible-playbook 02.etcd.yml
ansible-playbook 03.containerd.yml 
ansible-playbook 03.docker.yml 
ansible-playbook 04.kube-master.yml 
ansible-playbook 05.kube-node.yml 
ansible-playbook 06.network.yml 
ansible-playbook 07.cluster-addon.yml 
# 一步安装 #
ansible-playbook 90.setup.yml

dashboard

安装部署

# 部署dashboard 主yaml配置文件 
$ kubectl apply -f /etc/ansible/manifests/dashboard/kubernetes-dashboard.yaml 
# 创建可读可写 admin Service Account
$ kubectl apply -f /etc/ansible/manifests/dashboard/admin-user-sa-rbac.yaml 
# 创建只读 read Service Account 
$ kubectl apply -f /etc/ansible/manifests/dashboard/read-user-sa-rbac.yaml

验证

# 查看pod 运行状态
kubectl get pod -n kube-system | grep dashboard 
kubernetes-dashboard-7c74685c48-9qdpn 1/1 Running 0 22s 
# 查看dashboard service 
kubectl get svc -n kube-system|grep dashboard 
kubernetes-dashboard NodePort 10.68.219.38 <none> 443:24108/TCP 53s 
# 查看集群服务 
kubectl cluster-info|grep dashboard kubernetes-dashboard is running at https://192.168.1.1:6443/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy 
# 查看pod 运行日志 
kubectl logs kubernetes-dashboard-7c74685c48-9qdpn -n kube-system

登录

使用https://NodeIP:NodePort 方式访问 dashboard,支持两种登录方式:Kubeconfig、令牌(Token)

选择“令牌(Token)”方式登录,复制下面输出的admin token 字段到输入框(admin)

# 创建Service Account 和 ClusterRoleBinding 
$ kubectl apply -f /etc/ansible/manifests/dashboard/admin-user-sa-rbac.yaml 
# 获取 Bearer Token,找到输出中 ‘token:’ 开头那一行 
$ kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep admin-user | awk '{print $1}')

选择“令牌(Token)”方式登录,复制下面输出的read token 字段到输入框(只读)

# 创建Service Account 和 ClusterRoleBinding 
$ kubectl apply -f /etc/ansible/manifests/dashboard/read-user-sa-rbac.yaml 
# 获取 Bearer Token,找到输出中 ‘token:’ 开头那一行 
$ kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep read-user | awk '{print $1}')

Metrics Server

从 v1.8 开始,资源使用情况的度量(如容器的 CPU 和内存使用)可以通过 Metrics API 获取;前提是集群中要部署 Metrics Server,它从Kubelet 公开的Summary API采集指标信息

安装

已在上面安装成功 , ansible-play /etc/ansible/07.cluster-addon.yml

验证

[root@zxl0 tasks]# kubectl get apiservice |grep metrics
v1beta1.metrics.k8s.io kube-system/metrics-server True 35m
[root@zxl0 tasks]# kubectl top node
NAME CPU(cores) CPU% MEMORY(bytes) MEMORY%
10.2.16.101 57m 1% 1658Mi 53%
10.2.16.102 85m 2% 1731Mi 56%
10.2.16.103 58m 1% 1193Mi 38%
10.2.16.104 37m 0% 1248Mi 40%

安装 KubeSphere

前提条件

  • Kubernetes 版本 : 1.13.0 ≤ K8s version < 1.16;
  • Helm 版本: 2.10.0 ≤ Helm < 3.0.0,且已安装了 Tiller(v3.0 支持 Helm v3);参考 如何安装与配置 Helm
  • 集群的可用 CPU > 1 C,可用内存 > 2 G;且集群能够访问外网
  • 集群已有默认的存储类型(StorageClass);

安装helm

curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3
chmod 777 get_helm.sh
./get_helm.sh
#如在线安装不成功,下载离线包 https://download.csdn.net/download/zhangxueleishamo/12846302
tar -zxvf helm-v3.3.1-linux-amd64.tar.gz
mv linux-amd64/helm /usr/local/bin/
helm completion bash > .hermrc ;echo "source .helmrc" >> .bashrc
helm repo add stable https://kubernetes-charts.storage.googleapis.com/
helm install nginx stable/nginx-ingress

安装tiller

kubectl -n kube-system create serviceaccount tiller
kubectl create clusterrolebinding tiller --clusterrole cluster-admin --serviceaccount=kube-system:tiller
helm init --service-account tiller --skip-refresh --tiller-image registry.cn-shanghai.aliyuncs.com/rancher/tiller:v2.15.1
helm list
kubectl apply -f https://raw.githubusercontent.com/kubesphere/ks-installer/v3.0.0/deploy/kubesphere-installer.yaml
kubectl apply -f https://raw.githubusercontent.com/kubesphere/ks-installer/v3.0.0/deploy/cluster-configuration.yaml

其他命令

删除pod

#查看所有pod: 
kubectl get pods --all-namespaces

#查看指定namespace的pod名称: 
kubectl get pod -n kubesphere-system

#删除指定的pod :
kubectl delete pod (podname) -n (namespace)

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

疯飙的蜗牛

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

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

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

打赏作者

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

抵扣说明:

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

余额充值