(二)Kubernetes打造云原生Devops--ingress搭建及service服务发布

(二)Kubernetes打造云原生Devops--ingress搭建及service服务发布

1.打造属于自己的docker镜像仓库--harbor

 上一节在安装kubelet、kubeadm....时,我将相关镜像push到了我本地harbor仓库,此处我就不介绍如何搭建harbor仓库。

2.搭建ingress

  •     Ingress公开了从群集外部到群集内服务的HTTP和HTTPS路由 。流量路由由Ingress资源上定义的规则控制。

 此处参照官方文档(安装文档)

    kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v0.46.0/deploy/static/provider/baremetal/deploy.yaml

验证安装

kubectl get pods -n ingress-nginx \ -l app.kubernetes.io/name=ingress-nginx --watch

检测已安装的版本

要检测正在运行哪个版本的Ingress控制器,请在pod中执行exec并运行nginx-ingress-controller --version

POD_NAMESPACE=ingress-nginx POD_NAME=$(kubectl get pods -n $POD_NAMESPACE -l app.kubernetes.io/name=ingress-nginx --field-selector=status.phase=Running -o jsonpath='{.items[0].metadata.name}') kubectl exec -it $POD_NAME -n $POD_NAMESPACE -- /nginx-ingress-controller --version

3.服务发布

微服务yaml文件

service/access/hello-application.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: hello-world
spec:
  selector:
    matchLabels:
      run: load-balancer-example
  replicas: 2
  template:
    metadata:
      labels:
        run: load-balancer-example
    spec:
      containers:
        - name: hello-world
          image: gcr.io/google-samples/node-hello:1.0
          ports:
            - containerPort: 8080
              protocol: TCP

我们将服务部署至K8S中

kubectl apply -f ./hello-application.yaml

查看部署信息

kubectl get deployments hello-world
kubectl describe deployments hello-world

如若是Java微服务,先使用Docker将服务制作成镜像(docker build),再将镜像push至harbor仓库,参考上述配置文件酌情修改。

4.ingress配置

  • ingress yaml文件
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: hello-world-ingress
spec:
  rules:
  - host: hello-world.test.com
    http:
      paths:
      - path: /
        backend:
          serviceName: hello-world
          servicePort: 8080

部署ingress yaml文件

kubectl apply -f ./ingress.yaml

此时,我们服务已发布至igress,如若是微服务架构,可通过ignress网关进行单一入口拦截,进行服务间的转发。

上述配置文件中host所配置的域名,你必须配置本地host才能进行访问

hello-world.test.com 10.5.55.39(K8S-masterIp)

 

 

 

 

你可能感兴趣的:(kubernetes系列,kubernetes,docker,k8s,devops,云原生)