文档章节

kubernetes 初试

胡子叭槎
 胡子叭槎
发布于 2019/08/08 16:53
字数 815
阅读 13
收藏 0

3 月,跳不动了?>>>

1 主备宿主机centos 

2 关闭防火墙

    systemctl stop firewalld && systemctl disable firewalld

3 安装etcd 和kubernetes

    yum install etcd kubernetes  -y

3 修改docker 配置文件

    在docker配置文件/etc/sysconfig/docker 中 给OPTIONS 参数后面添加上 --insecure-registry gcr.io,如下:

  4 修改kubernetes 配置文件

    在配置文件/etc/kubernetes/apiserver 把参数KUBE_ADMISSION_CONTROL 中的ServiceAccount 删除

5 一次启动kubectl 服务

systemctl start etcd

systemctl start docker

systemctl start kube-apiserver

systemctl start kube-controller-manager

systemctl start kube-scheduler

systemctl start kubelet

systemctl start kube-proxy

6 下载案例所需镜像

    docker pull docker.io/kubeguide/redis-master

    dokcer pull docker.io/kubeguide/guestbook-redis-slave

    docker pull docker.io/kubeguide/guestbook-php-frontend

    docker pull registry.access.redhat.com/rhel7/pod-infrastructure:latest

    在拉镜像 registry.access.redhat.com/rhel7/pod-infrastructure:latest 的时候 可能会报错拉不下来。解决办法:

    yum install -y *rhsm*

    wget http://mirror.centos.org/centos/7/os/x86_64/Packages/python-rhsm-certificates-1.19.10-1.el7_4.x86_64.rpm

    rpm2cpio python-rhsm-certificates-1.19.10-1.el7_4.x86_64.rpm | cpio -iv --to-stdout ./etc/rhsm/ca/redhat-uep.pem | tee /etc/rhsm/ca/redhat-uep.pem

    重新拉registry.access.redhat.com/rhel7/pod-infrastructure:latest ,这个镜像拉的时候比较慢,请耐心等待。

 7 创建redis-master 的RC和service

# 编写rc的yaml文件
[root@node1 redis]# cat redis-master-controller.yaml 
apiVersion: v1
kind: ReplicationController
metadata:
  name: redis-master                    // rc 的名称
  labels:
    name: redis-master                  // rc 的标签
spec:
  replicas: 1                           // rc 创建pod的副本数量
  selector:
    name: redis-master                  // rc 使用的标签选择器
  template:                             // 使用模板创建pod
    metadata:
      labels:
        name: redis-master              // 创建的pod 使用的标签,这里一定要和上面rc 的标签选择器一致
    spec:
      containers:
      - name: master
        image: kubeguide/redis-master
        ports:
        - containerPort: 6379
# 创建rc
kubectl create -f ./redis-master-controller.yaml

[root@node1 redis]# kubectl get rc|grep master
redis-master   1         1         1         5h

[root@node1 redis]# kubectl get pods|grep master
redis-master-k9k5n   1/1       Running   0          5h
# 编写service 的yaml 文件
[root@node1 redis]# cat redis-master-service.yaml 
apiVersion: v1
kind: Service
metadata:
  name: redis-master
  labels:
    name: redis-master
spec:
  ports:
  - port: 6379                        # service 使用的虚拟端口
    targetPort: 6379                  # service 管理的pod 内部的端口
  selector:
    name: redis-master                # 这里的标签选择器要和上面RC文件里面创建pod 的标签 一致
# 创建service
kubectl create -f ./redis-master-service.yaml

[root@node1 redis]# kubectl get services|grep master
redis-master   10.254.38.172    <none>        6379/TCP       2h

8 创建redis-slave 的RC和service

[root@node1 redis]# cat redis-slave-controller.yaml 
apiVersion: v1
kind: ReplicationController
metadata:
  name: redis-slave
  labels:
    name: redis-slave
spec:
  replicas: 2
  selector:
    name: redis-slave
  template:
    metadata:
      labels:
        name: redis-slave
    spec:
      containers:
      - name: slave
        image: kubeguide/guestbook-redis-slave
        env:
        - name: GET_HOSTS_FROM
          value: env
        ports:
        - containerPort: 6379
[root@node1 redis]# kubectl get pods|grep slave
redis-slave-dt0vk    1/1       Running   0          2h
redis-slave-lf79v    1/1       Running   0          2h
[root@node1 redis]# cat redis-slave-service.yaml 
apiVersion: v1
kind: Service
metadata:
  name: redis-slave
  labels:
    name: redis-slave
spec:
  ports:
  - port: 6379
    targetPort: 6379
  selector:
    name: redis-slave
[root@node1 redis]# kubectl get services|grep slave
redis-slave    10.254.194.253   <none>        6379/TCP       2h

 

9 创建frontend 的RC和service

[root@node1 redis]# cat frontend-controller.yaml 
apiVersion: v1
kind: ReplicationController
metadata:
  name: frontend
  labels:
    name: frontend
spec:
  replicas: 3
  selector:
    name: frontend
  template:
    metadata:
      labels:
        name: frontend
    spec:
      containers:
      - name: frontend
        image: kubeguide/guestbook-php-frontend
        env:
        - name: GET_HOSTS_FROM
          value: env
        ports:
        - containerPort: 80
[root@node1 redis]# cat frontend-service.yaml 
apiVersion: v1
kind: Service
metadata:
  name: frontend
  labels:
    name: frontend
spec:
  type: NodePort
  ports:
  - port: 80
    nodePort: 30001
  selector:
    name: frontend

# 由于 frontend 服务是需要外部访问的,所以需要把service的虚拟端口映射到宿主机上,所以添加了 nodePort 端口,
# nodePort 范围在30000 到 32767 都可以,否则报错。
[root@node1 redis]# kubectl get pods|grep front
frontend-069sm       1/1       Running   0          2h
frontend-bksm5       1/1       Running   0          2h
frontend-q2vpv       1/1       Running   0          2h
[root@node1 redis]# kubectl get rc|grep front
frontend       3         3         3         2h
[root@node1 redis]# kubectl get service|grep front
frontend       10.254.27.214    <nodes>       80:30001/TCP   2h

9 实验

© 著作权归作者所有

胡子叭槎
粉丝 22
博文 152
码字总数 152719
作品 0
成都
运维
私信 提问
加载中

评论(0)

如何在 Kubernetes 环境中搭建 MySQL(四):使用 StorageClass 挂接 RBD

1. 简介 在系列文章的第三篇中,讲到了如何使用 PV 和 PVC 挂载 RBD 上建立好的块存储镜像,但这还是不足以满足 cloud native 环境下的需求,试想如果部署一个应用,需要申请十个 RBD images...

blackpiglet
2018/06/19
0
0
在Play with Kubernetes平台上以测试驱动的方式部署Istio

翻译一篇 Istio 部署教程,原文链接:test-drive-your-first-istio-deployment-using-play-with-kubernetes-platform-cloud-computing 作为一名全栈开发,假如最近花了不少时间开发应用,肯定...

blackpiglet
2018/09/06
0
0
2018腾讯腾讯春招行业应用岗面经加总结

春招已经接近尾声,来总结下我2018腾讯腾讯春招行业应用岗的面试经历吧。 首先说下基本流程,网申+笔试+初试+复试+HR面。所有岗位基本都差不多。 这里想强调下,网申是不刷人的,因为几乎所有...

牛客网
2018/05/23
0
0
这面试面的我都没信心了

上周面了一个,还是朋友内部推荐的,电话通知让去面试,第二天就去了 先是笔试,然后是面试,笔试个人觉得答得一般,然后到面试了,面试官让讲出这是为什么这样做的,个人回答的不是很好,但...

干爷爷
2014/02/18
3.6K
26
在k8s上安装Jenkins及常见问题

持续集成和部署是DevOps的重要组成部分,Jenkins是一款非常流行的持续集成和部署工具,最近试验了一下Jenkins,发现它是我一段时间以来用过的工具中最复杂的。一个可能的原因是它需要与各种其...

倚天码农
2019/11/04
0
0

没有更多内容

加载失败,请刷新页面

加载更多

第二天

独立工程就是打成一个war包,war包可以部署到不同的服务器中; 聚合工程至少有一个是war包,去除web后manager聚合工程剩余dao、service、pojo、interface,把service改成war包 main下加入web...

七宝1
40分钟前
19
0
开源:从“复兴”走向“商业化”

在美国版“知乎”Quora上搜“Open Source(开源)”,出来第一条问题是: “Linux的失败真的是因为开源吗?”。其中一个回答给我很多启发: “有些人把安卓和Chrome OS的成功归结于Linux开源...

编辑部的故事
今天
323
0
JavaScript等同于printf / String.Format - JavaScript equivalent to printf/String.Format

问题: I'm looking for a good JavaScript equivalent of the C/PHP printf() or for C#/Java programmers, String.Format() ( IFormatProvider for .NET). 我正在寻找一个等效于C / PHP p......

javail
今天
27
0
什么是Android上的“上下文”? - What is 'Context' on Android?

问题: In Android programming, what exactly is a Context class and what is it used for? 在Android编程中, Context类到底是什么?它的用途是什么? I read about it on the developer......

技术盛宴
今天
26
0
OkHttp配置HTTPS访问+服务器部署

1 概述 OkHttp配置HTTPS访问,核心为以下三个部分: sslSocketFactory() HostnameVerifier X509TrustManager 第一个是ssl套接字工厂,第二个用来验证主机名,第三个是证书信任器管理类.通过OkHtt...

氷泠
今天
26
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部