Jesse导读:11月9号,我在中国.NET开发者峰会(.NET Conf China 2019)上分享了之前ASP.NET Core和Kubernetes做微服务的经验,在10号的时候又联合张善友、陈计节两位大佬一起做了一个6个小时的动手实践,得到了非常好的反馈。学习K8S需要首先拥有一个K8S的操作环境,由于它的复杂性以及不可描述的原因导致这很多同学直接被卡在了这里。redz(人称小红)是我们团队中的成员之一,这篇文章是他在自己用VMWare虚拟机上搭了3台虚拟机并且在这3台虚拟机上搭建K8S 1.16版本的过程 。

相关环境

  • CentOS 7.6 (2-3台)

  • K8s 1.16.2

  • Docker 18.09.3

需要自己准备2-3台虚拟机来安装CentOS7.6系统,在开始之前先修改主机名称(主机名称不能重复-如果重复即使work节点加入成功,master看不到work节点)

hostnamevi /etc/hostname

在vi中编辑hostname之后输入:wq保存,之后重启系统即可。

关闭防火墙

systemctl stop firewalldsystemctl disable firewalld

禁用swap

swapoff -a
  • 修改etc/fstab

  • 在行首加 #,注释/dev/mapper/centos-swap swap

安装Docker

  • k8s支持的Docker版本

sudo yum install -y yum-utils device-mapper-persistent-data lvm2sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.reposudo yum install docker-ce-18.09.1 docker-ce-cli-18.09.1 containerd.iosystemctl start docker.servicesystemctl enable docker.service

添加K8s 国内镜像源

cat>>/etc/yum.repos.d/kubrenetes.repo<[kubernetes]name=Kubernetes Repobaseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/gpgcheck=0gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpgEOF
安装K8s所需要的3个组件
yum install -y kubeadm  kubelet kubectl

设置k8s开机自启动

systemctl enable kubelet.service

K8s集群

创建K8s集群 Master Node

在master节点上执行以下命令

kubeadm init --image-repository registry.aliyuncs.com/google_containers \    --pod-network-cidr=10.244.0.0/16 \    --ignore-preflight-errors=cri \    --kubernetes-version=1.16.2
  • 输出以下信息表示,K8s与Docker版本不一致

[WARNING SystemVerification]: this Docker version is not on the list of validated versions: 19.03.4. Latest validated version: 18.09
  • 输出以下信息表示,swap没有被禁用

[ERROR Swap]: running with swap on is not supported. Please disable swap
  • 输出以下信息表示,请执行echo '1' > /proc/sys/net/bridge/bridge-nf-call-iptables

[ERROR FileContent--proc-sys-net-bridge-bridge-nf-call-iptables]: /proc/sys/net/bridge/bridge-nf-call-iptables contents are not set to 1
  • 安装成功后, 会显示如下的信息 按步执行即可

mkdir -p $HOME/.kubesudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/configsudo chown $(id -u):$(id -g) $HOME/.kube/config

Init Network Flannel 初始化网络插件

kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
  • 由于某种不可抗力 请先下载yml至本机后执行 kubectl apply -f kube-flannel.yml

加入K8s集群 Slave Node

  • 对于从节点 执行步骤至安装K8s 无需init

  • 在master节点上执行, 获取join-token

kubeadm token create --print-join-commandkubeadm join 192.168.69.128:6443 --token uc826o.l9na62a2ckmf5rjo --discovery-token-ca-cert-hash sha256:2be9656d7b4c3e9aab2b1259b0eea948f0b0b05d082267aa5676967cc495c168
  • 从节点执行join-token

K8s集群相关命令

  • 集群获取节点 kubectl get nodes

  • 集群删除节点 kubectl delete node

  • 被删除的节点重新加入集群 先执行 kubeadm reset

K8s UI kubernetes-dashboard

部署yaml

kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0-beta4/aio/deploy/recommended.yaml
  • 此部署文档镜像来源于docker hub

  • 假设部署文档由于众所周知的原因不可访问 请先通过技术手段获取文档后执行部署命令

kubectl apply -f recommended.yaml
  • 使用NodePort方式暴露30065端口 用于非k8s节点中访问 修改yaml以下内容 重新执行部署命令

 kind: Service apiVersion: v1 metadata:   labels:     k8s-app: kubernetes-dashboard   name: kubernetes-dashboard   namespace: kubernetes-dashboard spec:   type: NodePort  ports:    - port: 443      targetPort: 8443      nodePort: 30065  selector:      k8s-app: kubernetes-dashboard
  • NodePort方式默认端口范围30000-32767

  • 获取kubernetes-dashboard访问token

kubectl -n kube-system describe $(kubectl -n kube-system get secret -n kube-system -o name | grep namespace) | grep token
  • 在firefox中访问该网址 https://[k8s节点]:30065选择token登录并输入访问token

  • kubernetes-dashboard要求使用HTTPS Chrome不能访问此类没有认证的web,可以使用firefox进入访问

本机添加kubectl

在windows安装 kubectl

1:choco install kubernetes-cli

2:在master 主机上进入/etc/kubernetes/admin.conf 把admin.conf 下载下来,拷贝到本机当前用户的 .kube\config里面 如果当前用户下没有.kube 使用powershell 建立一个文件夹和config里面

ASP.NET Core微服务 on K8S

k8s安装部署步骤_30分钟无坑部署K8S单Master集群相关推荐

  1. Kubeadm 在线快速部署 1.23 单master集群 【实验用】

    飞机票 1. 前置知识点 1.1 准备环境 1.2 操作系统初始化配置[所有节点] 2. 安装Docker/kubeadm/kubelet[所有节点] 2.1 安装Docker 2.2 添加阿里云YU ...

  2. kubernetes单Master集群部署--Node节点部署组件(6)

    1.kubelet组件授权 Master apiserver启用TLS认证后,Node节点kubelet组件想要加入集群,必须使用CA签发的有效证书才能与apiserver通信,当Node节点很多时, ...

  3. 30分钟无坑部署K8S单Master集群

    Jesse导读:11月9号,我在中国.NET开发者峰会(.NET Conf China 2019)上分享了之前ASP.NET Core和Kubernetes做微服务的经验,在10号的时候又联合张善友. ...

  4. K8S搭建单Master集群(二进制部署方式)

    一. 安装要求 (1)多台服务器,操作系统 CentOS7.6-86_x64 (2)硬件配置:2GB或更多RAM,2个CPU或更多CPU,硬盘40GB或更多 (3)可以访问外网,需要拉取镜像,如果服务 ...

  5. 二进制搭建kubernetes多master集群【三、配置k8s master及高可用】

    前面两篇文章已经配置好了etcd和flannel的网络,现在开始配置k8s master集群. etcd集群配置参考:二进制搭建kubernetes多master集群[一.使用TLS证书搭建etcd集 ...

  6. 2021年最新 k8s安装部署步骤 kubernetes从入门到实践 K8S实战容器化迁移实战教程 K8S存储之Ceph分布式存储系统 K8S架构师实战指南

    2021年最新 k8s安装部署步骤 kubernetes从入门到实践 K8S实战容器化迁移实战教程 K8S存储之Ceph分布式存储系统 K8S架构师实战指南

  7. 边缘使用 K8s 门槛太高?OpenYurt 这个功能帮你快速搭建集群!

    OpenYurt 作为阿里巴巴首个开源的边缘云原生项目,涉及到边缘计算和云原生两个领域.然而,许多边缘计算的开发者并不熟悉云原生相关的知识.为了降低 OpenYurt 的使用门槛,帮助更多地开发者快速 ...

  8. kubernetes-1.11.0集群部署之master集群 (二)

    kubernetes-1.11.0集群部署之master集群 (二) Master master 的组件有以下: 1. API ServerApi server提供HTTP/HTTPS RESTful ...

  9. Cloudera Manager安装之利用parcels方式安装单节点集群(包含最新稳定版本或指定版本的安装)(添加服务)(CentOS6.5)(四)...

    前期博客 Cloudera Manager安装之Cloudera Manager 5.3.X安装(三)(tar方式.rpm方式和yum方式) 说在前面的话(看清楚就好!!!) 我这篇博客,是两种方式都 ...

最新文章

  1. 教育技术研究生必读书目(转载)
  2. 联想618首战告捷,是战略潜力的释放还是最后的“狂欢”?
  3. SpringBoot maxConnections、maxThreads、acceptCount解析
  4. php在线考试系统详细步骤
  5. STM3库文件 hal_uart.c的使用
  6. 2022,微博稳了吗?
  7. 系统架构师论文-论新技术的引进
  8. PPT嵌入视频,添加控件按钮控制视频播放
  9. matlab计算天线方向性系数,天线方向图(Antenna Pattern)的设计解析思路
  10. leet198.打家劫舍
  11. 获取各大电商平台,item_get_app - 获得淘宝app商品详情原数据API返回数据说明
  12. Android基础——Android系统概览
  13. 使用webmagic模拟post表单提交爬取易查分成绩
  14. not compiled to use: SSE4.1 SSE4.2 AVX AVX2 FMA
  15. 微积分知识补充——兼怀102
  16. 多功能在线起名取名查重工具微信小程序源码 可开流量主 带安装教程
  17. 如何流畅远程登录另一台电脑(尽可能流畅的远程桌面连接设置)
  18. 【合肥信息技术职业学院】《PHP网站开发》作业设计
  19. 用手机看epub电子书用什么阅读软件好?
  20. 《Adobe Flash CS6中文版经典教程》——1.2 了解工作区

热门文章

  1. BZOJ2956 (模积和)
  2. delphi调用windows api
  3. 微服务架构何去何从?
  4. 加入知识星球(永久免费)
  5. 神奇的 Go init 函数
  6. 春天就是要搞技术啊!
  7. 【LiveVideoStack线上分享】— FreeSWITCH视频会议“标准”解决方案
  8. 《长安十二时辰》背后的文娱大脑:如何提升爆款的确定性?
  9. Spark之Spark概述
  10. 轻松 Flutter 入门,秒变大前端