查看Linux内核版本命令
- cat /proc/version
- uname -a
- cat /proc/cpuinfo #查看CPU信息
- env #查看系统环境变量
查看Linux系统版本的命令
- lsb_release -a,即可列出所有版本信息,这个命令适用于所有的Linux发行版,包括RedHat、SUSE、Debian…等发行版。
- cat /etc/redhat-release,这种方法只适合Redhat系的Linux
- cat /etc/issue,此命令也适用于所有的Linux发行版。
安装kubectl官方说明
kubernetes结构.png
1.Service部署
获取当前集群列表
- kubectl get nodes
编辑Service的yaml文件
- vi hello-service.yaml
apiVersion: v1 #当前yaml使用的API版本
kind: Service #声明对象类型为Service,这是一个service的配置文件
metadata: #定义源数据
name: hello-servive #定义service的name为hello-service
spec: #servcie的规格说明
type: NodePort #声明service的类型,这里是NodePort即在每一个节点上暴露一个TCP port,将服务暴露在k8s集群之外,让集群外部也可以访问该服务
selector: #通过label匹配后端pod的选项
app: hello-k8s-demo
ports:
- protocol: TCP #协议类型
port: 80 #虚拟的service端口
targetPort: 8080 #后端pod中容器监听的端口,到达service的流量会被负载均衡到后端某个容器的targetPort上
nodePort: 30008 #每台节点监听的端口
创建服务
- kubectl create -f hello-service.yaml --record
查看服务的创建结果
- kubectl get svn|grep hello-service
查看sevice的详细信息
- kubectl describe svn/hello-service
访问service服务
- curl {IP}:30008/hello #若出现Connection refused则表示该服务还没有被发现,k8s会将这个服务注册到内部dns
查看service的访问地址
创建k8s内部容器busybox
- kubectl run -i --tty busybox --image=busybox --restart=Never
进入容器后查看hello-service的dns地址 - nslookup hello-service #可以看到k8s自动为hello-service安装了容器入口
2.Deployment部署(创建Pod)
创建hello-service 的后端pod(一般不单独创建pod,而是通过控制器来部署pod,这里通过deployment控制器部署pod)
- vi hello-deployment.yaml
apiVersion: apps/v1betal #yaml使用的API版本,1.6.0以前的版本使用extensions/v1beta1
kind: Deploymnet #对象类型
metadata: #对象信息
name: hello-deployment
labels:
app: hello-k8s-demo
spec: #规格信息
replicas: 2 #部署后有两个pod在运行
template: #pod的模板配置,每个pod都将基于该模板去创建
metadata: #pod的源信息
labels: #service通过这个label来匹配pod
app: hello-k8s-demo
spec:
containers:
- name: hello-k8s
image: bigwhite/hello-kubernetes-demo:v0.1
imagePullPolicy: Always
ports:
- containerPort: 8080
创建deployment
- kubectl create -f hello-deployment.yaml --record=true
查看deployment列表
- kubectl get deployments
3.请求的自动负载均衡
k8s会自动将服务请求负载均衡到后端pod上
查看pod信息
- kubectl get pods|grep hello #查看名字中带有hello的pod信息
监听pod的运行日志
-kubectl logs -f hello-deployment-85539-shtcg #这是监听hello-deployment-85539-shtcg这个pod的运行日志
4.服务伸缩、版本升级与回退
pod数量扩展
- vi hello-deployment.yaml #进入修改文件中的pod数量
- kubectl apply -f hello-deployment.yml #让修改生效
修改容器镜像的版本,进入hello-deployment.yaml,修改spec.template.spec.containers.image的镜像版本,然后让修改生效
查看升级过程
- kubectl rollout status deployment/hello-deployment #查看hello-deployment的升级过程
服务快速回滚到上一版本
- kubectl rollout undo deployments/hello-deployment #回退hello-deployment到之前的版本
k8s拉取私有仓库的镜像
相关参考:
网友评论