kubernetes基础使用
查看节点详细信息
kubectl describe node vm2
显示版本号
kubectl version
Client Version: version.Info{Major:"1", Minor:"11", GitVersion:"v1.11.2", GitCommit:"bb9ffb1654d4a729bb4cec18ff088eacc153c239", GitTreeState:"clean", BuildDate:"2018-08-07T23:17:28Z", GoVersion:"go1.10.3", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"11", GitVersion:"v1.11.1", GitCommit:"b1b29978270dc22fecc592ac55d903350454310a", GitTreeState:"clean", BuildDate:"2018-07-17T18:43:26Z", GoVersion:"go1.10.3", Compiler:"gc", Platform:"linux/amd64"}
显示集群详细信息
kubectl cluster-info
Kubernetes master is running at https://192.168.1.181:6443
KubeDNS is running at https://192.168.1.181:6443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy
创建服务
kubectl run nginx-1 --image=nginx:1.14-alpine --replicas=1
nginx-1 标签名label
--image 引用镜像名
--replicas 启动pod数量
查看pod信息
kubectl get pods -o wide
NAME READY STATUS RESTARTS AGE IP NODE
nginx-1-dddf5b57b-5fx2q 1/1 Running 0 1m 10.244.2.2 vm3
删除镜像
[root@vm ~]# kubectl get pods -o wide
NAME READY STATUS RESTARTS AGE IP NODE
nginx-1-dddf5b57b-5fx2q 1/1 Running 0 8m 10.244.2.2 vm3
[root@vm ~]# kubectl delete nginx-1-dddf5b57b-5fx2q
error: resource(s) were provided, but no name, label selector, or --all flag specified
[root@vm ~]# kubectl delete pods nginx-1-dddf5b57b-5fx2q
pod "nginx-1-dddf5b57b-5fx2q" deleted
[root@vm ~]# kubectl get pods -o wide
NAME READY STATUS RESTARTS AGE IP NODE
nginx-1-dddf5b57b-vjgxb 1/1 Running 0 25s 10.244.1.2 vm2
deployment控制器指定需要有一个pod运行,删除后会自动创建一个
创建一个service
kubectl expose deployment nginx-1 --name=nginx-service --port=80 --target-port=80 --protocol=TCP
service/nginx-service exposed
[root@vm ~]# kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 3h
nginx-service ClusterIP 10.105.188.169 <none> 80/TCP 13s
deployment 控制器
nginx-1 控制器识别标签
name service名称
--port service暴露端口
--target-port 容器暴露端口
查看系统svc信息
kubectl get svc -n kube-system
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kube-dns ClusterIP 10.96.0.10 <none> 53/UDP,53/TCP 3h
查看创建的svc信息
kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 4h
nginx-service ClusterIP 10.105.188.169 <none> 80/TCP 29m
查看svc的详细信息
kubectl describe svc nginx-service
Name: nginx-service
Namespace: default
Labels: run=nginx-1
Annotations: <none>
Selector: run=nginx-1
Type: ClusterIP
IP: 10.105.188.169
Port: <unset> 80/TCP
TargetPort: 80/TCP
Endpoints: 10.244.1.2:80
Session Affinity: None
Events: <none>
升级镜像版本
kubectl set image deployment nginx-1 nginx-1=nginx
回滚镜像版本
kubectl rollout undo deployment nginx-1
deployment.extensions/nginx-1
[root@vm ~]# kubectl get pods
NAME READY STATUS RESTARTS AGE
client 0/1 Error 0 50m
nginx-1-d64bd498d-fw8kh 0/1 Terminating 0 5m
nginx-1-dddf5b57b-wzh2h 1/1 Running 0 8s
修改svc配置,使service可以外部访问
kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 4h
nginx-service ClusterIP 10.105.188.169 <none> 80/TCP 1h
[root@vm ~]# kubectl edit svc nginx-service
service/nginx-service edited
[root@vm ~]# kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 4h
nginx-service NodePort 10.105.188.169 <none> 80:30611/TCP 1h
kubectl edit svc nginx-service的内容spec:
clusterIP: 10.105.188.169
externalTrafficPolicy: Cluster
ports:
- nodePort: 30611
port: 80
protocol: TCP
targetPort: 80
selector:
run: nginx-1
sessionAffinity: None
type: NodePort
status:
loadBalancer: {}
将type改为NodePort,会将svc端口动态映射出去,上面映射为30611,用浏览器访问任意一个node都可以访问到
对pod添加标签
kubectl label pods pode-demo release=canary
修改pod标签
kubectl label pods pode-demo release=stable --overwrite
--overwrite
对标签进行过滤
kubectl get pods -l app --show-labels
显示有标签名的pod
kubectl get pods -L app,run
yaml文件创建一个pod
kubectl create -f xxxx.yaml
删除yaml文件创建的pod
kubectl delete -f xxxx.yaml
查看container日志
kubectl logs podename containername
正常容器比如nginx只有在被访问后才会出现日志
失败容器会直接产生错误日志
连接容器
kubectl exec -it podname -c containername bash
kubernetes基础使用的更多相关文章
- Kubernetes基础:查看状态、管理服务
目标 了解Kubernetes Pod 了解Kubernetes Node 学习如何调试部署问题 了解如何通过Service暴露应用 Kubernetes Pods 在Kubernetes中创建一个D ...
- 1-2、kubernetes架构概述和kubernetes基础概念
kubernetes https://draveness.me/understanding-kubernetes http://kubernetes.kansea.com/docs/ master/n ...
- linux运维、架构之路-Kubernetes基础(一)
一.Kubernetes介绍 Kubernetes最初源于谷歌内部的Borg,提供了面向应用的容器集群部署和管理系统.Kubernetes的目标旨在消除编排物理/虚拟计算,网络和存储基础设施的负担,并 ...
- Kubernetes基础
Kubernetes是什么 Kubernetes是当今最流行的开源容器管理平台,它就是大名鼎鼎的Google Borg的开源版本.Google在2014年推出了Kubernetes,本文发布时最新的版 ...
- kubernetes基础架构及原理
kubernetes简称“k8s” 其中“8”代表的是“k”和“s”中间的8个字母. k8s是Google公司开发的Borg项目中独立出来的容器编排工具,然后将其捐献给CNCF这个组织,然后发扬光大. ...
- 003/kubernetes基础:开启云原生之门(Mooc)
一.简介:(https://www.imooc.com/learn/978) 在2017年Kubernetes战胜了两个强大的竞争对手Swarm和Mesos,成为容器管理与调度编排领域的首选平台和事实 ...
- kubernetes基础——一文读懂k8s
容器 容器与虚拟机对比图(左边为容器.右边为虚拟机) 容器技术是虚拟化技术的一种,以Docker为例,Docker利用Linux的LXC(LinuX Containers)技术.CGroup(Co ...
- kubernetes基础概念知多少
kubernetes(简称k8s)是一种用于在一组主机上运行和协同容器化应用程序的管理平台,皆在提供高可用.高扩展性和可预测性的方式来管理容器应用的生命周期.通过k8s,用户可以定义程序运行方式.部署 ...
- Kubernetes 基础资料
概述 这篇文章用来记录Kubernetes 的基础资料,整体以最新官方文档为准. 因为k8s整体比较偏运维,作为研发可先大致了解其概念及初级使用方式,后面重点学习点会放在service mesh is ...
- kubernetes 基础知识
1. kubernetes 包含几个组件 Kubernetes是什么:针对容器编排的一种分布式架构,是自动化容器操作的开源平台. 服务发现.内建负载均衡.强大的故障发现和自我修复机制.服务滚动升级和在 ...
随机推荐
- nest 排序
var result = client.Search<Person>(x => x.Index("personindex").Type("persont ...
- Redis设计与实现读后感
看了一下时间,现在是2018年8月22日14:28,看完最后一页内容之后,我简短的停留了一下,任思绪翻飞. redis设计与实现大概看了有12天左右,12天前,我的心里很乱,整个人都处于一种焦虑不安的 ...
- IEEP-OSPF域内路由故障-现象与排障思路
OSPF域内路由故障-现象与排障思路 一.故障现象 OSPF的或内路由故障常表现为邻居路由器不通告部分或全部路由,可能的原因通常为: 1).拟通告的接口上未启用OSPF 2).拟通告的接口被关闭 OS ...
- Http协议和web本职【转自丁码农】
当你在浏览器地址栏敲入“http://www.cnblogs.com/”,然后猛按回车,呈现在你面前的,将是博客园的首页了(这真是废话,你会认为这是理所当然的).作为一个开发者,尤其是web开发人员, ...
- eclipse通过maven进行打包并且对hdfs上的文件进行wordcount
在eclipse中配置自己的maven仓库 1.安装maven(用于管理仓库,jar包的管理) -1.解压maven安装包 -2.把maven添加到环境变量/etc/profile -3.添加mave ...
- Android进阶笔记15:选用合适的IPC方式
1. 相信大家都知道Android进程间通信方式很多,比如AIDL.Messenger等等,接下来我就总结一下这些IPC方式优缺点. 2. IPC方式的优缺点和适用场景 3. 附加:使用Intent实 ...
- 关于Hibernate的报错org.hibernate.MappingException: Unknown entity
部分异常,如下 org.hibernate.MappingException: Unknown entity: com.zcd.hibernate.oneToMany.Teamat org.hiber ...
- ZOJ Monthly, January 2019 Little Sub and Isomorphism Sequences 【离线离散化 + set + multiset】
传送门:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=5868 Little Sub and Isomorphism Seque ...
- [19/03/30-星期六] IO技术_四大抽象类_ 字节流( 字节输入流 InputStream 、字符输出流 OutputStream )_(含字节文件缓冲流)
一.概念及分类 InputStream(输入流)/OutputStream(输出流)是所有字节输入输出流的父类 [注]输入流和输出流的是按程序运行所在的内存的角度划分的 字节流操作的数据单元是8的字节 ...
- Linux磁盘分区,挂载
分区基础知识 分区的方式: 1) mbr分区: 1.最多支持四个主分区 2.系统只能安装在主分区 3.扩展分区要占一个主分区 4.MBR最大只支持2TB,但拥有最好 ...