参考笔记:https://www.yuque.com/leifengyang/oncloud/ctiwgo

名称空间操作

kubectl get namespace  # 获取名称空间
kubectl get pods  # 获取默认名称空间pods
kubectl get pods -A  # 获取全部名称空间pods
kubectl get pods -n [namespace]  # 查看指定名称空间pod
kubectl creat ns hello  # 创建名称空间

也可以通过yaml文件创建ns:
apiVersion: v1
kind: Namespace
metadata:
  name: hello

vi hello.yaml
kubectl apply -f hello.yaml

# 描述
kubectl describe pod 你自己的Pod名字

# 删除
kubectl delete pod Pod名字  # 会删除该名称空间的所有资源
kubectl delete -f hello.yaml  # 用配置文件创建的ns用这种方式删,删的干净

# 查看Pod的运行日志
kubectl logs Pod名字

# 每个Pod - k8s都会分配一个ip
kubectl get pod -owide

# 使用Pod的ip+pod里面运行容器的端口
curl 192.168.169.136

# 集群中的任意一个机器以及任意的应用都能通过Pod分配的ip来访问这个Pod

Pod操作

# 启动一个pod:给个名字mynginx,启动一个镜像nginx
kubectl run mynginx --image=nginx

# 查看default名称空间的Pod
kubectl get pod  # 所有集群范围内,其他node的也可以看到

# 描述
kubectl describe pod 你自己的Pod名字  # 查看默认名称空间pod
kubectl describe  -n [ns] pod 你自己的Pod名字  # 

# 删除
kubectl delete pod Pod名字

# 查看Pod的运行日志
kubectl logs Pod名字

#查找指定的运行中的容器
docker ps|grep mynginx

#删除镜像
kubectl delete -f pytest.yaml

# 每个Pod - k8s都会分配一个ip
kubectl get pod -owide  # 可以查看pod运行的node和ip地址,打印详细信息	

# 使用Pod的ip+pod里面运行容器的端口
curl xxx.xxx.xxx.xxx # 不写端口默认就是80端口

# 进入pod
kubectl exec -it myngix  -- /bin/bash

# 集群中的任意一个机器以及任意的应用都能通过Pod分配的ip来访问这个Pod

也可以通过yaml文件创建pod:

apiVersion: v1  # 固定写法
kind: Pod  # 指定类型
metadata:  # 源数据,不用管
  labels:
    run: myapp
  name: myapp
  namespace:default
spec:  # 配置信息
  containers:
  - image: nginx
    name: nginx # 给容器起的名字
  - image: tomcat:8.5.68
    name: tomcat
    imagePullPolicy: Never  # 使用本地镜像

删除pod,会删除里面的容器和资源:

kubectl delete -f myapp.yaml

pod的ip范围一般是192.168.0.0,如何将pod的ip端口暴露?使得在主机外也能访问到,以后会讲到。

watch -n 1 kubectl get pod # 每隔一秒运行一次get pod命令

打包镜像为tar

docker save -o pythonml1.0.tar pythonml:1.0  # 镜像打包
docker load -i pythonml1.0.tar  # 将打包后的镜像传到node,并在node解压镜像

如果想在其他node使用已有的镜像,需要将tar包传过去并且load解压。

将Pod部署到指定node

用nodename指定node的名称

apiVersion: v1
kind: Pod
metadata:
  name: nginx
spec:
  nodeName: k8s-node1
  containers:
  - name: nginx
    image: nginx
    imagePullPolicy: IfNotPresent或者Never
Logo

助力广东及东莞地区开发者,代码托管、在线学习与竞赛、技术交流与分享、资源共享、职业发展,成为松山湖开发者首选的工作与学习平台

更多推荐