前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >从无到有基于腾讯云TKE部署Kubernetes全流程(一)

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

原创
作者头像
蒋经纬
修改2020-06-24 14:57:54
1.9K0
修改2020-06-24 14:57:54
举报
文章被收录于专栏:TKE学习分享TKE学习分享

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

环境

腾讯云TKE(重庆可用区)

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

1、创建私有网络;

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

2、镜像仓库;

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

docker build

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

代码语言:javascript
复制
FROM nginx:alpine
​
MAINTAINER jingwei
​
# 这里共三个版本,分为为v1,v2,v3,其他都一样九这个值不一样,所以就不一一展示了
RUN echo v3 > /usr/share/nginx/html/index.html
​
EXPOSE 80
​
CMD ["nginx","-g","daemon off;"]
代码语言:javascript
复制
[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信息

代码语言:javascript
复制
# 腾讯云 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文件

代码语言:javascript
复制
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 访问测试

后续继续更新中!

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、创建私有网络;
  • 2、镜像仓库;
    • docker build
      • 创建镜像
        • docker login
          • docker tag
            • docker push
            • 3、TKE Kuberntes集群创建;
              • 托管 Master优点:
                • 默认安全组
                  • 如何访问管理集群?
                    • 开启公网访问
                    • 4、创建Deployment;
                    • 5、创建Service;
                    相关产品与服务
                    私有网络
                    私有网络(Virtual Private Cloud,VPC)是基于腾讯云构建的专属云上网络空间,为您在腾讯云上的资源提供网络服务,不同私有网络间完全逻辑隔离。作为您在云上的专属网络空间,您可以通过软件定义网络的方式管理您的私有网络 VPC,实现 IP 地址、子网、路由表、网络 ACL 、流日志等功能的配置管理。私有网络还支持多种方式连接 Internet,如弹性 IP 、NAT 网关等。同时,您也可以通过 VPN 连接或专线接入连通腾讯云与您本地的数据中心,灵活构建混合云。
                    领券
                    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档