文章目录

  • 一: master 02 部署
  • 二: 部署两台负载均衡器
  • 三: 部署dashboard

一: master 02 部署

#环境初始化
systemctl disable  firewalld --now
systemctl status firewalldsetenforce 0
sed -i 's/enforcing/disabled/' /etc/selinux/config swapoff -a
sed -ri 's/.*swap.*/#&/' /etc/fstab hostnamectl  set-hostname master02cat >> /etc/hosts <<EOF
192.168.23.103 master01
192.168.23.104 node01
192.168.23.105 node02
192.168.23.106 master02
EOFscp /etc/hosts 192.168.23.103:/etc/hosts
#将master01上的证书文件,master组件配置文件 拷贝到master02节点
[root@master01 ~]# scp -r /opt/etcd/ 192.168.23.10:/opt/
[root@master01 ~]# scp -r /opt/kubernetes/ 192.168.23.10:/opt/
[root@master01 system]# cd /usr/lib/systemd/system
[root@master01 system]# scp {kube-apiserver,kube-controller-manager,kube-scheduler}.service 192.168.23.10:`pwd`
#master02节点修改kube-apiserver的ip
[root@master02 ~]# vim /opt/kubernetes/cfg/kube-apiserver
#修改以下内容
.....
--bind-address=192.168.23.10 \
.....
--advertise-address=192.168.23.10 \
....

#在master02上开启各个服务,并设置开机自启
[root@master02 ~]# systemctl  enable --now kube-apiserver.service kube-controller-manager.service kube-scheduler.service [root@master02 ~]# ln -s /opt/kubernetes/bin/* /usr/local/bin/
[root@master02 ~]# kubectl get nodes
NAME             STATUS   ROLES    AGE   VERSION
192.168.23.104   Ready    <none>   22h   v1.12.3
192.168.23.105   Ready    <none>   21h   v1.12.3
[root@master02 ~]# kubectl get nodes -o wide#此时,在master02节点上查到node节点的状态,仅是从etcd 查询到的信息。而此时node节点实际并为与master02节点建立通信连接,因此需要使用一个vip吧node节点与master节点关联起来

二: 部署两台负载均衡器

#将两台负载均衡器的firewalld和selinux关闭
systemctl  disable --now firewalld
setenforce 0
sed -i 's/enforcing/disabled/' /etc/selinux/config#在两台负载均衡器上,配置yum源,下载nginx
cat > /etc/yum.repos.d/nginx.repo << 'EOF'
[nginx]
name=nginx reoo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
EOF
yum -y install nginx
#修改nginx配置文件,做4层反向代理
vim /etc/nginx/nginx.conf
stream {log_format main '$remote_addr $upstream_addr - [$time_local] $status $upstream_bytes_sent';access_log /var/log/nginx/k8s-access.log main; upstream k8s-apiserver {server 192.168.23.10:6443;server 192.168.23.103:6443;}    server {listen 6443;proxy_pass k8s-apiserver;}    }  http {......

nginx -t systemctl  enable --now nginx
systemctl  status nginxnetstat -natp | grep nginx

#配置keepalived,设置VIP为 192.168.23.18
yum -y install keepalived.x86_64
vim /etc/keepalived/keepalived.conf
! Configuration File for keepalivedglobal_defs {notification_email {acassen@firewall.locfailover@firewall.locsysadmin@firewall.loc}notification_email_from Alexandre.Cassen@firewall.locsmtp_server 127.0.0.1smtp_connect_timeout 30router_id NGINX_MASTER    #备用设置为NGINX_BACKUP
}
vrrp_script check_nginx {script "/etc/nginx/check_nginx.sh"
}vrrp_instance VI_1 {state MASTER    #设置角色,备用为BACKUPinterface ens33virtual_router_id 51priority 100     #备用设置为90advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {192.168.23.18/24   #指定vip}track_script {check_nginx}
}
systemctl enable --now keepalived
#在负载均衡器的master上使用ip a 命令可以看到 vip
ip a | grep 192.168.23.18#配置nginx的检查脚本
vim /etc/nginx/check_nginx.sh
#!/bin/bash
count=$(ps -ef | grep nginx | egrep -cv "grep|$$")if [ "$count" -eq 0 ];thensystemctl stop keepalived
fichmod  +x /etc/nginx/check_nginx.sh

#修改所有node节点上的bootsrap.kubeconfig,kubelete.kubeconfig配置文件为VIP
cd /opt/kubernetes/cfg/vim bootstrap.kubeconfig
server: https://192.168.23.18:6443vim kubelet.kubeconfig
server: https://192.168.23.18:6443vim kube-proxy.kubeconfig
server: https://192.168.23.18:6443#重启kubelet和 kube-proxy
systemctl  restart kubelet.service  kube-proxy.service

#在master01上将cluster-admin 角色授予用户system:anoymous
kubectl create clusterrolebinding cluster-system-anonymous --clusterrole=cluster-admin --user=system:anonymous#查看pod信息,获取pod 的ip. 可以看到ip为172.17.4.2,调度在192.168.23.104 node节点上
[root@master01 system]# kubectl  get pods -o wide
NAME                          READY   STATUS    RESTARTS   AGE    IP           NODE             NOMINATED NODE
nginx-test-7dc4f9dcc9-4dxnr   1/1     Running   0          105m   172.17.4.2   192.168.23.104   <none>#在node节点上,使用curl访问curl 172.17.4.2#在master 查看nginx的日志
kubectl  logs nginx-test-7dc4f9dcc9-4dxnr

三: 部署dashboard

#软件包 链接https://github.com/kubernetes/kubernetes/tree/master/cluster/addons/dashboard
#在master01上,将软件包Dashboard.zip上传到/opt目录下
[root@master01 opt]# ls Dashboard.zip
Dashboard.zip#创建dashborad 工作目录mkdir /opt/k8s/dashborad#解压Dashboard.zip,解压到dashborad的工作目录,一共有7个文件
unzip Dashboard.zip  -d /opt/k8s/dashborad/

[root@master01 opt]# cd /opt/k8s/dashborad/
[root@master01 dashborad]#vim k8s-admin.yamlapiVersion: v1
kind: ServiceAccount
metadata:name: dashboard-adminnamespace: kube-system
---
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:name: dashboard-admin
subjects:- kind: ServiceAccountname: dashboard-adminnamespace: kube-system
roleRef:kind: ClusterRolename: cluster-adminapiGroup: rbac.authorization.k8s.io

#使用kubectl create 创建resources,使用 -f 指定yaml文件
for i in `ls *yaml`
do
kubectl create -f $i
done#指定命名空间,查看资源
kubectl get role,rolebinding -n kube-system
kubectl get secret -n kube-system
kubectl get configmap  -n kube-system
kubectl get serviceaccount,deployment  -n kube-system
kubectl get pods,svc  -n kube-system

#访问测试:firefox火狐浏览器则可以直接访问,而谷歌浏览器因为缺少加密通信认证证书,无法直接访问cd /opt/k8s/dashborad/vim dashboard-controller.yaml 46           # PLATFORM-SPECIFIC ARGS HERE47           - --auto-generate-certificates#添加如下两行,指定加密的私钥和证书文件48           - --tls-key-file=dashboard-key.pem49           - --tls-cert-file=dashboard.pemls dashboard-cert.sh
chmod  +x dashboard-cert.s./dashboard-cert.sh /opt/k8s/k8s-cert/
ls *.pem

#重新部署。当apply不生效时,先使用delete清楚资源,再使用 apply创建
kubectl  apply -f dashboard-controller.yaml#由于可能会更换分配的节点,所以要再次查看你分配的节点服务器ip和端口
kubectl  get pods,svc -n kube-system -o wide

#获取token的简要信息,名为dashboard-admin-token-xxxxxx
kubectl  get secrets -n kube-system#获取令牌序列号
kubectl  describe  secrets dashboard-admin-token-66rnj -n kube-system

k8s多节点(接单节点继续)相关推荐

  1. 腾讯云数据库MySQL架构双节点、三节点和单节点区别对比

    腾讯云MySQL数据库架构分为双节点.三节点和单节点,顾名思义单节点就是只有一个节点,而双节点包含主节点和备节点,三节点包含主节点.备节点1和备节点2,单节点MySQL数据库可靠性较低.腾讯云百科来详 ...

  2. kubernetes (k8s)的二进制部署单节点(etcd和flannel网络)

    文章目录 1 常见的k8s部署方式 2 环境准备 2.1 拓扑 2.2 所有主机关闭防火墙,selinux,swap 2.3 所有主机配置主机名,并再maser上做主机映射 2.4 所有主机将桥接的I ...

  3. HDFS读写流程以及多节点、单节点磁盘负载均衡

    副本放置策略 生产上建议3个副本. 第一个副本: 假如上传节点为DN节点,优先放置本节点:否则就随机挑选一台磁盘不太慢,CPU不太繁忙的节点. 第二个副本: 放置在于第一个副本的不同的机架的节点上 第 ...

  4. 线段树线段树的创建线段树的查询单节点更新区间更新

    目录 线段树 什么是线段树? 线段树的创建 线段树的查询 单节点更新 区间更新 未完待续 线段树 实现问题:常用于求数组区间最小值 时间复杂度:(1).建树复杂度:nlogn.(2).线段树算法复杂度 ...

  5. 『中级篇』Minikube快速搭建K8S单节点环境(61)

    原创文章,欢迎转载.转载请注明:转载自IT人故事会,谢谢! 原文链接地址:『中级篇』Minikube快速搭建K8S单节点环境(61) 去介绍k8s的集群安装,本地搭建一个k8s的集群. 不会科学上网的 ...

  6. k8s二进制单节点部署

    k8s二进制单节点部署 常见的k8s部署方式 Kubernetes二进制部署(单节点) 环境准备 部署etcd集群(这里就不在单独的服务器上部署,直接部署在各节点上,节省资源) 下载证书制作工具 利用 ...

  7. K8S二进制部署---单节点master

    目录 一.环境准备 二.部署etcd集群 一.环境准备 先准备3台主机,首先搭建Master单节点集群. 因为 Master 是整个 K8S 集群的大脑,没有 Master 接下来的每一步操作都会变得 ...

  8. k8s单节点无法启动pod

    k8s单节点无法启动pod 错误信息:pod didn't tolerate 原因:默认 k8s 不允许往 master 节点装东西,强行设置下允许 解决方案:如下(参考[k8s 1.12.1 的坑和 ...

  9. 啃K8s之快速入门,以及哭吧S(k8s)单节点部署

    啃K8s之快速入门,以及哭吧S(k8s)单节点部署 一:Kubernets概述 1.1:Kubernets是什么? 1.2:Kubernets特性 1.3:Kubernets群集架构与组件 1.3.1 ...

  10. 认识kubernetes(k8s),k8s单节点etcd部署

    认识kubernetes(k8s),k8s单节点etcd部署 一.k8s概述 (一).k8s简介 (二).k8s特性 (三).k8s群集架构与组件 (四).k8s核心概念 (五).k8s三种部署方式 ...

最新文章

  1. 编写图形界面程序,显示一个红色反弹球的程序,当该球撞击Applet边框时,它应从边框弹回并以相反方向45°运动。
  2. wxWidgets:wxWebRequest 示例
  3. 树的同构(c语言静态链表实现)
  4. 【城市沙龙】LiveVideoStack Meet|西安:人文历史遇到流媒体算法
  5. python 声明变量_Python的变量声明
  6. 使用Java和Spring构建现代Web应用程序
  7. 力扣面试题16.05.阶乘尾数
  8. python3源码剖析新版_《Python源码剖析》
  9. Artistic Style Dev CPP 运算符 前后空格
  10. Oracle VM VirtualBox 使用教程,说实话也就那样吧
  11. Flask知识点串烧(三)--- JInjia2模板
  12. 圣水观音湖规划--------------三维虚拟展示系统
  13. 2020机修钳工(中级)考试及机修钳工(中级)复审模拟考试
  14. 新零售如何做到线上线下相结合?
  15. Axios源码深度剖析
  16. 网站汇总|有趣or猎奇|素材|免费
  17. 计算机学院毕业设计题库,2015计算机学院毕业设计(优秀)--一种新型车路无线报站系统的设计与实现题库.doc...
  18. android 蓝牙之数据传输
  19. 动态规划:0-1背包问题(递归+备忘录)
  20. ECG分析:基于深度学习的ECG心律失常分类入门(5)

热门文章

  1. java分割面板_Split 面板分割
  2. python ui自动化_pythonUI自动化整理
  3. centos 程序 mysql数据库文件位置,CentOS 更改MySQL数据库目录位置
  4. html网页主题结构,HTML5 基本结构
  5. 模型部署到移动端_TensorFlow Lite 自然语言处理模型的最新功能,助力设备端 NLP 部署...
  6. 关于python的全局变量和局部变量、以下描述错误的是_Python:全局变量与局部变量的问题...
  7. ubuntu 设置清华源、阿里云源
  8. 实现自己的轻量级http调用工具
  9. 一篇小黄文牵出国内最大黑产
  10. 下一清分日期是几年前_下一清分日期是什么意思