zoukankan      html  css  js  c++  java
  • kubernetes

    参考教程:https://www.kubernetes.org.cn/3808.html

    先删除旧版本docker

    Get Docker CE for CentOS

    $ sudo yum remove docker 
                      docker-client 
                      docker-client-latest 
                      docker-common 
                      docker-latest 
                      docker-latest-logrotate 
                      docker-logrotate 
                      docker-selinux 
                      docker-engine-selinux 
                      docker-engine

    创建mysql-rc.yaml

    apiVersion: v1
    kind: ReplicationController
    metadata:
      name: mysql
      labels:
        name: mysql
    spec:
      replicas: 1
      selector:
        app: mysql
      template:
        metadata:
          labels:
            app: mysql
        spec:
          containers:
          - name: mysql
            image: mysql
            ports:
            - containerPort: 3306
            env:
            - name: MYSQL_ROOT_PASSWORD
              value: "123456"
    View Code

    yaml的格式非常严格,冒号后面必须加空格,不能使用tab键制表符,必须使用空格

    创建rc

    kubectl create -f mysql-rc.yaml

    查看rc

    kubectl get rc

    查看pod

    kubectl get pods

     删除rc

    kubectl delete -f  mysql-rc.yaml

     查看节点

    kubectl get nodes

     

    查看node详细信息

    kubectl describe node 127.0.0.1

    创建一个webapp-rc.yaml

    apiVersion: v1
    kind: ReplicationController
    metadata:
      name: webapp
    spec:
      replicas: 2
      template:
        metadata: 
          name: webapp
          labels:
            app: webapp
        spec:
          containers:
          - name: webapp
            image: tomcat
            ports:
            - containerPort: 8080
    View Code

    运行

    kubectl create -f webapp-rc.yaml

    这里一开始运行3个master,默认master不运行pod

    这里看到4/2是因为之前开启了node4节点,两个pod都运行在node4上,之后关闭了node4节点

     让master也参与运行pod

    kubectl taint nodes --all node-role.kubernetes.io/master-

     

    可以看到之前分配在node4上的pod已经运行在node1和node3上了

    获取Pod的IP地址

    kubectl get pods -l app=webapp -o yaml | grep podIP

    可以直接通过这两个Pod的IP地址和端口访问Tomcat服务

    curl 10.244.1.2:8080

    创建service

    kubectl expose rc webapp

    查看

    kubectl get service

    在dashboard查看

    访问10.99.120.114:8080

    除了使用expose命令,还可以通过配置文件定义service

    apiVersion: v1
    kind: Service
    metadata:
      name: webapp
    spec:
      ports:
      - port: 8081
        targetPort: 8080
      selector:
        app: webapp
    View Code

     将service的端口映射到物理机已供集群外部访问

    apiVersion: v1
    kind: Service
    metadata:
      name: webapp
    spec:
      type: NodePort
      ports:
      - port: 8081
        targetPort: 8080
        nodePort: 8081
      selector:
        app: webapp
    View Code

    创建一个redis-master

    apiVersion: v1
    kind: Pod
    metadata:
      name: redis-master
      labels:
        app: redis-master
    spec:
      containers:
      - name: redis-master
        image: redis
        ports:
        - containerPort: 6379
      hostNetWork: true
    View Code

    启动后查看

    使用客户端连接测试

     

     DNS

    Kubernetes 从 1.3 版本起, DNS 是内置的服务,通过插件管理器 集群插件 自动被启动。

    查看所有服务

    kubectl get svc --namespace=kube-system

    可以看到dns

    创建 busybox.yaml 文件,内容如下:

    apiVersion: v1
    kind: Pod
    metadata:
      name: busybox
      namespace: default
    spec:
      containers:
      - image: busybox
        command:
          - sleep
          - "3600"
        imagePullPolicy: IfNotPresent
        name: busybox
      restartPolicy: Always
    View Code

    然后,用该文件创建一个 Pod:

    kubectl create -f busybox.yaml

    等这个Pod运行后执行如下 nslookup 查询:

    kubectl exec -ti busybox -- nslookup kubernetes.default

    新增一个redis服务

    apiVersion: v1
    kind: Service
    metadata:
      name: redis-master
      labels:
        name: redis-master
    spec:
      type: NodePort
      ports:
      - port: 6380
        targetPort: 6379
        nodePort: 30002
      selector:
        app: redis-master
    View Code

    创建服务

    点击名称可以看到详细

     使用客户端连接测试

    查看服务

    kubectl get services

    通过服务名查找

    kubectl  exec busybox -- nslookup redis-master

    查看context

    kubectl config view

    在浏览器打开https://192.168.112.186:6443/

    打开https://192.168.112.186:6443/api/v1 即可看到API接口

  • 相关阅读:
    数据分析必须掌握的统计学知识!
    数据分析常用指标大全,熟记!
    Java编程基础阶段笔记 day 07 面向对象编程(上)
    Java编程基础阶段笔记 day04 Java基础语法(下)
    Java编程基础阶段笔记 day06 二维数组
    Java编程基础阶段笔记 day05 数组
    Java编程基础阶段笔记 day04 Java基础语法(下)
    Java编程基础阶段笔记 day03 Java基本语法(中)
    啥?虚拟现实技术已经应用到自动化仓库? | 基于unity实现的自动化仓库模拟监控系统
    交互设计书单--西南交大课程推荐
  • 原文地址:https://www.cnblogs.com/uptothesky/p/9069609.html
Copyright © 2011-2022 走看看