热身熟悉一下流程
 https://www.katacoda.com/courses/kubernetes/playground
 kubernetes学习网站
create a cluster——interactive tutorial——creating a cluster
或者直接点击 start scenario


一般启动后就要执行 minikube start命令  ,接着执行命令 kubectl get nodes 表示创建一个单节点的kubernetes集群。
通过kubernetes的命令行工具kubectl远程管理集群。
kuberctl ccluster-info查看集群信息,heapser、kubernetes-dashboard是集群中运行的服务。
部署应用:执行命令    kubectl run kubernetes-bootcamp \
                                         --image= docker.io/jocatalin/kubernetes-bootcamp:v1 \    
                                         --port=8080   (这里通过kubectl run部署应用名为kubernetesbootcamp,docker镜像通过--image指定,--port设置应用对外服务的端口)
Deployment可以理解为应用;pod是容器集合,同一个pod的所有容器共享ip地址和port空间。
kubectl get pods查看当前的pod。
为了能从外部访问应用,需要将容器的8080端口映射到节点的端口,执行命令
kubectl expose deployment/kubernetes-bootcamp \
     --type="NodePort" \
     --port 8080
执行命令 kubectl get services查看应用映射到节点的哪个端口。执行命令 curl host01:32320可以访问应用(32320位映射到host01的端口)
命令kubectl get deployments可以查看副本数;执行以下命令可以将副本数增加到3个
kubectl scale deployments/kubernetes-bootcamp --replicas=3
通过kubectl get pods 可以查看pod增加3个。
要缩小规模(scale down)执行以下命令 :
kubectl scale deployments/kubernetes-bootcamp  --replicas=2

当前image版本为v1,执行以下命令升级到v2
kubectl set image deployments/kubernetes-bootcamp kubernetes-bootcamp=jocatalin/kubernetes-bootcamp:v2
kubectl get pods可以观察滚动更新的过程。

回退到v1版本执行以下命令:
kubectl rollout undo deployments/kubernetes-bootcamp

在这里插入图片描述
在这里插入图片描述

概念

 1.什么是k8s
	k8s是一组服务器集群
	k8s所管理的集群节点上的容器
    Cluster是计算、存储和网络资源集合;——Master是Clister的大脑(它运行在linux系统上可以是物理机或者虚拟机)——Node运行容器应用(由Master管理,它只是监控和汇报)——Pod是k8s最小工作单位,包含一个或者多个容器(它里面容器会作为一个整体给Master调度到一个Node上运行)
2.k8s的功能
	自我修复
	弹性伸缩:实时根据服务器的并发情况,增加或缩减容器数量
	自动部署:
	回滚:
	服务发现和负载均衡
	机密和配置共享管理

3.k8s集群分为两类节点
	master node:主
	worker node:工作

master节点的组件(程序)
	apiserver:接受客户端操作可k8s的指令
	schduler:从多个worker node节点的组件中选举一个来启动服务
	controller manager:向worker节点的kubelet发送指令的

node节点的组件(程序)
	kubelet:向docker发送指令管理docker容器的
	kubeproxy:管理docker容器的网络

etcd
	k8s的数据库
	用来注册节点、服务、记录账户....

4.核心概念
pod
	pod是k8s最小部署单元
	一个pod中可以有一个或者多个容器一组容器
	pod又称为容器组

Controllers:控制器,控制pod,启动、停止、删除
	ReplicaSet
	Deployment
	StatefulSet
	DaemonSet
	Job 
	Cronjob

service:服务
	将一组pod关联起立,提供一个统一的入口
	即使pod地址发生改变,这个统一入口也不会变化,可以保证用户访问不受影响

label:标签
	一组pod是一个统一的标签
	service是通过标签和一组pod进行关联的

namespace:名称空间
	用来隔离pod的运行环境【默认情况下,pod是可以互相访问】
	使用场景
		为不同的公司提供隔离的pod运行环境
		为开发环境、测试环境、生产环境分别准备不同的名称空间,进行隔离

5.k8s中是否能直接启动容器?
架构类别
单master
多master - 生产环境

生产环境k8s规划
	master建议3台
	etcd必须三台(3,5,7)
	worder越多越好

实验环境规划
三个节点
2G内存
2核CPU

部署单master集群

一、集群规划
master
	主机名:k8s-master1
	IP:192.168.31.63
worker1
	主机名:k8s-node1
	IP:192.168.31.65
worker1
	主机名:k8s-node2
	IP:192.168.31.66

k8s版本:1.16
安装方式:离线-二进制
操作系统版本:7.7
二、初始化服务器
1 关闭防火墙
	【所有主节点都执行】
	[root@k8s-master1 ~]# systemctl stop firewalld
	[root@k8s-master1 ~]# systemctl disable firewalld

2 关闭selinux
	【所有主节点都执行】
	# setenforce 0
	# vim /etc/selinux/config
		修改SELINUX=enforcing 为 SELINUX=disabled

3 配置主机名
	【所有主节点都执行】
	hostnamectl set-hostname 主机名

4 配置名称解析
	【所有主节点都执行】
	# vi /etc/hosts
	添加如下四行
	192.168.31.63    k8s-master1
	192.168.31.64    k8s-master2
	192.168.31.65    k8s-node1
	192.168.31.66    k8s-node2
	
5 配置时间同步
	选择一个节点作为服务端,剩下的作为客户端
		master1为时间服务器的服务端
		其他的为时间服务器的客户端
	
	1)配置k8s-master1	
		# yum install chrony -y
		# vim /etc/chrony.config
		修改三项
			server 127.127.1.0 iburst
			allow 192.168.31.0/24
			local stratum 10
		# systemctl start chronyd
		# systemctl enable chronyd
		# ss -unl | grep 123
		UNCONN     0      0            *:123                      *:*   
	
	2)配置k8s-node1 和k8s-node2
		# yum install chrony -y
		# vim /etc/chrony.config
			server 192.168.31.63 iburst
		# systemctl start chronyd
		# systemctl enable chronyd
		# chronyc sources
			210 Number of sources = 1
			MS Name/IP address         Stratum Poll Reach LastRx Last sample               
			===============================================================================
			^* k8s-master1                  10   6    17     4    +11us[  +79us] +/-   95us
6 关闭交换分区
	【所有主节点都执行】
	[root@k8s-master1 ~]# swapoff -a
	[root@k8s-master1 ~]# vim /etc/fstab
	删除一行:
	
	检查是否关闭成功
	[root@k8s-master1 ~]# free -m
                  total        used        free      shared  buff/cache   available
	Mem:           2827         157        2288           9         380        2514
	Swap:             0           0           0
Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐