1. 创建pod资源
pod是最小的资源单位
任何一个k8s资源都可以有yml清单文件来定义
k8s yaml的主要组成
apiVersion: v1 api版本
kind: pod 资源类型
metadata: 属性
spec: 详细
编写第一个yml文件
vim k8s_pod.yaml
apiVersion: v1
kind: Pod
metadata:
name: nginx
labels:
app: web
spec:
containers:
- name: nginx
image: 10.0.0.11:5000/nginx:1.13
ports:
- containerPort: 80
构建容器
kubectl create -f k8s_pod.yaml
构建成失败,此处有坑
解决方法:
没有pod-infrastructure-latest.tar.gz镜像文件
上传镜像文件,导入,并上传到私有仓库
在node节点上修改配置文件
vim /etc/kubernetes/kubelet
KUBELET_POD_INFRA_CONTAINER="--pod-infra-container image=10.0.0.11:5000/rhel7/pod-infrastructure:latest"
重启服务
systemctl restart kubelet.service
再次构建
kubectl create -f k8s_pod.yaml
查看构建
kubectl get pod
kubectl describe pod nginx
pod资源:至少由两个容器组成,pod基础容器和业务容器组成(最多1+4)
pod配置文件2:
apiVersion: v1
kind: Pod
metadata:
name: test
labels:
app: web
spec:
containers:
- name: nginx
image: 10.0.0.11:5000/nginx:1.13
ports:
- containerPort: 80
- name: busybox
image: 10.0.0.11:5000/busybox:latest
command: ["sleep","1000"]
2. ReplicationController 资源
rc:保证指定数量的pod始终存活,rc通过via哦前选择器来关联pod
k8s资源的常见操作: kubectl create -f xxx.yaml kubectl get pod|rc kubectl describe pod nginx kubectl delete pod nginx 或者kubectl delete -f xxx.yaml kubectl edit pod nginx
创建一个rc
vim k8s_rc.yml
apiVersion: v1
kind: ReplicationController
metadata:
name: nginx
spec:
replicas: 5 #副本5
selector:
app: myweb
template:
metadata:
labels:
app: myweb
spec:
containers:
- name: myweb
image: 10.0.0.11:5000/nginx:1.13
ports:
- containerPort: 80
创建rc
kubectl create -f k8s_rc.yml
查看rc
kubectl get rc
查看构建的容器全部信息
kubectl get pod -o wide
修改yml文件实现滚动升级
rc的滚动升级 新建一个nginx-rc1.15.yaml
升级 kubectl rolling-update nginx -f nginx-rc1.15.yml --update-period=10s
前提:私有仓库必须要有nginx1.15的镜像
秒级回滚
回滚 kubectl rolling-update nginx2 -f nginx-rc.yml --update-period=1s