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是什么:针对容器编排的一种分布式架构,是自动化容器操作的开源平台. 服务发现.内建负载均衡.强大的故障发现和自我修复机制.服务滚动升级和在 ...
随机推荐
- Hyperledger Fabric 1.0 学习搭建 (二)--- 源码及镜像文件处理
2.1下载Fabric源码下载Fabric源码是因为要用到源码中提到的列子和工具, 工具编译需要用到go语言环境, 因此需要把源码目录放到$GOPATH下. 通过1.3中go的安装配置, $GOPAT ...
- lua之m进制转换为n进制-任意进制转换算法
够无聊的写这个,为防止需要的人也无聊一遍,写个吧 算法有n种,但是,咱们一种就够用了 --数组倒序排列 local function orderByDesc( input ) local output ...
- MongoDB索引管理
一.创建索引 创建索引使用db.collectionName.ensureIndex(...)方法进行创建: 语法: >db.COLLECTION_NAME.ensureIndex({KEY:1 ...
- (二)给Centos配置网络以及使用xshell远程连接Centos
好吧,我对网络协议以及ip配置知识的匮乏,让我在这里折腾了将近一天才搞定.可以说基本上网上遇到的问题我都遇到了.在这里,记下正确的步骤来给Centos配置网络.希望以后少走弯路. 首先我要说明的是,我 ...
- ADF中VO的查询方法比较
getRowCount(),getQueryHitCount(oracle.jbo.server.ViewRowSetImpl),getEstimatedRangePageCount,getCappe ...
- MyBatis(1)优点&介绍&工程
本次全部学习内容:MyBatisLearning 一:jabc的相关说明: jdbc编程步骤: 加载数据库驱动 创建并获取数据库链接 创建jdbc statement对象 设置sql语句 设置sql语 ...
- 关于JWT.NET
1.JWT的概念: JWT全称是Json Web Token,是一种用于双方之间传递安全信息的简洁的.URL安全的表述性声明规范.JWT作为一个开放的标准( RFC 7519 ),定义了一种简洁的,自 ...
- hdu 2098 分拆素数和(一个偶数拆分成两个不同素数和 拆法数量)
传送门: http://acm.hdu.edu.cn/showproblem.php?pid=2098 分拆素数和 Time Limit: 1000/1000 MS (Java/Others) ...
- 使用jenkins配置.net mvc5网站自动构建全过程记录
持续集成是个简单重复劳动,人来操作费时费力,使用自动化构建工具完成是最好不过的了.最终可以实现的一个效果是,svn提交代码,服务器端自动编译并发布. 所使用的版本:windows server 200 ...
- MyEclipse 远程调试Tomcat
当Web项目部署在服务器之后,当项目出现问题的时候就需要远程调试[远程调试的代码要与本地代码一致] 配置远程调试的具体步骤如下: 1.Linux 中配置tomcat在catalina.sh中添加如下C ...