k8s学习
容器化技术优点:
1.自我修复
2.弹性伸缩
3.服务发现
4.负载均衡
5.版本回退
6.存储编排
k8s构成:
1.控制节点:集群的控制平面,负责集群的决策
1>ApiServer
2>Schedule
3>ControllerManager
4>Etcd
2.工作节点:集群的数据平面,负责为容器提供运行环境
1>Kubelet
2>KubeProxy
3>Docker------>Pod
1..主机安装
master:1个
node:2个
2.操作系统初始化
1>检查版本 centos 7.5以及以上版本
2>主机名解析配置
配置/etc//hosts
192.168.109.100 master
192.168.109.101 node1
192.168.109.102 node2
3>配置时钟同步
启动chronyd服务器
配置开机启动
4>警用iptables和firewalld服务
5>禁用selinux
6>禁用swap分区
7>修改linux模块参数
vi /etc/sysctl.d/kubernetes.conf,添加配置
net.bridge.bridge-nf-call-ip6tables=1
net.bridge.bridge-nf-call-iptables=1
net.i[4.ip_forward=1
重新加载配置
sysctl -p
加载网桥过滤模块
modprobe bf_netfilter
检查是否加载成功
lsmod||grep br_netfilter
8>配置ipvs功能
1>安装ipset和ipsad
yum安装
2>添加啊需要加载的模块写入脚本文件
3>为脚本文件添加执行权限
chmod +x /etc/sysconfig/modules/ipvs.moudles
4>执行脚本:
/bin/bash /etc/sysconfig/modules/ipvs.moudules
5>j检查对应的模块是否加载成功
lsmod |grep -e ip_vs -e nf_contrack_ipv4
9.重启服务器
3.安装docker,kubeadm,kubectl软件
1.docker安装
镜像源:wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -0 /etc/yum.repos.d/docker-ce.repo
版本:18.06.3.ce-3.e17
2.查看当前镜像源中支持的docker版本
yum list docker-ce --showduplicates
3.安装特点版本的docker-ce
必须指定--setopt=obsoletes=0 d,否则yum会自动安装更高版本
yum install --setop=obsoletes=0 docker-ce-18.06.ce-3.e17 -y
4.添加一个配置文件
Docker在默认情况下使用Cgroup Driver为cgroupfs,而kubernetes推荐使用systemd代替cgroupfs
mkdir /etc/docker
添加配置文件
5.启动docker
systemctl restart docker
systemctl enable docker
查看docker版本
docker version
4.安装kubernetes组件安装
1.配置yum源
2.安装kubeadm,kubelet和kubectl
1.安装
yum install --setopt=obsoletes=0 kubeadm-1.17.4-0 kubelet-1.17.4-0 kubectl-1.17.4.-0 -y
2.配置kubelet的cgroup
3.设置kubelet开机启动
systemctl enable kubelet
2.2.5.准备集群镜像
在安装kubernets几圈之前,必须提前准备好几圈需要的镜像,所需镜像可以通过下面命令查看
kubeadm config images list
查看下载的镜像
dock images
2.2.6集群初始化
下面对集群初始化,并将node节点加入到集群中
下面操作只需要在:master节点执行即可
下面的操作只需要在node节点上执行即可
下面是上面的步骤在master执行完成以后,复制这些内容在node节点上执行的
在master查看节点 kubectl get nodes
2.2.7安装kubernetes支持多种网络插件,比如flannel,callco,canal等等,人选一种使用即可,本次选择flannel
下面的操作依旧只在master节点执行即可,插件使用的是DaemonSet的控制器,它会在每个节点上都运行
至此,kubernetes集群环境搭建完成
2.3服务部署
下面在kubernetes集群中部署一个nginx程序,测试下集群是否在正常工作
第三章资源管理
3.1
yarm语言
3.3资源管理方式
查看版本信息:kubectl version
查看集群信息:kubectl cluster-info
查看集群所有资源:kubectl api.service
查看节点:kubectl get nodes
创建一个namespace:kubectl create namespace dev
查看namespace:kubectl get ns
在此namespace下创建并运行一个nginx的pod: kubectl run pod --image-nginx -n dev
查看新创建的pod:kubectl get pod -n dev
删除指定的pod:kubectl delete pod pod-864987569-pcw7x
删除制定的namespace:kubectl delete ns dev
查询指定namespace下的pod:kubectl get pods -n dev
查看某个pods的描述:kubectl describe pods pod-cbb995bbf-t6hww -n dev
删除制定namespace下的pod:kubecl delete pod-cbb995bbf-t6hww -n dev
执行create命令创建资源:kubectl create -f nginxpod.yaml
查看get命令,查看资源 kubectl get -f nginxpod.yaml
执行delete命令,删除资源:kubectl delete -f nginxpod.yaml
查看pod:kubectl get pod -n dev
kubectl get pods -n dev