k8s:云原生(在各种云都像是在本地部署<个人理解>)的基础设置
K8S宏观组件理解

service\lable

Deployment: 管理ReplicaSet, 对ReplicaSet进行扩缩容
ReplicaSet: 管理pod ,对pod 进行扩缩容,定义多少个pod能够运行
pod:k8s最小操作单元,一个或者多个container的组合, 共享存储和网络
lable:key==value格式的标签,可以给组件打标签 pod、ReplicaSet
service:selector-选择具有相同lable标签的pod 一种抽象方式,具有相同lable的一组pod集合
k8s宏观组件理解

kubctl: 调用主节点的客户端
认证授权: 认证kubectl有没有操作整个集群的权利
APIService: Manager节点接受认证授权之后的kubectl传过来的请求
Scheduler: 具体到那个worker节点执行操作的策略
ControllerManager: 具体执行分发请求
kube-proxy: worker节点接收manager节点分发的请求
kubelet: 可以用来创建pod
docker: 每个pod中的容器是docker,所以需要docker engine 的环境
etcd: 存储集群具体的数据(接受过多少请求,数据具体落到那个地方)
dns: 域名解析
dashdoard: 图形化界面监控

环境搭建方式
01the hard way
https://github.com/kelseyhightower/kubernetes-the-hard-way
02在线play-with-k8s
https://labs.play-with-k8s.com/
03正常搭建方式
a: Cloud上搭建 https://github.com/kubernetes/kops
b: 企业级解决方案CoreOS https://coreos.com/tectonic/
minikube 搭建一个本地单机版k8s
kubeadm/二进制方式 搭建本地一个k8s集群
搭建命令
查看链接信息
kubectl config view
kubectl config get-contexts
kubectl cluster-info
kubectl get pods -n kube-system
创建pod_nginx.yaml
apiVersion: v1
kind: Pod
metadata:
name: nginx
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx
ports:
- containerPort:80
根据pod_nginx.yaml文件创建pod
kubectl apply -f pod_nginx.yaml
查看pod
kubectl get pods
kubectl get pods -o wide
kubectl describe pod nginx
进入nginx容器
# kubectl进入
kubectl exec -it nginx bash
# 通过docker进入
minikube ssh
docker ps
docker exec -it containerid bash
访问nginx,端口转发
# 若在minikube中,直接访问
# 若在物理主机上,要做端口转发
kubectl port-forward nginx 8080:80
删除pod
kubectl delete -f pod_nginx.yaml
查看pod描述
kubectl describe pod nginx
查看pod yml文件描述
kubectl get pod nginx -o yaml
网友评论