上云无忧 > 文档中心 > 百度智能云容器引擎服务 CCE 通过kubectl连接集群
容器引擎服务CCE
百度智能云容器引擎服务 CCE 通过kubectl连接集群

文档简介:
如果用户需要从本地个人计算机连接到百度智能云的 Kubernetes 集群,需要使用 Kubernetes 命令行客户端 kubectl. kubectl的安装步骤如下所示。 操作步骤: 从Kubernetes 版本下载页面下载对应的 kubectl 客户端,关于kubectl 的其他信息,可以参见 kubernetes 官方安装和设置 kubectl文档。
*此产品及展示信息均由百度智能云官方提供。免费试用 咨询热线:400-826-7010,为您提供专业的售前咨询,让您快速了解云产品,助您轻松上云! 微信咨询
  免费试用、价格特惠

通过kubectl连接Kubernetes集群

如果用户需要从本地个人计算机连接到百度智能云的 Kubernetes 集群,需要使用 Kubernetes 命令行客户端 kubectl. kubectl的安装步骤如下所示。

操作步骤

从Kubernetes 版本下载页面下载对应的 kubectl 客户端,关于kubectl 的其他信息,可以参见 kubernetes 官方安装和设置 kubectl文档。

注意:

本操作指南给出的操作步骤都是基于linux操作环境的。

  1. 解压下载后的文件,为kubectl添加执行权限,并放在PATH下

    chmod +x ./kubectl

    sudo mv ./kubectl /usr/local/bin/kubectl

  2. 下载集群凭证。
  • 可在集群列表查看并下载集群凭证

  • 也可在集群详情页查看并下载集群凭证

  1. 配置kubectl,将第 2 步下载的集群凭证放在 kubectl 的默认配置路径。

    mv kubectl.conf ~/.kube/config

  2. 配置完成后,您即可以使用 kubectl 从本地计算机访问 Kubernetes 集群

    kubectl get node

通过kubectl创建简单的服务

创建一个nginx应用

这个命令假设kubectl命令行工具已经在PATH中,且有权限操作kubernetes集群(即已完成通过kubectl连接Kubernetes集群的操作)输入以下指令:

kubectl run my-nginx --image=nginx --replicas=3 --port=80

上述命令会创建3个nginx容器,每个容器都会暴露它的80端口。

查看创建nginx容器状态的指令如下:

$ kubectl get pods
NAME                       READY     STATUS    RESTARTS   AGE
my-nginx-858393261-pfjdn   1/1       Running   0          14s
my-nginx-858393261-sn7g5   1/1       Running   0          14s
my-nginx-858393261-spv8w   1/1       Running   0          14s

注意: 符号"$"代表输入的指令,其他行代表输入指令后显示的容器的信息。

暴露服务到internet

创建服务

在公有云环境下,可以通过输入命令,创建出一个类型为LoadBalancer的service,同时,还会联动公有云,创建一个负载均衡和一个公网IP,具体操作指令如下:

kubectl expose deployment my-nginx --port=80 --type=LoadBalancer

注意:

负载均衡:通过将同一区域的多台百度智能云服务器虚拟成一个组,设置一个内网或外网的服务地址,将前端并发访问转发给后台多台云服务器,实现应用程序的流量均衡。您可以通过查询服务获取的公网络IP,在百度智能云控制台中的负载均衡BLB页面找到您创建的BLB实例,其收费标准请参考负载均衡BLB定价。 公网IP:作为一个独立的商品为用户提供公网带宽服务。您可以通过查看服务来查询您创建的公网IP地址,其收费标准请参考弹性公网IP EIP的定价,且自动默认计费标准为后付费。

查看服务

通过查看服务的命令,可以看到这个服务的情况和创建出的公网IP。

$ kubectl get services
NAME         CLUSTER-IP    EXTERNAL-IP      PORT(S)        AGE
kubernetes   172.17.0.1443/TCP        1h
my-nginx     172.17.44.5   180.76.139.247   80:30356/TCP   47s

通过访问180.76.139.247这个链接可以看到创建的服务如图所示:

注意: 符号"$"代表输入的指令,其他行代表输入指令后显示的服务信息,其中180.76.139.247 为发布到外网的服务网址。 服务使用负载均衡除了上述指令调用之外,还可以通过Dashboard调用具体操作参考Kubernetes Dashboard创建服务

删除服务

如果需要删除服务,不想将对公网暴露。可以直接删除服务

kubectl delete svc my-nginx

注意:

kubernetes会将刚才创建出的公网IP和负载均衡删除,然后也会删除创建的这个服务。

本地访问 Kubernetes Dashboard (Web UI)

前提条件

在本地使用 Kubernetes Dashboard 前,用户需要先配置好kubectl,能通过kubectl连接百度智能云的 Kubernetes 集群。

操作步骤

创建Dashboard服务。在本地通过kubectl工具,可以在kubernetes集群里创建一个Dashboard应用。

$ kubectl create -f dashboard.yaml
secret "kubernetes-dashboard-certs" created
serviceaccount "kubernetes-dashboard" created
clusterrolebinding "kubernetes-dashboard" created
deployment "kubernetes-dashboard" created
service "kubernetes-dashboard" created

对应的dashboard.yaml文件为:

apiVersion: v1
kind: Secret
metadata:
  labels:
    k8s-app: kubernetes-dashboard
  name: kubernetes-dashboard-certs
  namespace: kube-system
type: Opaque

---

apiVersion: v1
kind: ServiceAccount
metadata:
  labels:
    k8s-app: kubernetes-dashboard
  name: kubernetes-dashboard
  namespace: kube-system

---

apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRoleBinding
metadata:
  name: kubernetes-dashboard
  labels:
    k8s-app: kubernetes-dashboard
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin
subjects:
- kind: ServiceAccount
  name: kubernetes-dashboard
  namespace: kube-system

---

kind: Deployment
apiVersion: apps/v1
metadata:
  labels:
    k8s-app: kubernetes-dashboard
  name: kubernetes-dashboard
  namespace: kube-system
spec:
  replicas: 1
  revisionHistoryLimit: 10
  selector:
    matchLabels:
      k8s-app: kubernetes-dashboard
  template:
    metadata:
      labels:
        k8s-app: kubernetes-dashboard
    spec:
      containers:
      - name: kubernetes-dashboard
        image: hub.baidubce.com/public/dashboard:v1.8.3-caas
        ports:
        - containerPort: 8443
          protocol: TCP
        args:
          - --auto-generate-certificates
        volumeMounts:
        - name: kubernetes-dashboard-certs
          mountPath: /certs
        - mountPath: /tmp
          name: tmp-volume
        livenessProbe:
          httpGet:
            scheme: HTTPS
            path: /
            port: 8443
          initialDelaySeconds: 30
          timeoutSeconds: 30
      volumes:
      - name: kubernetes-dashboard-certs
        secret:
          secretName: kubernetes-dashboard-certs
      - name: tmp-volume
        emptyDir: {}
      serviceAccountName: kubernetes-dashboard
      tolerations:
      - key: node-role.kubernetes.io/master
        effect: NoSchedule

---
kind: Service
apiVersion: v1
metadata:
  labels:
    k8s-app: kubernetes-dashboard
  name: kubernetes-dashboard
  namespace: kube-system
spec:
  ports:
    - port: 443
      targetPort: 8443
  selector:
    k8s-app: kubernetes-dashboard

在创建好dashboard之后,使用kubectl proxy命令开启一个代理,连接到Kubernetes API Server。

kubectl proxy

成功开启代理后,可以在本地浏览器中访问http://127.0.0.1:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/#!/login,连接到Dashboard。

注意:

localhost 是指的用户使用的本地机器,而不是虚拟机,且对应的IP地址为:127.0.0.1

通过Kubernetes-Dashboard创建服务

  1. 完成本地访问 Kubernetes Dashboard (Web UI)后,进入Dshboard页面,点击右上角创建,开始创建服务;

  2. 进入创建应用页面,输入要创建的应用名称,容器镜像,容器组(Pod)数量;

  3. 服务中选择外部, 后台会完成EIP和BLB的创建,端口配置分别填写80,80,协议选择TCP,然后点击部署按钮开始服务创建;

  4. 等待服务创建成功,且页面需要手动刷新;

  5. 在创建成功页面点击服务按钮,进入服务页面;

  6. 在此页面中会显示服务的外网地址;

  7. 在浏览器中输入外网地址,显示服务创建成功;

使用私有镜像创建服务

如果用户需要使用私有镜像,需要先配置ImagePullSecrets,同时在创建的资源中指明此ImagePullSecrets。下面简要介绍创建步骤,更加详细的关于ImagePullSecrets的信息,可以参考Kubernetes官方文档。

  • 通过kubectl创建ImagePullSecrets

    首先,用户需要有私有仓库空间的用户名密码,通过以下命令,可以创建出名为myregistrykey的ImagePullSecret

    $ kubectl create secret docker-registry myregistrykey --docker-server=DOCKER_REGISTRY_SERVER 
  • --docker-username=DOCKER_USER --docker-password=DOCKER_PASSWORD --docker-email=DOCKER_EMAIL
        
        secret "myregistrykey" created.
  • 在需要创建的资源中使用此ImagePullSecret

    例如,下面的pod yaml文件里指明此Pod使用私有镜像hub.baidubce.com/private-online/awesomeapp:v1,同时通过myregistrykey这个imagePullSecrets去镜像仓库拉取镜像。

    apiVersion: v1
      kind: Pod
      metadata:
        name: foo
        namespace: awesomeapps
      spec:
        containers:
          - name: foo
            image: hub.baidubce.com/private-online/awesomeapp:v1
        imagePullSecrets:
          - name: myregistrykey
  • 在dashboard中指定创建服务的ImagePullSecrets

    在通过kubectl创建成功ImagePullSecrets后,在dashboard中创建应用时,也能选择使用ImagePullSecret。 例如下图中:

    我们为即将创建的应用选择了前文创建的myregistrykey,这样kubernetes就有权限区拉取私有仓库的镜像了。

windows 下使用kubectl

  • 创建集群之后,下载windows版本的kubectl工具,例如64位的工具如下: 

    注意: 下载kubectl之前,用户需要先登录自己的服务器使用指令kubectl version查看自己创建的集群的版本号,然后选择对应的kubectl版本进行下载。例如:用户的集群版本号为1.8,则需要下载的kubectl为1.8版。下载链接为https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG.md?spm=5176.app53755.3.2.2uYdIN&file=CHANGELOG.md#client-binaries-17,用户根据自己集群版本号,下载相应版本的工具。

  • 下载之后,将其解压到任意目录,例如放在D盘下 
  • 在 目录C:\users\下进入用户的文件夹,例如用户名为foo,则文件夹应该为C:\users\foo,同时进入此目录,创建文件夹.kube

  • 在集群列表页面,下载集群配置文件,放在上一步创建的.kube文件夹中,并且重名名为config

  • 打开windows命令行提示符 
  • 进入kubectl文件存放的目录,运行kubectl.exe get node可以查看集群的节点。

  • 在同一个目录下,创建dashboard.yaml文件,其内容是前文中的dashboard.yaml,例如可以用记事本创建:

  • 然后输入kubectl.exe create -f dashboard.yaml创建dashboard

  • 通过kubectl.exe get pod --all-namespaces命令可以查看是否创建成功

  • 输入kubectl.exe proxy可以打开proxy,然后在浏览器中访问127.0.0.1:8001/ui 即可以访问dashboard 

相似文档
  • 在 CCE 集群中,节点初始化时需要运行一些必要的系统组件和Kubernetes组件,使该节点能够成功纳入该集群并正常提供服务,因此需要为这些组件预留一部分系统资源,您会看到节点资源总量与节点在Kubernetes中的可分配资源之间会存在差异。节点的规格越大,在节点上部署的容器可能会越多,需要需预留的资源可能越多。
  • 节点服务迁移: 以节点 192.168.16.27 为例说明,执行 drain 驱逐节点服务: # kubectl drain 192.168.16.27 --ignore-daemonsets 检查节点状态为 SchedulingDisabled: # kubectl get nodes NAME STATUS ROLES AGE VERSION 192.168.16.27 Ready,SchedulingDisabled 47m v1.13.10
  • CCE 安全组体系已经完成升级改造,新版包含如下 4 个 CCE 安全组 (具体所含规则见本文第 2 节): CCE Master 默认安全组。 CCE Master 附加安全组。 CCE Node (Worker) 默认安全组。 CCE Node (Worker) 附加安全组。 CCE 安全组使用原则如下: (1) 默认安全组包含 CCE Master/Worker 正常运作所必须的安全组规则,强烈建议勾选 CCE Master/Worker 默认安全组,或者确保自行指定的安全组包含这些规则。
  • 您可以为集群内的K8S资源创建一个集群快照。集群快照会将集群内所有K8S资源(不包括secret资源)保存为yaml、json两种格式。 前提条件: 您已成功创建一个 Kubernetes 集群,详情请见创建集群。 限制说明: 可使用集群快照对集群内K8S资源进行备份、下载,暂不支持使用快照恢复。
  • 您可以为已创建的 Kubernetes 集群手动添加工作节点,以达到扩容集群资源的目的,不支持控制节点。 前提条件: 您已成功创建一个 Kubernetes 集群,详情请参见创建集群。 操作步骤: 登录百度智能云官网,并进入管理控制台。 选择“产品服务 > 云原生 > 容器引擎 CCE”,进入 集群管理 > 集群列表 。
官方微信
联系客服
400-826-7010
7x24小时客服热线
分享
  • QQ好友
  • QQ空间
  • 微信
  • 微博
返回顶部