Kubernetes(K8S)随堂笔记

K8S概述

1.k8s是谷歌在2014年开业的容器化集群管理系统
2.使用k8s进行容器化应用部署
3.使用k8s利于应用扩展
4.k8s目标实施让部署容器化应用更加简洁和高效

K8S特性

1.自动装箱

基于容器对应用运行环境的资源配置要求自动部署应用容器

2.自我修复(自愈能力)

1.当容器失败时,会对容器进行重启
2.当所部署的Node节点有问题时,会对容器进行重新部署和重新调度当容器未通过监控检查时,会关闭此容器知道容器正常进行时,才会对外提供服务

3.水平扩展

通过简单的命令/用户ui界面或基于cpu等资源使用情况,对应用容器进行规模扩大或规模剪裁

4.服务发现

用户不需要使用额外的服务发现机制,就能够基于Kubernetes自身能力是实现服务发现和负载均衡

5.滚动更新

可以根据应用的变化,对应用容器运行的应用,进行历史版本即时回退

6.密钥和配置管理

在不需要重新构建镜像的情况下,可以部署和更新密钥和应用配置,类型热部署。

存储编排

自动实现存储系统挂载及应用,特别对有状态应用实现数据持久化非常重要
存储系统可以来自于本地目录、网络存储(NFS、Gluster、Ceph等)、公共云存储服务

批处理

提供一次性任务,定时任务;满足批量数据处理和分析的场景

应用部署架构分类

1.无中心节点架构

GlusterFS

2.有中心节点架构

HDFS
K8S

k8s集群架构组件

Master(主控节点)和node(工作节点)

1.Master组件

apiserver
#集群统一入口,以restuful方式,交给etcd存储
scheduler
#节点调度,选择node节点应用部署
controller-manager
#处理集群中常规后台任务,一个资源对应一个控制器
etcd
#存储系统,用于保存集群相关的数据

2.node组件

1.kubelet
#master排到node节点代表,管理本机容器
2.kube-proxy
#提供网络代理,负载均衡等操作

k8s核心概念

1.pod

1.最小部署单元
2.一组容器的集合
3.共享网络
4.生命周期是短暂的

2.cntroller

1.确保预期的pod副本数量
2.无状态应用部署  (可以随便用)
3.有状态应用部署  #需要有特定条件(依赖存储,网络IP)
确保所有的node运行同一个pod一次性任务和定时任务

3.service

1.定义一组pod的访问规则

kubernetes 集群搭建(kubeadm 方式)

安装要求

1.一台或多台机器,操作系统 CentOS7.x-86_x64 
2.硬件配置:2GB 或更多 RAM,2 个 CPU 或更多 CPU,硬盘 30GB 或更多 
3.集群中所有机器之间网络互通 
4.可以访问外网,需要拉取镜像 
5.禁止 swap 分区

环境要求

硬件要求

master2核4G
node4核8G

环境准备

角色IP
k8s-master192.168.111.128
k8s-node1192.168.111.129
k8s-node2192.168.111.130

系统初始化
关闭防火墙

systemctl stop firewalld
systemctl disable firewalld
或者
systemctl stop firewalld && systemctl disable firewalld

关闭selinux

sed -i 's/enforcing/disabled' /etc/selinux/config   #永久
setenforce 0 #临时

关闭swap

swapoff -a  #临时
sed -ri 's/.*swap.*/#&/' /etc/fstab  #永久

主机名

hostnamectl set-hostname <hostname>

在master添加hosts

cat >> /etc/hosts << EOF
192.168.111.128  k8s-master
192.168.111.129  k8s-node1
192.168.111.130  k8s-node2
EOF

将桥接的ipv4流量传递到iptables的链:

cat > /etc/sysctl.d/k8s.conf << EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sysctl --system  #使其生效

时间同步

yum install ntpdate -y
ntpdate time.windows.com

所有节点安装Docker/kubeadm/kubelet

wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo

yum install docker-ce-18.06.1.ce-3.el7 -y

systemctl start docker && systemctl enable docker

docker --version

添加yum源

cat > /etc/yum.repos.d/kubernetes.repo << EOF
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF

安装kubernetes,kubelet和kubectl

yum install -y kubelet-1.18.0 kubeadm-1.18.0 kubectl-1.18.0

systemctl enable kubelet

部署Kubernetes Master

在192.168.111.128(Master)执行。

kubeadm init --apiserver-advertise-address=192.168.111.128 --image-repository registry.aliyuncs.com/google_containers --kubernetes-version v1.18.0 --service-cidr=10.96.0.0/12 --pod-network-cidr=10.244.0.0/16

完成后根据提示完场操作

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

kubectl get nodes      #查看node节点

在192.168.75.111/112(node)执行。
向集群添加新节点,执行Kubeadm init输出的kubeadm Join命令:(根据结尾自己的命令)

kubeadm join 192.168.111.128:6443 --token twjnag.eqlezwll77deahjz \
    --discovery-token-ca-cert-hash sha256:8402d0e19ba5cf7e75f4b32086cb63b6f0f5c328ee5168af5cded77a0b7a4f37

完成后可以使用以下命令查看是否加入成功

kubectl get nodes

默认token有效期为24小时,当过期后,该token就不可用了。这时就需要重新创建token,操作如下:

kubeadm token create --print-join-command

部署CNI网络插件

kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

kubectl get pods -n kube-system   #查看运行状况

如果无法访问外网则访问下面的地址,下载到本地再上传到服务器
https://www.aliyundrive.com/s/2VFpYQizPXe
传入后执行以下命令

kubectl apply -f kube-flannel.yaml

查看运行状况

kubectl get pods -n kube-system

测试kubernetes集群
在Kubernetes集群中创建一个pod,验证是否正常运行:

kubectl create deployment nginx --image=nginx

kubectl expose deployment nginx --port=80 --type=NodePort

kubectl get pod,svc   
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值