搭建及使用K8s集群

简介: k8s Dns 部署 k8s dns 相关镜像准备 修改配置文件 1 修改各个node上的kubelet 2 修改APIserver yamls 编写 1 skydns-rcyml 2 skydns-svcyaml 创建pods 验证k8s dns 1 部署busybox 2 nslookup 验证 1. k8s dns 相关镜像准备 2. yamls 编写 3. 创建pod service 4. 验证k8s dns docker 容器的ip 是动态的,多个服务之间没法通讯,k8s dns 解决了该问题,访问不通过ip,通过app name 进行访问。
k8s Dns 部署
k8s dns 相关镜 像准备
修改配置文件
1 修改各个node上的kubelet
2 修改APIserver
yamls 编写
1 skydns-rcyml
2 skydns-svcyaml
创建pods
验证k8s dns
1 部署busybox
2 nslookup 验证
1. k8s dns 相关镜像准备
2. yamls 编写
3. 创建pod service
4. 验证k8s dns
docker 容器的ip 是动态的,多个服务之间没法通讯,k8s dns 解决了该问题,访问不通过ip,通过app name 进行访问。
1. k8s dns 相关镜像准备
百度一把 文章都是google的镜像,国内pull不下来,可以去dockerhub上搜到的对应版本,tag & push到个人的dockerhub下
镜像 版本
docker.io/cdchen/etcd 2.0.9
docker.io/cdchen/kube2sky 1.11
docker.io/cdchen/skydns 2015-03-11-001
2. 修改配置文件
2.1 修改各个node上的kubelet
[root@node2 ~]# cat /etc/kubernetes/kubelet
###
# kubernetes kubelet (minion) config

# The address for the info server to serve on (set to 0.0.0.0 or "" for all interfaces)
KUBELET_ADDRESS="--address=0.0.0.0"

# The port for the info server to serve on
KUBELET_PORT="--port=10250"

# You may leave this blank to use the actual hostname
KUBELET_HOSTNAME="--hostname-override=node2"

# location of the api-server
KUBELET_API_SERVER="--api-servers=http://master:8080"

# pod infrastructure container
KUBELET_POD_INFRA_CONTAINER="--pod-infra-container-image=registry.access.redhat.com/rhel7/pod-infrastructure:latest"

# Add your own!
KUBELET_ARGS=" --cluster_dns=10.254.0.2 --cluster_domain=atomic.io   "
2.2 修改APIserver
[root@master yamls]# cat /etc/kubernetes/apiserver
###
# kubernetes system config
#
# The following values are used to configure the kube-apiserver
#

# The address on the local server to listen to.
KUBE_API_ADDRESS="--insecure-bind-address=0.0.0.0"

# The port on the local server to listen on.
KUBE_API_PORT="--port=8080"

# Port minions listen on
# KUBELET_PORT="--kubelet-port=10250"

# Comma separated list of nodes in the etcd cluster
KUBE_ETCD_SERVERS="--etcd-servers=http://127.0.0.1:2379"

# Address range to use for services
KUBE_SERVICE_ADDRESSES="--service-cluster-ip-range=10.254.0.0/16"

# default admission control policies
KUBE_ADMISSION_CONTROL="--admission-control=NamespaceLifecycle,NamespaceExists,LimitRanger,SecurityContextDeny,ResourceQuota"

# Add your own!

比对下 KUBE_ADMISSION_CONTROL内容

重启 Master 和 各Node 服务

3. yamls 编写
3.1 skydns-rc.yml
apiVersion: v1
kind: ReplicationController
metadata:
  name: kube-dns-v6
  namespace: default
  labels:
    k8s-app: kube-dns
    version: v6
    kubernetes.io/cluster-service: "true"
spec:
  replicas: 1
  selector:
    k8s-app: kube-dns
    version: v6
  template:
    metadata:
      labels:
        k8s-app: kube-dns
        version: v6
        kubernetes.io/cluster-service: "true"
    spec:
      containers:
      - name: etcd
        image: docker.io/cdchen/etcd:2.0.9 
        command:
        - /usr/local/bin/etcd
        - -listen-client-urls
        - http://0.0.0.0:2379,http://0.0.0.0:4001
        - -advertise-client-urls
        - http://127.0.0.1:2379,http://127.0.0.1:4001
        - -initial-cluster-token
        - skydns-etcd
      - name: kube2sky
        image: docker.io/cdchen/kube2sky:1.11   
        resources:
          limits:
            cpu: 100m
            memory: 50Mi
        command:
        - /kube2sky
        - --kube_master_url=http://192.168.6.45:8080
        - -domain=atomic.io
      - name: skydns
        image: docker.io/cdchen/skydns:2015-03-11-001 
        resources:
        command:
        - /skydns
        - -machines=http://localhost:4001
        - -addr=0.0.0.0:53
        - -domain=atomic.io.
        ports:
        - containerPort: 53
          name: dns
          protocol: UDP
        - containerPort: 53
          name: dns-tcp
          protocol: TCP
      dnsPolicy: Default
3.2 skydns-svc.yaml
apiVersion: v1
kind: Service
metadata:
  name: kube-dns
  namespace: default
  labels:
    k8s-app: kube-dns
    kubernetes.io/cluster-service: "true"
    kubernetes.io/name: "KubeDNS"
spec:
  selector:
    k8s-app: kube-dns
  clusterIP: 10.254.0.2
  ports:
  - name: dns
    port: 53
    protocol: UDP
  - name: dns-tcp
    port: 53
    protocol: TCP
4 创建pods
[root@master sky_dns]# kubectl create -f skydns-rc.yml 
replicationcontroller "kube-dns-v6" created
[root@master sky_dns]# kubectl create -f skydns-svc.yaml 
service "kube-dns" created
[root@master sky_dns]# kubectl  get pods
NAME                                   READY     STATUS    RESTARTS   AGE
cloud-eureka-server-1593312766-cx7w8   1/1       Running   0          2h
kube-dns-v6-5tf2j                      3/3       Running   0          1m
5 验证k8s dns
5.1 部署busybox
[root@master yamls]# cat busybox.yaml 
apiVersion: v1
kind: Pod
metadata: 
    name: busybox
    namespace: default
spec:
    containers:
      - image: busybox
        command:
          - sleep
          - "3600"
        imagePullPolicy: IfNotPresent
        name: busybox
    restartPolicy: Always

[root@master yamls]# kubectl create -f busybox.yaml 
pod "busybox" created
3.2 nslookup 验证
[root@master yamls]# kubectl exec busybox -it sh
[root@master ~]# kubectl exec busybox -it sh
/ # nslookup cloud-eureka-server
Server:    10.254.0.2
Address 1: 10.254.0.2

Name:      cloud-eureka-server
Address 1: 10.254.247.31
/ # 
解析成功,其中 cloud-eureka-server 是我部署的一个springcloud 应用。
本文转自CSDN- 搭建及使用K8s集群
相关实践学习
容器服务Serverless版ACK Serverless 快速入门:在线魔方应用部署和监控
通过本实验,您将了解到容器服务Serverless版ACK Serverless 的基本产品能力,即可以实现快速部署一个在线魔方应用,并借助阿里云容器服务成熟的产品生态,实现在线应用的企业级监控,提升应用稳定性。
云原生实践公开课
课程大纲 开篇:如何学习并实践云原生技术 基础篇: 5 步上手 Kubernetes 进阶篇:生产环境下的 K8s 实践 相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
4天前
|
运维 Kubernetes 监控
Kubernetes 集群的持续性能优化实践
【4月更文挑战第26天】 在动态且不断增长的云计算环境中,维护高性能的 Kubernetes 集群是一个挑战。本文将探讨一系列实用的策略和工具,旨在帮助运维专家监控、分析和优化 Kubernetes 集群的性能。我们将讨论资源分配的最佳实践,包括 CPU 和内存管理,以及集群规模调整的策略。此外,文中还将介绍延迟和吞吐量的重要性,并提供日志和监控工具的使用技巧,以实现持续改进的目标。
|
7天前
|
存储 运维 Kubernetes
Kubernetes 集群的监控与维护策略
【4月更文挑战第23天】 在微服务架构日益盛行的当下,容器编排工具如 Kubernetes 成为了运维工作的重要环节。然而,随着集群规模的增长和复杂性的提升,如何确保 Kubernetes 集群的高效稳定运行成为了一大挑战。本文将深入探讨 Kubernetes 集群的监控要点、常见问题及解决方案,并提出一系列切实可行的维护策略,旨在帮助运维人员有效管理和维护 Kubernetes 环境,保障服务的持续可用性和性能优化。
|
8天前
|
存储 运维 Kubernetes
Kubernetes 集群的持续性能优化实践
【4月更文挑战第22天】在动态且复杂的微服务架构中,确保 Kubernetes 集群的高性能运行是至关重要的。本文将深入探讨针对 Kubernetes 集群性能优化的策略与实践,从节点资源配置、网络优化到应用部署模式等多个维度展开,旨在为运维工程师提供一套系统的性能调优方法论。通过实际案例分析与经验总结,读者可以掌握持续优化 Kubernetes 集群性能的有效手段,以适应不断变化的业务需求和技术挑战。
|
18天前
|
运维 Kubernetes 监控
Kubernetes 集群的监控与维护策略
【4月更文挑战第12天】在微服务架构日益普及的当下,Kubernetes 作为容器编排的事实标准,承载着运行和管理大量服务的重要职责。本文将深入探讨 Kubernetes 集群的监控要点,并提出一系列切实可行的维护策略,旨在帮助运维人员确保集群的稳定性和性能优化。
|
2天前
|
Kubernetes 网络协议 Python
一文教会你,如何通过kubeadm,在生产环境部署K8S高可用集群(二)
一文教会你,如何通过kubeadm,在生产环境部署K8S高可用集群(二)
|
2天前
|
Kubernetes 应用服务中间件 开发工具
一文教会你,如何通过kubeadm,在生产环境部署K8S高可用集群(一)
一文教会你,如何通过kubeadm,在生产环境部署K8S高可用集群(一)
|
5天前
|
Kubernetes 应用服务中间件 nginx
【博客大赛】搭建一套完整的企业级Kubernetes高可用集群(v1.20,二进制)
【博客大赛】搭建一套完整的企业级Kubernetes高可用集群(v1.20,二进制)
|
6天前
|
Kubernetes 负载均衡 应用服务中间件
部署一套完整的Kubernetes高可用集群(二进制,最新版v1.18)下
部署一套完整的Kubernetes高可用集群(二进制,最新版v1.18)下
部署一套完整的Kubernetes高可用集群(二进制,最新版v1.18)下
|
6天前
|
Kubernetes 安全 前端开发
部署一套完整的Kubernetes高可用集群(二进制,最新版v1.18)上
部署一套完整的Kubernetes高可用集群(二进制,最新版v1.18)上
|
6天前
|
运维 Kubernetes Linux
10分钟搭建Kubernetes容器集群平台(kubeadm)
10分钟搭建Kubernetes容器集群平台(kubeadm)

推荐镜像

更多