Kubernetes初体验
前言
最近开始接触Google的Kubernetes(简称k8s,由于字母k与字母s之间省略8个字母),这篇文章记录一下我的初体验。
环境准备
我是使用Vagrant来快速构建基本的虚拟机环境,有人说干嘛不用Docker,哈哈,也是可以的,但是怎么感觉有点『骑马找马』的感觉,如果你使用Docker,记得开放30001口,我们后面会用到。
全程最好开着VPN
全程最好开着VPN
全程最好开着VPN
全程最好开着VPN
全程最好开着VPN
全程最好开着VPN
全程最好开着VPN
全程最好开着VPN
全程最好开着VPN
Vagrant安装非常简单,下载地址:
https://www.vagrantup.com/downloads.html
选择你对应的平台,会自带安装VirtualBox。
vagrant我选用了bento/centos-7.1这个镜像。
Mac用户创建一个文件夹并进入初始化它。
cd ~mkdir k8scd k8svagrant init bento/centos-7.1
将配置修改Vagrantfile:
# -*- mode: ruby -*-# vi: set ft=ruby :# All Vagrant configuration is done below. The "2" in Vagrant.configure# configures the configuration version (we support older styles for# backwards compatibility). Please don't change it unless you know what# you're doing.Vagrant.configure(2) do |config| # The most common configuration options are documented and commented below. # For a complete reference, please see the online documentation at # https://docs.vagrantup.com. # Every Vagrant development environment requires a box. You can search for # boxes at https://atlas.hashicorp.com/search. config.vm.box = "bento/centos-7.1" # Disable automatic box update checking. If you disable this, then # boxes will only be checked for updates when the user runs # `vagrant box outdated`. This is not recommended. # config.vm.box_check_update = false # Create a forwarded port mapping which allows access to a specific port # within the machine from a port on the host machine. In the example below, # accessing "localhost:8080" will access port 80 on the guest machine. # config.vm.network "forwarded_port", guest: 80, host: 8080 # Create a private network, which allows host-only access to the machine # using a specific IP. config.vm.network "private_network", ip: "192.168.8.8" # Create a public network, which generally matched to bridged network. # Bridged networks make the machine appear as another physical device on # your network. # config.vm.network "public_network" # Share an additional folder to the guest VM. The first argument is # the path on the host to the actual folder. The second argument is # the path on the guest to mount the folder. And the optional third # argument is a set of non-required options. config.vm.synced_folder ".", "/vagrant_data" # Provider-specific configuration so you can fine-tune various # backing providers for Vagrant. These expose provider-specific options. # Example for VirtualBox: # # config.vm.provider "virtualbox" do |vb| ## Display the VirtualBox GUI when booting the machine # vb.gui = true # ## Customize the amount of memory on the VM: # vb.memory = "1024" # end # # View the documentation for the d you are using for more # information on available options. # Define a Vagrant Push strategy for pushing to Atlas. Other push strategies # such as FTP and Heroku are also available. See the documentation at # https://docs.vagrantup.com/v2/push/atlas.html for more information. # config.push.define "atlas" do |push| # push.app = "YOUR_ATLAS_USERNAME/YOUR_APPLICATION_NAME" # end # Enable provisioning with a shell script. Additional provisioners such as # Puppet, Chef, Ansible, Salt, and Docker are also available. Please see the # documentation for more information about their specific syntax and use. # config.vm.provision "shell", inline: vagrant up启动环境。一下是我的项目文件夹结构:我们对应创建好这几个文件,为了避免新手错误的书写格式导致启动失败带来挫败感,我把我的配置文件上传一份到GitHub:https://github.com/cnBruceHong/learn-k8s运行:
vagrant ssh
进入虚拟机。# 安装K8s## 关闭防火墙systemctl disable firewalldsystemctl stop firewalld## 安装etcd和k8s
sudo yum install etcd kubernetes vim
## 修改配置文件
sudo vim /etc/sysconfig/docker
修改里面对应的内容为:
OPTIONS='--selinux-enabled=false --insecure-registry gcr.io'
还要修改:
sudo vim /etc/kubernetes/apiserver
修改里面的内容为:
KUBE_ADMISSION_CONTROL="--admission-control=NamespaceLifecycle,NamespaceExists,LimitRanger,SecurityContextDeny,ResourceQuota"
启动所有服务:
sudo systemctl start etcd docker kube-apiserver kube-controller-manager kube-scheduler kubelet kube-proxy
然后顺序运行:
cd /vagrant_data/
kubectl create -f redis-master-controller.yaml
kubectl create -f redis-master-service.yaml
kubectl create -f redis-slave-controller.yaml
kubectl create -f redis-slave-service.yaml
kubectl create -f frontend-controller.yaml
kubectl create -f frontend-service.yaml
然后在宿主机上浏览器访问:http://192.168.8.8:30001就可以看到界面了。你可以通过kubectl get pods来查看pods,里面的要running才算成功哦!~# 最后里面会有一些你不懂的名词,没关系,你可以自主学习这些名词。这篇文章关键是:## ヾ(。`Д´。)你成功搭起来了K8s,成就感暴满有木有?#k8s#
版权声明
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处。如若内容有涉嫌抄袭侵权/违法违规/事实不符,请点击 举报 进行投诉反馈!