专栏首页TKE学习分享从无到有基于腾讯云TKE部署Kubernetes全流程(一)
原创

从无到有基于腾讯云TKE部署Kubernetes全流程(一)

从无到有基于腾讯云TKE部署Kubernetes全流程

环境

腾讯云TKE(重庆可用区)

这里我们希望的是,提供一个腾讯云TKE中部署整个基础环境,以及对部分服务的一个示例。

1、创建私有网络;

云产品 ==> 私有网络 ==> 新建

2、镜像仓库;

创建容器仓库,并将我们所需的镜像制作并push到该仓库;

docker build

这里为了演示就只用 Nginx的镜像,更改一个默认页面,然后Push 上去。

FROM nginx:alpine
​
MAINTAINER jingwei
​
# 这里共三个版本,分为为v1,v2,v3,其他都一样九这个值不一样,所以就不一一展示了
RUN echo v3 > /usr/share/nginx/html/index.html
​
EXPOSE 80
​
CMD ["nginx","-g","daemon off;"]
[root@jiangjw v3]# docker build -t nginx:v3 .
Sending build context to Docker daemon  2.048kB
Step 1/5 : FROM nginx:alpine
 ---> 7d0cdcc60a96
Step 2/5 : MAINTAINER jingwei
 ---> Using cache
 ---> 8cf4bd502567
Step 3/5 : RUN echo v3 > /usr/share/nginx/html/index.html
 ---> Running in f7af5a6f10b8
Removing intermediate container f7af5a6f10b8
 ---> cf836953a324
Step 4/5 : EXPOSE 80
 ---> Running in 83ac16d9c68e
Removing intermediate container 83ac16d9c68e
 ---> c5cf5fe42af4
Step 5/5 : CMD ["nginx","-g","daemon off;"]
 ---> Running in 0f8e5598e413
Removing intermediate container 0f8e5598e413
 ---> 1c817e8f41ba
Successfully built 1c817e8f41ba
Successfully tagged nginx:v3

创建镜像

查看指引

docker login

登录镜像仓库

注意:密码为首次进入镜像仓库时设置的密码

docker tag

docker push

通过控制台就可以查看到push上来的镜像了

3、TKE Kuberntes集群创建;

这里我们选择托管Master。

托管 Master优点:

  • Master由腾讯云运维放心,减少证书维护等等一系列麻烦;
  • Master节点不用客户付费,省钱;

默认安全组

如何访问管理集群?

至此,我们的Kuberntes集群创建完毕,但是由于我们没有开启公网带宽,我们又没有Mater节点,怎么通过命令行访问该集群呢?

外网访问 or 内网访问

外网访问:

  • 外部与该Kuberntes集群网络不互通的情况下,走公网访问

内网访问:

  • 与该Kuberntes集群网络互通,走内网访问

这里由于我没有创建 CVM,所以我直接用本地的虚拟机,下载 kubectl命令,TKE集群开启外网访问即可管理集群。

开启公网访问


在基本信息中可以看到集群的一些信息。

集群APIServer信息

# 腾讯云 Kuberntes yum源
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.cloud.tencent.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=0

根据基本信息中,APIServer 说明,一步一步操作即可。

完成,目前可以通过远程命令行进行集群的管理。

4、创建Deployment;

创建资源控制器可以通过写yaml文件的方式,然后命令行执行,也可以通过TKE的控制台进行创建,这里我们通过TKE控制台进行创建,并查看生成的 yaml。

我们拿到生成的yaml后,后续大规模的服务迁入就可以通过该 yaml为模板进行对应字段的更改即可。

生成的完整deployment yaml文件

apiVersion: apps/v1beta2
kind: Deployment
metadata:
  annotations:
    deployment.kubernetes.io/revision: "1"
  creationTimestamp: "2020-06-22T10:29:00Z"
  generation: 1
  labels:
    k8s-app: test-nginx
    qcloud-app: test-nginx
  name: test-nginx
  namespace: default
  resourceVersion: "44495000"
  selfLink: /apis/apps/v1beta2/namespaces/default/deployments/test-nginx
  uid: 14e0642a-9df6-4f1c-a99c-3faf5ddc5314
spec:
  progressDeadlineSeconds: 600
  replicas: 1
  revisionHistoryLimit: 10
  selector:
    matchLabels:
      k8s-app: test-nginx
      qcloud-app: test-nginx
  strategy:
    rollingUpdate:
      maxSurge: 1
      maxUnavailable: 0
    type: RollingUpdate
  template:
    metadata:
      creationTimestamp: null
      labels:
        k8s-app: test-nginx
        qcloud-app: test-nginx
    spec:
      containers:
      - image: ccr.ccs.tencentyun.com/jingwei-tke/nginx:v1
        imagePullPolicy: IfNotPresent
        name: test-nginx-pod
        resources:
          limits:
            cpu: 500m
            memory: 1Gi
          requests:
            cpu: 250m
            memory: 256Mi
        securityContext:
          privileged: false
        terminationMessagePath: /dev/termination-log
        terminationMessagePolicy: File
      dnsPolicy: ClusterFirst
      imagePullSecrets:
      - name: qcloudregistrykey
      restartPolicy: Always
      schedulerName: default-scheduler
      securityContext: {}
      terminationGracePeriodSeconds: 30
status:
  availableReplicas: 1
  conditions:
  - lastTransitionTime: "2020-06-22T10:29:01Z"
    lastUpdateTime: "2020-06-22T10:29:01Z"
    message: Deployment has minimum availability.
    reason: MinimumReplicasAvailable
    status: "True"
    type: Available
  - lastTransitionTime: "2020-06-22T10:29:00Z"
    lastUpdateTime: "2020-06-22T10:29:01Z"
    message: ReplicaSet "test-nginx-77f56f6df9" has successfully progressed.
    reason: NewReplicaSetAvailable
    status: "True"
    type: Progressing
  observedGeneration: 1
  readyReplicas: 1
  replicas: 1
  updatedReplicas: 1

由于没有与内网联通实在难用,这里我又创建了一个Node节点使用了公网带宽,从而我可以通过该公网ip进入TKE该集群。

5、创建Service;

Service 通过 selectors 标签与pod进行匹配对应

通过Service 访问测试

后续继续更新中!

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 从无到有基于腾讯云TKE部署Kubernetes全流程(三)

    只能实现一对一挂载,因为硬盘只支持一次挂载,通过硬盘创建的PVC为RWO,单机读写。

    蒋经纬
  • 从无到有基于腾讯云TKE部署Kubernetes全流程(四)

    前面的TKE集群工作都有所完成了,现在我们尝试通过这一系列工具使得,流程完全自动化。

    蒋经纬
  • TKE镜像仓库使用

    如果您不需要自动化构建的过程,目前就可以使用了,您只需要将您的镜像,打一个tag ,然后login、push到该命名空间下即可!

    蒋经纬
  • 121-配置zabbix通过钉钉机器人报警

    zabbix服务器监控到异常,可以通过各种方式发送报警消息。配置步骤如下: 1、创建报警脚本

    凯茜的老爸
  • 靶机渗透DC-4

    然后在目录里翻翻。在home目录里看到两个用户。在jim的用户目录里找到了密码的线索。

    HipHip
  • 域控时间同步的一次诡异事件

    某用户反馈域成员的时间突然跟域控不同步了,时间同步走了ntpupdate.tencentyun.com,如下图

    shawyang
  • 解密那些高大尚的会议是咋办的

    传统的百人以上会议,单单通知参会人时间、地点、交通住宿安排等参会信息,就已经很头大了,更别说要求提交各种参会所需资料文件,沟通协调成本巨大。

    上海蜂雀网络科技有限公司
  • Windows 平台安装 MongoDB教程

    链接: https://pan.baidu.com/s/1dRZw748Lui_r9kE5aYwZFA 密码: 9yj6 此文件只适用于64位系统安装,32位...

    潇洒坤
  • 国内网站的404页面们

    Joel
  • CSS3新增属性

    王凡汎

扫码关注云+社区

领取腾讯云代金券