K8S 发布应用
前言
昨儿个用 unbuntu20.04 又装了一次K8S
用的 kubeadm + containerd + Cilium (CNI)
又重新撸了一遍
这里只记录 应用发布的笔记
正文
#创建deployment
kubectl create deployment nginx --image=nginx
#我这边大约30秒后显示为 ready
kubectl get deployments
kubectl describe deployment nginx
#查看操作步骤
#1.创建pod 2.将pod分配给worker节点 3.伸缩ReplicaSet到指定数量
#4.拉取nginx镜像 5.创建nginx容器 6.拉取镜像成功后运行容器
kubectl get events --sort-by='.metadata.creationTimestamp'
#查看yaml - 它可以用来重新创建这个deployment
kubectl get deployment nginx -o yaml
#输出这个yaml,修改配置后重新创建 deployment
kubectl get deployment nginx -o yaml > first.yaml
#编辑yaml配置文件,移除 creationTimestamp 这一行
vim first.yaml
#删除后重新创建
kubectl delete deployment nginx
kubectl create -f first.yaml
#文件对比
kubectl get deployment nginx -o yaml > second.yaml
diff first.yaml second.yaml
#--dry-run=client 模拟执行命令,但不真的创建资源 -> 生成yaml文件
kubectl create deployment two --image=nginx --dry-run=client -o yaml
#通过yaml输出查看已存在的对象
kubectl get deployments nginx -o yaml
#通过JSON查看
kubectl get deployment nginx -o json
#查看帮助 -> 需要创建一个service来暴露nginx的web页面
kubectl expose -h
#未指定端口
weiheng@weihengcp:/data/work/yaml$ kubectl expose deployment/nginx
'error: couldn't find port via --port flag or introspection
#修改配置文件后,可以使用 apply , edit or patch 做无中断更新
#如果出现无法更新的资源字段,可强制执行 --force
#现在修改配置,添加端口信息
vim first.yaml
#添加 ports 配置,暴露端口
spec:
containers:
- image: nginx
imagePullPolicy: Always
name: nginx
ports:
- containerPort: 80
protocol: TCP
resources: {}
#终止,并新建deployment
kubectl replace -f first.yaml --force
#查看
kubectl get deploy,pod
#暴露资源 again -> 创建service
kubectl expose deployment/nginx
#查看service配置
kubectl get svc nginx
#查看 kubelet 和 kube-proxy 提供的 endpoint
kubectl get ep nginx
#通过集群IP访问 welcome 页面
curl 10.99.250.234:80
#通过endpoint访问 welcome 页面
curl 192.10.1.169:80
kubectl get deployment nginx
#拓展至3个副本
kubectl scale deployment nginx --replicas=3
kubectl get deployment nginx
#拓展后会看到,现在有3个 endpoint
kubectl get ep nginx
kubectl get pod -o wide
kubectl delete pod nginx-7c5ddbdf54-vnzhr
kubectl get po
#发现 endpoint IP改变了,原来的 endpoint 被删除了
kubectl get ep nginx
#再次测试,发现一切正常
curl 10.99.250.234:80
curl 192.10.1.169:80