##K8S自学之路##

@[TOC]K8S搭建万事第一步,先搭建环境,K8S集群搭建参考:https://www.cnblogs.com/diantong/p/12187745.html
@[TOC]K8S各组件介绍一:自学K8S之路----【第一回】K8S各组件介绍
1.1 Master
1)、Etcd: 保存了整个集群的状态;
2)、Controller: 包含deployment,replicaset,DaemonSet,job,cronjob等
3)、Scheduler: 承接controller创建的pod,为pod选择一个合适的node。kubelet监听到Scheduler调度的pod信,下载镜像,启动容器等
4)、Apiserver: K8S的api接口,如kubectl等;
1.2 Node
1):Kube-proxy: 负责为Service提供cluster内部的服务发现和负载均衡;
2):Kubelet: 管理Kubernetes Master和Node之间的通信; 管理机器上运行的Pods和containers容器 //查看kubelet日志: journalctl -xefu kubelet

二:自学K8S之路----【第二回】各组件详细配置使用
2.1 Controller:
1)、Deployment 管理pod
例1:创建http的yaml

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: httpd
  labels:
    app: httpd-demo
spec:
  replicas: 3
  template:
    metadata:
      labels:
        app: httpd
    spec:
      containers:
      - name: httpd
        image: httpd
        ports:
        - containerPort: 80

例2:创建nginx的yaml

kind: Deployment
metadata:
  name: nginxdeploy
spec:
  template:
    metadata:
      labels:
         app: myapp
    spec:
      containers:
        - name: nginxpod
          image: docker.io/nginx
          ports:
            - name: http
              containerPort: 80

2.2 Scheduler:
2.3 Kube-Proxy
1):Service 由于K8S的pod存在生命周期,当pod重启之后ip就会变化,故需要有一个固定的方式来进行访问。方法就是通过pod下的labels定义的标签,如app:myapp,当service内指定了selector的值为pod里面labels的值时,便能通过node的ip进行访问了。主要有三种方法:第一种:ClusterIp 第二种:NodePort 第三种:LoadBalancer。
ClusterIP: 用于为集群内Pod访问时,提供的固定访问地址,默认是自动分配地址,可使用ClusterIP关键字指定固定IP
NodePort:可以直接在外网浏览器能进行访问
例1:创建nginx的service的yaml

kind: Service
apiVersion: v1
metadata:
  name: service01
spec:
  selector:
    app: myapp    //pod内部的label标签
  ports:
   - protocol: TCP
     port: 8088
     targetPort: 80   //nginx内定义的端口
  type: NodePort 

在这里插入图片描述
外网访问如下:
在这里插入图片描述
2):ingress
三:自学K8S之路----【第三回】常见错误总结

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值