文章目录
1.什么是Kubernetes
kuberneter是一个生成级别的开源平台,可协调在计算机集群内核跨计算机集群的应用容器的部署(调度)和执行,他具有完备的集群管理能力,包括多层次的安全防护和准入机制,多租户应用支撑能力,透明的服务注册和服务发现机制,内建智能负载均衡器,和强大的故障发现和自我修复能力,服务滚动升级,和在线扩容能力,可扩展的资源自动调度机制,以及多粒度的资源配置管理能力
kubernetes是一个开放的平台,不局限于任何一种语言,没有限定的任何编程接口,所以不论使用java,Go,C++还是python编写的服务,都可以被映射为kubernetes的Service服务,并通过标准的TCP通信协议进行交互。此外,Kubernetes平台对现有的编程语言、 编程框架、中间件没有任何侵入性,因此现有的系统也很容易改造升级并迁移到Kubernetes平台上
2.Kubernetes的优势
-
强大的生态圈环境(谷歌的背书)
-
轻松便捷的分布式系统设计、实现和运维
-
包含微服务架构的基础设施(如:服务注册发现、负载均衡、在线扩容、滚动升级等)
-
超强的横向扩展能力。在线集群扩容,能将Kubernetes集群从只包含几个Node平滑扩展到包含上百个Node的大集群
-
内部服务弹性扩容机制,快速扩容缩容Service的实例副本以提升或降低系统的吞吐量
3.kubernetes基础架构
4.安装配置
环境:
- 三台机器:Master、Node01、Node02
- 64位操作系统Linux 内核3.10以上CentOS7(Ubuntu16.04+)
- CPU至少2个核,推荐4核
- 内存最少2G,推荐8G
- Etcd 3.0版本
- Docker 18.03版本及以上
- Flanne(法兰绒)
1:查看系统内版本是否为4.0,3.1版本有不可预期的问题
uname -a
# 内核的第三方仓库
$ rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm
3:
# 查看可以安装的最新的稳定内核
yum --disablerepo="*" --enablerepo="elrepo-kernel" list available
kernel-[lt/ml]
lt:long term support长期支持的支线版本
ml:main line主线版本
# 安装最新的稳定内核
$ yum --enablerepo=elrepo-kernel install -y kernel-lt
# 查看可用的操作系统内衬相关包
$ cat /boot/grub2/grub.cfg
$ awk -F\' '$1=="menuentry " {
print i++ " : " $2}' /boot/grub2/grub.cfg
# 设置相应的Linux内核
$ yum install -y grub2-pc
$ grub2-set-default 0
#重启后才会生效
$ reboot
在配置下虚拟机的hosts文件,使的相互可以使用主机名通信
192.168.1.108 master
192.168.1.109 docker1
192.168.1.110 docker2
至此三体虚拟机的基本环境就配置好了
#1. 关闭swap
$ swapoff -a
$ sed -i '/swap / s/^\(.*\)$/#\1/g' /etc/fstab
#2. 关闭SELinux
$ setenforce 0
$ sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config
#3. 安装iptables
$ yum install -y iptables-services
$ systemctl start iptables
$ systemctl enable iptables
#4. 清空iptables规则
$ iptables -F
#5. 开启Netfilter
$ modprobe br_netfilter
#6. 设置ipvs支持
modprobe -- ip_vs
modprobe -- ip_vs_rr
modprobe -- ip_vs_wrr
modprobe -- ip_vs_sh
modprobe -- nf-conntrack_ipv4
4.1K8S配置文件
cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
# 开启网桥模式
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
EOF
sudo sysctl --system
未完成。。。
二 . docker for desktop/windows安装k8s
首先在windows电脑下安装docker(我这个为当前最新版)
2.1填入阿里云镜像源
https://docker.mirrors.ustc.edu.cn
默认方式国内用户是无法安装的,用户需要按照下列方式安装k8s:
使用powershell运行下面的命令
git clone https://github.com/AliyunContainerService/k8s-for-docker-desktop.git
cd k8s-for-docker-desktop
#修改为docker上提示的版本
git checkout v1.19.7
镜像拉取完后启动k8s既即可
启动后在PowerShell中执行的显示结果为
2.2配置 Kubernetes 控制台
$ kubectl get pods -n kubernetes-dashboard
如果显示的没有全部启动需要排查下原因
#查看k8s节点错误信息
#kube-system:系统节点
#storage-provisioner:节点名称
kubectl describe pod storage-provisioner -n kube-system
验证后如果是发现自己操作无误,那么重启docker和k8s,一定要确保都启动了
2.3部署 Kubernetes dashboard
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.4/aio/deploy/recommended.yaml
# 或
kubectl create -f kubernetes-dashboard.yaml
# 检查 kubernetes-dashboard 应用状态
kubectl get pod -n kubernetes-dashboard
# 开启 API Server 访问代理
kubectl proxy
通过如下 URL 访问 Kubernetes dashboard:
http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/#/overview?namespace=default
2.4配置控制台访问令牌
对于Windows环境
$TOKEN=((kubectl -n kube-system describe secret default | Select-String "token:") -split " +")[1]
kubectl config set-credentials docker-for-desktop --token="${TOKEN}"
echo $TOKEN
参考地址:https://github.com/AliyunContainerService/k8s-for-docker-desktop#%E9%83%A8%E7%BD%B2-kubernetes-dashboard