kubectl get pods  查看所有pods

kubectl  get  services  查看services

kubectl replace --filename=myweb-rc.yaml  根据该yaml更新pod可以修改副本数为0,删除pod

docker ps -a   查看所有docker容器

docker  attach 容器名     进入容器内

kubectl  describe pod pod名字   查看该pod的详细信息

http://blog.itpub.net/28916011/viewspace-2213957/

k8s
master/node
master : API Server ,Scheduler,Controller-Manager
node : kubelet,docker,kube-proxy Pod:
自主式Pod
控制器管理的Pod
ReplicationController(RC)
ReplicaSet
Deployment
StatefulSet
DaemonSet
Job,CronJob 环境
master,etcd:172.18.0.67
node1:172.18.0.68
node2:172.18.0.69
前提;
1:基于主机名通信:/etc/hosts
2:时间同步
3:关闭firewall和iptables.service
OS:Centos7.3 1611
yum -y install ntp
systemctl start ntpd
systemctl enable ntpd
systemctl stop firewalld
systemctl disable firewalld vim /etc/hosts
172.16.100.64 master
172.16.100.65 node1
172.16.100.66 node2 wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
[root@master yum.repos.d]# cat kubernets.repo
[kubernetes]
name=Kubernetes Repo
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
gpgcheck=0
scp kubernets.repo docker-ce.repo node1:/etc/yum.repos.d
scp kubernets.repo docker-ce.repo node2:/etc/yum.repos.d
yum install docker-ce kubelet kubeadm kubectl vim /usr/lib/systemd/system/docker.service
[service]增加
Environment="HTTPS_PROXY=http://www.ik8s.io:10080"
Environment="NO_PROXY=127.0.0.0/8,172.16.0.0/16"
systemctl daemon-reload
systemctl restart docker
systemctl status docker
docker info
确保下面两个为1
[root@master ~]# cat /proc/sys/net/bridge/bridge-nf-call-ip6tables
1
[root@master ~]# cat /proc/sys/net/bridge/bridge-nf-call-iptables
1 systemctl status kubelet有出错信息,需要停掉kubelet,然后设置开机启动,docker也设成开机启动,出不出错都要操作,后面初始化出错了
然后初始化
初始化的时候出错。因为swap选项
kubeadm init --help 查看帮助信息, --kubernetes-version string 指定版本,默认为当前稳定版
kubeadm init --pod-network-cidr=10.244.0.0/16 --service-cidr=10.96.0.0/12
如果出错有swap,不支持。需要的操作:
vim /etc/sysconfig/kubelet
KUBELET_EXTRA_ARGS="--fail-swap-on=false"
然后重新初始化,添加忽略参数
kubeadm init --pod-network-cidr=10.244.0.0/16 --service-cidr=10.96.0.0/12 --ignore-preflight-errors=Swap
妈逼的代理不成功,总下载失败,最后搜到可以这么干--image-repository registry.aliyuncs.com/google_containers 配置文件取消掉代理,重新reload,重启docker
kubeadm init --image-repository registry.aliyuncs.com/google_containers --kubernetes-version=v1.13.1 --pod-network-cidr=10.244.0.0/16 --service-cidr=10.96.0.0/12 --ignore-preflight-errors=Swap
安装完成结尾会有token和哈希码,一定要保存下来。不然以后就麻烦了,就是类似下面这串。
kubeadm join 172.16.100.64:6443 --token yqzclr.ztxgcumdlqzjbpl4 --discovery-token-ca-cert-hash sha256:b5119e9530e8bd01b0317e19f3ca14835ad457f3d33a5de963e7a8fa33f3a541 接下来等master安装完回到master操作
[root@master ~]# mkdir -p $HOME/.kube
[root@master ~]# cp -i /etc/kubernetes/admin.conf $HOME/.kube/config [root@master ~]# kubectl get cs 查询组件状态健康信息 二:部署网络插件flannel https://github.com/coreos/flannel
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
部署完成后稍等一分钟
kubectl get nodes 可以发现master状态Ready了。
kubectl get pods -n kube-system 会发现flannel的pod 客户端node操作
yum -y install docker-ce kubelet kubeadm master执行 拷贝配置文件到两台node上
scp /usr/lib/systemd/system/docker.service node1:/usr/lib/systemd/system/docker.service
scp /etc/sysconfig/kubelet node1:/etc/sysconfig/kubelet 客户端node操作
yum -y install docker-ce kubelet kubeadm
systemctl enable docker kubelet
systemctl daemon-reload
systemctl start docker
docker info
加入到master,就是之前复制的那一串,然后加上忽略Swap
kubeadm join 172.16.100.64:6443 --token yqzclr.ztxgcumdlqzjbpl4 --discovery-token-ca-cert-hash sha256:b5119e9530e8bd01b0317e19f3ca14835ad457f3d33a5de963e7a8fa33f3a541 --ignore-preflight-errors=Swap 以上安装全部完成 安装配置
1:etcd cluster 仅master节点
2:flannel 集群的所有节点
3:配置k8s的master 仅master节点
kubernets-master
启动的服务:
kube-apiserver kube-scheduler kube-controller-manager
4:配置k8s的各Node节点
kubernets-node 先设定启动docker服务
启动k8s的服务:
kube-proxy,kubelte kubeadm
1:master,node:安装kubelet kubeadm docker
2:master:kubeadm init

  

 day2      http://blog.itpub.net/28916011/viewspace-2213957/

k8s相关介绍

资源:对象
workload:Pod,ReplicaSet,Deployment,StatefulSet,Job,Cronjob...
服务发现及均衡:Service,Ingress...
配置与存储:Volume,CSI,
ConfigMap,Secret
集群级资源:
NameSpace,Node,Role,ClusterRole,RoleBind,ClusterRoleBind
元数据型资源
HPA,PodTemplate,LimitRange, 创建资源的配置清单
apiVersion: group/version
$ kubectl api-version
kind:资源类别
metadata:元数据
name
namespace
labels
annotations
每个资源的引用PATH
/api/GROUP/VERSION/namespace/NAMESPACE/TYPE/NAME spec: 期望状态 disired state
status:当前状态 current state,本字段由k8s集群维护 Pod 资源
spec.containers <[]object> - name <string>
image <string> //如果是latest标签,就会一直下载,但是下面如果改成ifnotpresent 那就不会一直下不会使用默认的aways
imagePullPolicy <string>
Always,Never,IfNotPresent //always总是下载,Never不下载,ifnotpresent 如果不存在就下载 标签操作
查询某个pod,node标签,
[root@master k8syaml]# kubectl get pods pod-demo --show-labels
查询app标签的pod
kubectl get pods -l app --show-labels
添加标签为某个pod
kubectl label pods pod-demo relase=beata
修改某个标签的值
kubectl label pods pod-demo relase=stable --overwrite 标签选择器
等值关系:=,==,!=
集合关系:key in (value1,value2);key notin (value1,value2) 查询relase等于stable,并且app=myapp标签的pod
[root@master k8syaml]# kubectl get pods -l relase=stable,app=myapp
基于集合的查询,relase如果等于stable或者beta的pod
[root@master k8syaml]# kubectl get pods -l "relase in (stable,beta)" 基于节点的
[root@master k8syaml]# kubectl get nodes --show-labels
NAME STATUS ROLES AGE VERSION LABELS
master Ready master 2d22h v1.13.1 beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/hostname=master,node-role.kubernetes.io/master=
node1 Ready <none> 2d20h v1.13.1 beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/hostname=node1
node2 Ready <none> 2d20h v1.13.1 beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/hostname=node2
[root@master k8syaml]# kubectl label nodes node1 disktype=ssd
node/node1 labeled
[root@master k8syaml]# kubectl get nodes --show-labels
NAME STATUS ROLES AGE VERSION LABELS
master Ready master 2d22h v1.13.1 beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/hostname=master,node-role.kubernetes.io/master=
node1 Ready <none> 2d20h v1.13.1 beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,disktype=ssd,kubernetes.io/hostname=node1
node2 Ready <none> 2d20h v1.13.1 beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/hostname=node2 nodeSelector: 指定pod运行在标签哪个节点,下面是运行在标签为disktype: ssd的nod上
[root@master k8syaml]# cat demo.yaml
apiVersion: v1
kind: Pod
metadata:
name: pod-demo
namespace: default
labels:
app: myapp
tier: forntend
spec:
containers:
- name: myapp
image: ikubernetes/myapp:v1
- name: busybox
image: busybox:latest
command:
- "/bin/sh"
- "-c"
- "sleep 3600"
nodeSelector:
disktype: ssd nodeName:运行在指定的节点上
annotations:与label不同的地方在于,它不能用于挑选资源对象,仅用于为对象提供“元数据”
[root@master k8syaml]# vim demo.yaml
apiVersion: v1
kind: Pod
metadata:
name: pod-demo
namespace: default
labels:
app: myapp
tier: forntend
annotations:
lihongxing.com/created-by: cluster admin
spec:
containers:
- name: myapp
image: ikubernetes/myapp:v1
- name: busybox
image: busybox:latest
command:
- "/bin/sh"
- "-c"
- "sleep 3600" nodeSelector:
disktype: ssd 以上会添加lihongxing.com/created-by: cluster admin的annotations资源注解,用describe可以查看到
[root@master k8syaml]# kubectl describe pods pod-demo Pod生命周期:http://blog.itpub.net/28916011/viewspace-2213957/
状态:Pending/Running/Failed/Succeeded/Unknown
Pod生命周期的重要行为:
初始化容器
容器探测:
liveness 存活性探针
readiness 就绪性探针
restartpolicy 重启策略:
Always,OnFailure,Never,Default to Always
探针类型三种:
ExecAction,TcpSocketAction,HttpGetAction [root@master k8syaml]# vim liveness.yaml
apiVersion: v1
kind: Pod
metadata:
name: liveness-exec.pod
namespace: default
spec:
containers:
- name: liveness-exec-container
image: busybox:latest
imagePullPolicy: IfNotPresent
command: ["/bin/sh","-c","toch /tmp/healthy; sleep 30; rm -rf /tmp/healthy; sleep 3600"]
livenessProbe:
exec:
command: ["test","-e","/tmp/healthy"]
initialDelaySeconds: 1
periodSeconds: 3

  

k8s系列---kubectl基础的更多相关文章

  1. k8s系列0--Kubernetes基础知识

    Kubernetes介绍 参考:Kubernetes核心组件解析 Pod是k8s的最小调度单元 每个pod有独立的IP,但是pod的IP是不可靠的,重新调度pod就会改变IP,service概念就是为 ...

  2. Docker & k8s 系列一:快速上手docker

    Docker & k8s 系列一:快速上手docker 本篇文章将会讲解:docker是什么?docker的安装,创建一个docker镜像,运行我们创建的docker镜像,发布自己的docke ...

  3. Docker & k8s 系列二:本机k8s环境搭建

    本篇将会讲解k8s是什么?本机k8s环境搭建,部署一个pod并演示几个kubectl命令,k8s dashboard安装. k8s是什么 k8s是kubernetes的简写,它是一个全新的基于容器技术 ...

  4. Docker & k8s 系列三:在k8s中部署单个服务实例

    本章将会讲解: pod的概念,以及如何向k8s中部署一个单体应用实例. 在上面的篇幅中,我们了解了docker,并制作.运行了docker镜像,然后将镜像发布至中央仓库了.然后又搭建了本机的k8s环境 ...

  5. 「译」JUnit 5 系列:基础入门

    原文地址:http://blog.codefx.org/libraries/junit-5-basics/ 原文日期:25, Feb, 2016 译文首发:Linesh 的博客:JUnit 5 系列: ...

  6. [WPF系列]从基础起步学习系列计划

    引言 WPF技术已经算不什么新技术,一搜一大把关于WPF基础甚至高级的内容.之前工作中一直使用winform所以一直没有深入学习WPF,这次因项目中使用了WPF技术来实现比较酷的展示界面.我在这里只是 ...

  7. 快速入门系列--WebAPI--01基础

    ASP.NET MVC和WebAPI已经是.NET Web部分的主流,刚开始时两个公用同一个管道,之后为了更加的轻量化(WebAPI是对WCF Restful的轻量化),WebAPI使用了新的管道,因 ...

  8. Java 之 I/O 系列 01 ——基础

    Java 之 I/O 系列 目录 Java 之 I/O 系列 01 ——基础 Java 之 I/O 系列 02 ——序列化(一) Java 之 I/O 系列 02 ——序列化(二) 整理<疯狂j ...

  9. (C#)Windows Shell 编程系列1 - 基础,浏览一个文件夹

    原文 (C#)Windows Shell 编程系列1 - 基础,浏览一个文件夹 (本系列文章由柠檬的(lc_mtt)原创,转载请注明出处,谢谢-) Windows Shell 编程,即 Windows ...

随机推荐

  1. 【Linux】---Linux系统下各种常用命令总结

    在Linux系统下,“万物皆文件”,之所以强调在强调这个概念,是因为很多人已经习惯了win系统下找找点点得那种方式和思维,因此总是会觉得linux系统下很多指令既复杂又难记.其实都是一样得东西,只是w ...

  2. .NET为什么要使用异步(async)编程?⭐⭐⭐⭐⭐

    .NET为什么要使用异步(async)编程? 有几点坐下笔记 ⭐⭐⭐⭐: 1. 同步方法 static void Main(string[] args) { Console.WriteLine($&q ...

  3. AI漫谈:我们距离实现《庆余年》里的五竹叔机器人还有多远?

    ​(警告: 本文包含少量剧透内容,请酌情阅读)   五竹叔是机器人吗? 看过庆余年的朋友,一定对五竹叔印象深刻,外表英俊潇洒,一袭黑衣加黑布条蒙眼,充满神秘侠客气息.五竹叔不但神秘,而且言行举止常常很 ...

  4. path_info和get_full_path()的区别

    1.get_full_path() 获取的url路径包含参数 2.path_info 获取的路径不包含参数 注意:获取的路径都不包含协议 IP 和端口 3.补充 sesssion http://127 ...

  5. 5.JavaSE之数据类型详解

    数据类型: 强类型语言: 要求变量的使用严格要求符合规定,写错了就不行,所有变量都必须先定义后才能使用,否则是不能使用的. 比如Java.C++都是强类型语言,也就是说,一旦定义了一个变量,只定义了某 ...

  6. spring Cloud-eureka的保护模式

    eureka的首页出现以下警告 EMERGENCY! EUREKA MAY BE INCORRECTLY CLAIMING INSTANCES ARE UP WHEN THEY'RE NOT. REN ...

  7. 【WPF学习】第十三章 理解路由事件

    每个.NET开发人员都熟悉“事件”的思想——当有意义的事情发生时,由对象(如WPF元素)发送的用于通知代码的消息.WPF通过事件路由(event routing)的概念增强了.NET事件模型.事件路由 ...

  8. 啥叫ORM

    名字: object / relation map 对象关系映射 定义: 通过(描述对象和数据库之间映射的)元数据把对象自动转为关系数据 一般都是作为中间件 优缺: 优点是自动化,屏蔽了SQL语句,而 ...

  9. rabbitmq使用总结

    rabbitmq 架构图 RabbitMQ 中的 broker 是指什么?cluster 又是指什么 broker 是指一个或多个 erlang node 的逻辑分组,且 node 上运行着 Rabb ...

  10. ios--->泛型

    泛型 开发中使用场景: 1.限制集合中的类型,只能检测方法的调用,因为声明的泛型只能存在方法中 2.当一个类在声明的时候,某个对象的属性不确定,只有创建对象的时候才能确定,就可以使用泛型. 使用泛型的 ...